Todo for AI logo

Todo for AI

OrganizationPopular
todo-for-ai

🤖 A comprehensive task management system specifically designed for AI assistants. Supports project management, task tracking, team collaboration, and seamless AI integration through MCP (Model Context Protocol). Built with modern tech stack including React, Flask, and Docker. Try it now at https://todo4ai.org/

Publishertodo-for-ai
Repositorytodo-for-ai
LanguagePython
Forks
104
Stars
1.2K
Available tools
0
Transport typestdio, streamable-http
Categories
LicenseApache-2.0
Links
  • Connect tools to AI workflows

    Todo for AI exposes MCP capabilities that can be used by compatible AI clients and agents.

  • 0 available tools

    Browse the callable actions below, including names and descriptions when provided by the server.

  • Ready-to-copy setup

    Use the installation snippets to configure this server in your preferred MCP client.

  • Open source signals

    1.2K stars and 104 forks from the linked repository.

Todo for AI

GitHub stars GitHub license GitHub issues GitHub forks npm version Docker Pulls Website

中文版本 | English

🚀 A powerful task management system specifically designed for AI assistants, supporting intelligent project management, automated task tracking, and seamless team collaboration through MCP (Model Context Protocol) integration.

🚀 Try it now: Visit https://todo4ai.org/ to experience our product!

🤖 Why Todo for AI?

Todo for AI bridges the gap between AI assistants and human productivity workflows. Unlike traditional task management tools, our system is built from the ground up to work seamlessly with AI agents through the Model Context Protocol (MCP).

🎯 Core Value Propositions

  • 🔗 Native AI Integration: First-class support for AI assistants through MCP, enabling natural language task management
  • 🧠 Intelligent Automation: AI agents can create, update, and manage tasks autonomously based on context and user needs
  • 📊 Smart Project Insights: AI-powered analytics and recommendations for better project planning and execution
  • 🔄 Seamless Workflow: Bridge between AI capabilities and human oversight with intelligent task delegation
  • 🌐 Universal Compatibility: Works with Claude, GPT, and other AI assistants through standardized MCP protocol
  • ⚡ Real-time Collaboration: Instant synchronization between AI agents and human team members

🚀 Perfect For

  • AI-First Teams building the future of work
  • Developers integrating AI assistants into their workflows
  • Product Managers coordinating between AI agents and human teams
  • Researchers managing complex AI-driven projects
  • Anyone looking to supercharge their productivity with AI assistance

📸 Screenshots & Demo

🖥️ Web Interface

Todo for AI Dashboard Modern, intuitive dashboard for project and task management

Task Management Comprehensive task management with AI integration

AI Assistant Integration Seamless AI assistant integration through MCP

🎬 Demo Video

Todo for AI Demo

Click to watch a full demo of Todo for AI in action

✨ Key Features in Action

  • 🤖 AI-Powered Task Creation: Watch AI assistants create and organize tasks naturally
  • 📊 Real-time Analytics: See project progress and insights update live
  • 🔄 Seamless Collaboration: Experience smooth coordination between AI and human team members
  • 🎯 Smart Prioritization: Observe AI-driven task prioritization and scheduling

📁 Project Structure

This project uses Git Submodule architecture, splitting different modules into independent repositories:

📚 Architecture & Specs

🚀 Installation & Quick Start

Choose your preferred installation method:

🐳 Option 1: Docker (Recommended)

The fastest way to get started - everything included in one container:

bash
# Pull and run the latest image
docker run -d --name todo-for-ai \
  -p 50111:80 \
  -p 50110:50110 \
  -e DATABASE_URL="mysql+pymysql://username:password@host.docker.internal:3306/todo_for_ai" \
  -e GMAIL_USER="your-email@gmail.com" \
  -e GMAIL_PASSWORD="your-app-password" \
  -e GITHUB_TOKEN="your-github-token" \
  -e SECRET_KEY="your-secret-key-here" \
  -e JWT_SECRET_KEY="your-jwt-secret-key-here" \
  --add-host=host.docker.internal:host-gateway \
  todoforai/todo-for-ai:latest

# Access the application
# Frontend: http://localhost:50111/todo-for-ai/pages/projects
# API: http://localhost:50110/todo-for-ai/api/v1/

