todo-mcp

todo-mcp

A simple, powerful Todo list manager for Claude Desktop and other MCP-compatible AI assistants. Organize your tasks across different projects with priorities and never lose track of what needs to be done!

Category
访问服务器

README

Todo MCP

npm version npm downloads codecov License: MIT GitHub stars

A simple, powerful Todo list manager for Claude Desktop and other MCP-compatible AI assistants. Organize your tasks across different projects with priorities and never lose track of what needs to be done!

✨ Features

  • 📝 Simple Task Management - Create, complete, and archive tasks
  • 📂 Project Organization - Separate tasks by lists (perfect for different codebases/projects)
  • 🎯 Priority System - Low, Medium, High, and Urgent priorities
  • 🕒 Time Tracking - Automatic timestamps for creation, completion, and archiving
  • 🔍 Smart Sorting - Tasks sorted by priority and age automatically
  • 💾 Persistent Storage - Uses PostgreSQL for reliable data storage

🚀 Quick Start

Step 1: Install Database (Choose One)

Option A: DBngin (Recommended for Mac Users) 🍎

  1. Download DBngin - A simple database manager for Mac
  2. Install and open DBngin
  3. Click "+" and select PostgreSQL
  4. Start the PostgreSQL server
  5. Create two databases:
    • todo_mcp (for your tasks)
    • todo_mcp_test (for testing)

Option B: Docker Compose (Cross-Platform) 🐳

  1. Create a docker-compose.yml file:
version: '3.8'
services:
  postgres:
    image: postgres:15
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: todo_mcp
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:
  1. Run: docker-compose up -d
  2. Create test database: docker exec -it <container_name> createdb -U postgres todo_mcp_test

Step 2: Configure Claude Desktop

Add this to your Claude Desktop MCP settings:

{
  "mcpServers": {
    "todo-mcp": {
      "command": "npx",
      "args": ["-y", "@floriscornel/todo-mcp@latest"],
      "env": {
        "DATABASE_URL": "postgresql://postgres:postgres@localhost:5432/todo_mcp"
      }
    }
  }
}

Step 3: Start Using! 🎉

Ask Claude things like:

  • "Create a new list called 'Frontend Project'"
  • "Add a task to fix the login bug with high priority"
  • "Show me all my urgent tasks"
  • "Complete the task about updating dependencies"

💡 Real-World Examples

🔄 Code Review Workflow

You: "I'm reviewing this PR and found several issues. Can you help me track them?"

Claude: "I'll help you create tasks for the issues you found. First, let me create a list for this PR."

You: "Create a list called 'PR-123 Review Issues'"

Claude: *Creates the list*

You: "Add these tasks:
- Fix memory leak in UserService (high priority)
- Add error handling for API calls (medium)
- Update outdated dependencies (low)
- Add unit tests for new features (high)"

Claude: *Creates all tasks with appropriate priorities*

You: "Show me the high priority items first"

🐛 Bug Triage Session

You: "I just got 5 bug reports from users. Help me organize them by priority."

Claude: "Let me create a 'Bug Reports - Sprint 24' list and add these issues. What are the bugs?"

You: "Login fails on mobile Safari, checkout process crashes, slow page load, typo in footer, and dark mode toggle broken"

Claude: *Creates tasks and asks about severity*

Claude: "I've added these. The login and checkout issues sound urgent - should I mark them as high priority?"

You: "Yes, and show me all urgent tasks across all my lists so I can plan my day"

🚀 Feature Development Planning

You: "I'm starting work on a new dashboard feature. Help me break it down into tasks."

Claude: "Great! Let me create a 'Dashboard Feature' list. What components do you need to build?"

You: "I need to design the layout, create API endpoints, build the frontend components, write tests, and update documentation"

Claude: *Creates structured tasks*

Claude: "I've created tasks for each component. Should I mark the API endpoints as high priority since the frontend depends on them?"

You: "Perfect! Also add a task to review the design with the team before I start coding"

📚 Learning & Research Tracking

You: "I'm learning React Native. Can you help me track my progress?"

Claude: "I'll create a 'React Native Learning' list. What topics do you want to cover?"

You: "Navigation, state management, API integration, testing, and deployment"

Claude: *Creates learning tasks*

You: "I just finished the navigation tutorial. Mark that as complete and show me what's next"

Claude: "Great progress! Next up is state management. I can also help you find resources for that topic."

🔧 Refactoring Project

You: "I need to refactor this legacy codebase. There's so much to do, I don't know where to start."

Claude: "Let's break it down systematically. I'll create a 'Legacy Refactor' list. What are the main areas that need work?"

You: "Database queries are slow, no error handling, outdated dependencies, no tests, and the UI is a mess"

Claude: *Creates organized tasks with priorities*

Claude: "I've prioritized database performance and error handling as urgent since they affect users directly. Want me to help you tackle the database issues first?"

🎯 Daily Standup Preparation

You: "What did I work on yesterday and what should I focus on today?"

Claude: "Let me check your completed tasks from yesterday and show you today's priorities."

*Shows completed tasks and upcoming high-priority items*