📦 Option 2: MCP Package Only

If you only need the MCP server for AI assistant integration:

bash
# Install via npm
npm install -g @todo-for-ai/mcp

# Or install locally
npm install @todo-for-ai/mcp

# Configure and start
todo-for-ai-mcp --config config.json

🛠️ Option 3: Development Setup

For developers who want to contribute or customize:

bash
# 1. Clone the project (including submodules)
git clone --recursive https://github.com/todo-for-ai/todo-for-ai.git
cd todo-for-ai

# 2. Initialize submodules (if not using --recursive)
git submodule update --init --recursive

# 3. Set up environment variables
cp .env.example .env
# Edit .env with your configuration

# 4. Start with Docker Compose
docker-compose up -d

# Or build and run manually
docker build -t todo-for-ai:latest .
docker run -d --name todo-for-ai [environment variables] todo-for-ai:latest

⚡ Option 4: Source Installation

For advanced users who prefer manual setup:

bash
# 1. Clone and setup
git clone --recursive https://github.com/todo-for-ai/todo-for-ai.git
cd todo-for-ai

# 2. Backend setup
cd todo-for-ai-api-server
pip install -r requirements.txt
python app.py

# 3. Frontend setup (new terminal)
cd ../todo-for-ai-webpage
npm install
npm run build
npm run preview

# 4. MCP server setup (new terminal)
cd ../todo-for-ai-mcp
npm install
npm run build
npm start

✅ Runtime E2E Validation (Local)

From repository root, you can run one-shot runtime validation:

bash
# auto-create one AI task and verify commit -> DONE
./scripts/runtime_e2e_once.sh

# strict mode: first observed commit must match the target task
TARGET_TASK_ID=123456 STRICT_TARGET_ONLY=true ./scripts/runtime_e2e_once.sh

This wrapper calls agent-runtime/scripts/run_docker_e2e_once.sh and works with Colima/Docker local environments.

🎯 Quick Start Examples

🤖 Using with AI Assistants (MCP)

Once installed, you can immediately start using Todo for AI with your favorite AI assistant:

javascript
// Example: Claude Desktop MCP Configuration
{
  "mcpServers": {
    "todo-for-ai": {
      "command": "npx",
      "args": ["@todo-for-ai/mcp"],
      "env": {
        "TODO_API_URL": "http://localhost:50110/todo-for-ai/api/v1",
        "TODO_API_KEY": "your-api-key"
      }
    }
  }
}
bash
# Example AI Commands (Natural Language)
"Create a new project called 'Website Redesign'"
"Add a task 'Design homepage mockup' to the Website Redesign project"
"List all my pending tasks"
"Mark the homepage mockup task as completed"
"Show me project progress for this week"

🌐 Web Interface Usage

bash
# 1. Access the web interface
open http://localhost:50111/todo-for-ai/pages/projects

# 2. Login with GitHub OAuth or create account
# 3. Create your first project
# 4. Add tasks and start collaborating with AI assistants

🔧 API Integration

javascript
// Example: Creating a project via API
const response = await fetch('http://localhost:50110/todo-for-ai/api/v1/projects', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your-jwt-token'
  },
  body: JSON.stringify({
    name: 'My AI Project',
    description: 'A project managed by AI assistants'
  })
});

// Example: Adding a task
const taskResponse = await fetch('http://localhost:50110/todo-for-ai/api/v1/tasks', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your-jwt-token'
  },
  body: JSON.stringify({
    project_id: 1,
    title: 'Implement user authentication',
    content: 'Add OAuth integration for secure user login',
    priority: 'high',
    is_ai_task: true
  })
});

📱 MCP Server Configuration

json
// config.json for MCP server
{
  "server": {
    "host": "localhost",
    "port": 3001
  },
  "api": {
    "baseUrl": "http://localhost:50110/todo-for-ai/api/v1",
    "timeout": 30000
  },
  "auth": {
    "type": "jwt",
    "token": "your-jwt-token"
  },
  "features": {
    "autoCreateProjects": true,
    "smartTaskBreakdown": true,
    "contextualInsights": true
  }
}

🚀 Docker Deployment

1. Build image

bash
docker build -t todo-for-ai:latest .

2. Start container

bash
docker run -d --name todo-for-ai \
  -p 50111:80 \
  -p 50110:50110 \
  -e DATABASE_URL="mysql+pymysql://username:password@host.docker.internal:3306/todo_for_ai" \
  -e GMAIL_USER="your-email@gmail.com" \
  -e GMAIL_PASSWORD="your-app-password" \
  -e GITHUB_TOKEN="your-github-token" \
  -e SECRET_KEY="your-secret-key-here" \
  -e JWT_SECRET_KEY="your-jwt-secret-key-here" \
  --add-host=host.docker.internal:host-gateway \
  todo-for-ai:latest

3. Access URLs

4. Environment Variables

VariableDescription
DATABASE_URLDatabase connection string
GMAIL_USERGmail email address
GMAIL_PASSWORDGmail app password
GITHUB_TOKENGitHub access token
GITHUB_CLIENT_IDGitHub OAuth app ID
GITHUB_CLIENT_SECRETGitHub OAuth app secret
SECRET_KEYFlask secret key
JWT_SECRET_KEYJWT secret key

🔧 Configuration

GitHub OAuth App Setup

  1. Visit GitHub Developer Settings
  2. Click "New OAuth App"
  3. Fill in application information:
  4. Get Client ID and Client Secret after creation

Gmail App Password Setup

  1. Login to Gmail account
  2. Go to "Manage your Google Account"
  3. Select "Security" → "2-Step Verification"
  4. Generate "App passwords"

GitHub Token Setup

  1. Login to GitHub
  2. Go to Settings → Developer settings → Personal access tokens
  3. Generate new token with appropriate permissions

✨ Key Features

🎯 Core Task Management

  • 📋 Smart Project Organization - Hierarchical project and task structure with AI-powered categorization
  • ✅ Intelligent Task Tracking - Real-time status updates with automated progress monitoring
  • 🏷️ Dynamic Tagging System - Flexible labeling with AI-suggested tags for better organization
  • ⏰ Smart Scheduling - AI-assisted deadline management and priority optimization
  • 📊 Progress Analytics - Visual dashboards with AI-generated insights and recommendations

🤖 AI Integration

  • 🔌 MCP Protocol Support - Native integration with Claude, GPT, and other AI assistants
  • 🗣️ Natural Language Interface - Create and manage tasks using conversational commands
  • 🧠 Intelligent Automation - AI agents can autonomously manage tasks based on context
  • 📝 Smart Task Generation - AI-powered task breakdown and subtask creation
  • 🔍 Contextual Insights - AI-driven project analysis and optimization suggestions

👥 Collaboration & Communication

  • 🔐 Secure Authentication - Multi-factor authentication with GitHub OAuth integration
  • 📧 Smart Notifications - Intelligent email alerts with customizable triggers
  • 🔄 Real-time Sync - Instant updates across all connected AI agents and team members
  • 💬 Integrated Feedback - Seamless communication between AI assistants and human users
  • 🌐 Cross-platform Access - Web interface with API access for custom integrations

🛠️ Developer Experience

  • 🐳 Docker Ready - One-command deployment with full containerization
  • 🔧 RESTful API - Comprehensive API for custom integrations and extensions
  • 📚 Rich Documentation - Detailed guides for setup, usage, and customization
  • 🔒 Enterprise Security - Production-ready security features and compliance
  • 🚀 Scalable Architecture - Microservices design for high-performance deployments

🔍 Troubleshooting

Common Issues

1. Database Connection Failed

bash
# Check if database is running
mysql -u username -p -h localhost

# Check container logs
docker logs todo-for-ai

2. Port Already in Use

bash
# Check port usage
lsof -i :50110
lsof -i :50111

# Kill process
kill -9 <PID>

3. Frontend Page Cannot Load

bash
# Check nginx configuration
docker exec todo-for-ai nginx -t

# Restart nginx
docker exec todo-for-ai supervisorctl restart nginx

4. API Authentication Failed

  • Check if environment variables are set correctly
  • Confirm Gmail app password format is correct
  • Verify GitHub Token permissions

Log Viewing