Claude: "Yesterday you completed the user authentication fix and API documentation. Today's urgent tasks are the payment gateway integration and the mobile responsive fixes."

You: "Perfect! Add a new task to review the payment gateway with the security team before deploying"

🏃‍♂️ Sprint Planning

You: "Help me plan this 2-week sprint. I have tasks scattered across different lists."

Claude: "I'll show you all your tasks grouped by priority. Which lists should I include in the sprint planning?"

You: "Include 'Frontend Bugs', 'API Development', and 'User Stories - Q4'"

Claude: *Aggregates and prioritizes tasks*

Claude: "Here are your urgent and high-priority tasks. Based on your usual velocity, I'd recommend focusing on these 8 tasks for the sprint. Should I create a 'Sprint 12' list to track them?"

🔍 Code Investigation

You: "This function is behaving weirdly. Help me track what I need to investigate."

Claude: "I'll create an 'Investigation - UserAuth Bug' list. What symptoms are you seeing?"

You: "Users can't log in on weekends, but weekdays work fine. It's bizarre."

Claude: "That is strange! Let me add investigation tasks:
- Check server logs for weekend patterns
- Review cron jobs and scheduled tasks  
- Test with different user accounts
- Check database connection pooling
- Review load balancer configuration"

You: "Great breakdown! I just checked the logs - mark that complete and add a task to check if our SSL certificate renewal happens on weekends"

🎨 IDE Integration Benefits

Claude Desktop

  • Persistent Context: Your tasks persist across conversations
  • Natural Language: "Show me what I was working on last week"
  • Smart Prioritization: Claude can help reprioritize based on deadlines

VS Code / Cursor

  • Code-Aware Tasks: "Add a task to refactor this function" (while viewing code)
  • Context Switching: Quickly switch between coding and task management
  • Inline Planning: Plan refactoring while reviewing code

Cross-Session Continuity

  • Pick Up Where You Left Off: "What was I working on before the meeting?"
  • Team Handoffs: "Show the new developer what needs to be done on this feature"
  • Progress Tracking: "How much of the authentication system is complete?"

📖 How It Works

Lists

Think of lists as different projects or categories:

  • Frontend Repo - Tasks for your React app
  • Backend API - Server-side todos
  • Personal - Non-work related tasks

Tasks

Each task has:

  • Name (5-120 characters) - Keep it concise and actionable
  • Description (optional, up to 500 characters) - Add details if needed
  • Priority - Low → Medium → High → Urgent
  • Timestamps - When created, completed, or archived

Smart Organization

  • Tasks are automatically sorted by priority (urgent first) and age
  • Completed tasks are kept for reference but don't clutter your active list
  • Archive tasks when they're no longer relevant

🛠️ Available Commands

The MCP provides these tools for Claude:

  • getLists() - Show all your project lists
  • createList(name, description?) - Create a new project list
  • getTasks(list, includeCompleted?) - Get tasks from a specific list
  • createTask(list, name, description?, priority?) - Add a new task
  • completeTask(taskId) - Mark a task as done
  • archiveTask(taskId) - Archive a task (removes from active view)

🔧 Configuration

Environment Variables

# Main database (required)
DATABASE_URL="postgresql://username:password@localhost:5432/todo_mcp"

# Test database (optional, for development)
TEST_DATABASE_URL="postgresql://username:password@localhost:5432/todo_mcp_test"

Database Connection Examples

# Local PostgreSQL
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/todo_mcp"

# Docker
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/todo_mcp"

# Remote database (replace with your details)
DATABASE_URL="postgresql://user:pass@your-db-host:5432/todo_mcp"

🧪 Development

Prerequisites

  • Node.js 18+
  • PostgreSQL 12+
  • npm or yarn

Setup

# Clone the repository
git clone https://github.com/floriscornel/todo-mcp.git
cd todo-mcp

# Install dependencies
npm install

# Set up environment variables
cp .env.example .env
# Edit .env with your database URLs

# Run database migrations
npm run db:migrate

# Run tests
npm test

# Start development
npm run dev

Testing

npm test                    # Run tests once
npm run test:watch         # Run tests in watch mode  
npm run test:coverage      # Run tests with coverage report

🤝 Contributing

We welcome contributions! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes and add tests
  4. Run the test suite: npm test
  5. Commit your changes: git commit -m 'Add amazing feature'
  6. Push to the branch: git push origin feature/amazing-feature
  7. Open a Pull Request

Development Guidelines

  • Write tests for new features
  • Follow the existing code style (we use Biome for formatting)
  • Update documentation for user-facing changes
  • Keep commits focused and descriptive

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Built with the Model Context Protocol by Anthropic
  • Uses Drizzle ORM for database operations
  • Inspired by the need for better task management in AI-assisted development

📞 Support

🗺️ Roadmap

  • [ ] Web interface for task management
  • [ ] Task due dates and reminders
  • [ ] Task dependencies and subtasks
  • [ ] Export/import functionality
  • [ ] Team collaboration features
  • [ ] Integration with popular task managers

Made with ❤️ for the AI-assisted development community

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选