bash
# View all logs
docker logs todo-for-ai

# View Flask logs
docker exec todo-for-ai tail -f /var/log/supervisor/flask.out.log

# View Nginx logs
docker exec todo-for-ai tail -f /var/log/nginx/access.log

🧪 Testing

API Testing

bash
# Test backend health
curl http://localhost:50110/

# Test API proxy
curl http://localhost:50111/todo-for-ai/api/v1/projects

# Test frontend page
curl http://localhost:50111/todo-for-ai/pages/projects

Functional Testing

  1. Access frontend page
  2. Try login functionality
  3. Create projects and tasks
  4. Test email notifications

🚀 Production Deployment

Security Configuration

  1. Use Strong Passwords: Ensure database and application keys are complex enough
  2. HTTPS Configuration: Configure SSL certificates for production environment
  3. Firewall Settings: Restrict unnecessary port access
  4. Regular Backups: Set up automatic database backups

Performance Optimization

  1. Resource Limits: Set memory and CPU limits for containers
  2. Load Balancing: Configure load balancing for multi-instance deployment
  3. Cache Configuration: Consider adding Redis cache
  4. Monitoring & Alerting: Configure application monitoring and alerting

🤝 Contributing

Issues and Pull Requests are welcome!

Development Workflow

  1. Fork the project
  2. Create a feature branch
  3. Commit your changes
  4. Create a Pull Request

Git and File Management

.gitignore Configuration

The project uses comprehensive .gitignore files to prevent sensitive data and build artifacts from being committed:

  • Root .gitignore: Main project-level ignore rules
  • Subproject .gitignore: Each subproject (api-server, mcp, webpage) has its own rules

Verify .gitignore:

bash
# Run verification script
./scripts/verify-gitignore.sh

# Check if a file is ignored
git check-ignore -v <file>

Common ignored files:

  • Environment variables (.env, .env.local)
  • SSL certificates (*.key, *.pem, *.crt)
  • Build outputs (dist/, build/, lib/)
  • Dependencies (node_modules/, venv/)
  • Logs (*.log, logs/)
  • User uploads (uploads/, media/)
  • Deployment scripts (deploy.sh, setup-*.sh)

Documentation:

Clean up accidentally tracked files:

bash
# Remove from git but keep locally
git rm --cached <file>

# Or use the cleanup script (for sensitive files)
./scripts/cleanup-git-cache.sh

📄 License

MIT License


🌟 Ready to get started? Visit https://todo4ai.org/ and experience the power of AI-driven task management!

Installation

TypingMind
{
  "mcpServers": {
    "todo-for-ai": {
      "command": "npx",
      "args": [
        "@todo-for-ai/mcp",
        "--config",
        "config.json"
      ],
      "env": {
        "CONFIG_PATH": "<CONFIG_PATH>"
      }
    }
  }
}

Use Todo for AI MCP with multiple AI models

TypingMind connects MCP tools at the workspace level, so once Todo for AI is connected, you can use it with different AI models in TypingMind instead of setting it up separately for each model. You can run MCP locally on your device or connect to a remote MCP server URL.

Option 1: Use the local connector

Use this when the MCP server needs access to local files, apps, or private resources on your computer.

1

Open the MCP settings

In TypingMind, go to Settings, Advanced Settings, then Model Context Protocol and choose Setup Connector.

  1. Open TypingMind in your browser.
  2. Click the Settings icon.
  3. Go to Advanced Settings.
  4. Open the Model Context Protocol section.
  5. Click Setup Connector and choose This Device.
TypingMind MCP connector setup screen with This Device selected
2

Run the connector command

Choose This Device, copy the command from TypingMind, and run it in Terminal. Keep the process running while you use MCP.

  1. Copy the setup command shown by TypingMind.
  2. Open Terminal on macOS or Windows Terminal on Windows.
  3. Paste and run the command.
  4. Approve the package install if Terminal asks you to proceed.
  5. Keep the Terminal window running while using MCP tools.
3

Add Todo for AI as a server

When the connector status is Ready, click Edit Servers and paste the MCP server configuration.

  1. Wait until the connector status shows Ready.
  2. Click Edit Servers.
  3. Paste the Todo for AI MCP server configuration.
  4. Save the server list.
  5. Refresh if you want to confirm the connector is still ready.
TypingMind MCP settings showing active server and Edit Servers button
{
  "mcpServers": {
    "todo-for-ai": {
      "command": "npx",
      "args": [
        "-y",
        "@todo-for-ai/mcp"
      ]
    }
  }
}
4

Use it across models

Save the server list, open Plugins, enable the Todo for AI MCP tools, then select any supported AI model in TypingMind and use the tools in chat or assign them to an AI agent.

  1. Open the Plugins page in TypingMind.
  2. Enable the Todo for AI MCP tools.
  3. Start a chat and choose the AI model you want to use.
  4. Use the MCP tools in chat or assign them to an AI agent.
  5. Switch to another AI model whenever needed without reconnecting MCP.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use Todo for AI to help me with this task?
Todo for AI
Sure. I read it.
Here is what I found using Todo for AI.

Option 2: Add an MCP server URL

Use this when Todo for AI is already hosted remotely or your team wants one shared connector that multiple users can access.

1

Open MCP connectors

In TypingMind, go to Plugins, open MCP connectors, then choose Add URL.

  1. Open TypingMind in your browser.
  2. Go to Plugins.
  3. Open MCP connectors.
  4. Click Add URL.
TypingMind Add Custom MCP Server URL form
2

Paste the server URL

Enter the MCP server URL from the provider in the Server URL field. Add a connection name, description, icon, custom HTTP headers, or OAuth client settings if the server requires them.

  1. Paste the MCP server URL from the provider into the Server URL field.
  2. Enter a connection name for Todo for AI.
  3. Add a description and icon if you want it to be easier to identify.
  4. Add custom HTTP headers or OAuth client details if the server requires authentication.
3

Create the connection

Click Create connection, then return to the Plugins list and confirm the new MCP connection is active.

  1. Click Create connection.
  2. Return to the MCP connectors list.
  3. Confirm the Todo for AI connection appears as active.
  4. Refresh the plugin list if the connection does not appear immediately.
4

Switch models without reconnecting

Start a chat with your preferred model, enable the Todo for AI tools from Plugins, and switch to another model whenever needed. The MCP connection stays available to the TypingMind workspace.

  1. Start a new chat in TypingMind.
  2. Select the AI model you want to use.
  3. Enable the Todo for AI tools from Plugins.
  4. Ask the model to use the tool when needed.
  5. Switch to another AI model and reuse the same MCP connection.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use Todo for AI to help me with this task?
Todo for AI
Sure. I read it.
Here is what I found using Todo for AI.

Frequently asked questions

What is the Todo for AI MCP server used for?

Todo for AI is an MCP server that lets compatible AI clients connect to external tools and context. In TypingMind, you can add this MCP server once and make its tools available in your AI workspace.

Can I use Todo for AI MCP with multiple AI models in TypingMind?

Yes. TypingMind connects MCP tools at the workspace level, so you can use Todo for AI with different AI models such as Claude, ChatGPT, Gemini, or other models you have configured in TypingMind without setting up the MCP server separately for each model.

Why use Todo for AI MCP with TypingMind?

TypingMind is one of the best frontends for LLM chat because it brings multiple AI models, prompts, plugins, AI agents, API keys, and MCP tools into one workspace. With Todo for AI connected, you can use its MCP tools across your preferred models while keeping your chat workflow organized in TypingMind.

How do I connect Todo for AI MCP to TypingMind?

Todo for AI can be connected in TypingMind with the local MCP connector or by adding a remote MCP server URL. Use the local connector when the server needs access to files, apps, or private resources on your device, and use a server URL when the MCP server is hosted remotely.

What tools does Todo for AI MCP provide in TypingMind?

Todo for AI exposes MCP capabilities that can be enabled from the TypingMind Plugins page and used in chat or assigned to AI agents.

Do I need to share my API keys with TypingMind to use Todo for AI MCP?

No. TypingMind is local-first and lets you keep your model providers, API keys, prompts, and MCP configuration under your control. If Todo for AI requires authentication, add the required headers, OAuth settings, or local configuration for that MCP server when you create the connection.

Related MCP Servers

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