任务管理服务器

一个生产就绪的任务和待办事项管理服务器,支持双存储后端、错误处理和现代Python工具。

  • by AnoRebel
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 anorebel/mcp-todo-server

使用说明

MCP ToDo服务器

生产就绪的模型上下文协议服务器,用于任务和待办事项管理,具有双存储后端、错误处理和现代Python工具。

特性

  • 双存储器:基于文件的JSON或数据库(SQLite/PPostgreSQL)
  • 待办事项管理:独立待办事项和有优先级/截止日期的结构化任务
  • 批量操作:高效的多项目管理和分析
  • 安全:输入验证、错误处理、容器化
  • 现代工具:uv包管理器,综合测试,结构化日志

建筑

MCP Server → Business Logic → Storage (File/Database) → Infrastructure

快速开始

# Clone and install
git clone https://github.com/AnoRebel/mcp-todo-server.git
cd mcp-todo-server
uv sync  # or pip install -r requirements.txt

# Run with file storage (default)
uv run python server.py

# Run with database storage
export MCP_STORAGE_TYPE=database
export MCP_DATABASE_URL=sqlite:///todos.db
uv run python server.py

# Docker
docker-compose up -d

# Development
make test && make format

配置

环境变量:

  • MCP_STORAGE_TYPE: file 或 database (默认值:文件)
  • MCP_DATABASE_URL:数据库连接字符串
  • MCP_LOG_LEVEL:调试、信息、警告、错误
  • MCP_MAX_TASKS:最大任务数(默认值:1000)
  • MCP_MAX_TODOS:最大待办事项数(默认值:1000)

用法

基本操作

# Standalone todos
add_todo("Buy groceries")
list_todos(status="open")
complete_todo("todo-id")

# Structured tasks
create_task(name="Project", priority="high", due_date="2024-12-31")
add_task_todo("task-id", "Subtask description")
bulk_task_operation(operation="complete", filters={"priority": "low"})

# Analytics
get_productivity_stats()

错误处理

  • 防止故障的断路器模式
  • 指数回退自动重试
  • 使用用户友好的消息对错误进行分类
  • 全面的日志记录和监控

测试

make test              # All tests with coverage
pytest tests/ -v       # Verbose test output

覆盖范围包括存储后端、CRUD操作、错误处理和数据模型。

安全与性能

  • 输入验证和净化
  • 容器安全(非根执行)
  • 数据库连接池和原子操作
  • 可配置的限制和优雅的降级
  • 结构化日志记录可观察性

部署

码头工人

docker-compose up -d                              # File storage
docker-compose --profile database up -d           # With PostgreSQL

Kubernetes

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mcp-todo-server
spec:
  replicas: 3
  template:
    spec:
      containers:
      - name: mcp-todo-server
        image: mcp-todo-server:latest
        env:
        - name: MCP_STORAGE_TYPE
          value: "database"
        - name: MCP_DATABASE_URL
          valueFrom:
            secretKeyRef:
              name: db-secret
              key: url

整合

克劳德桌面

{
  "mcpServers": {
    "todo-manager": {
      "command": "python",
      "args": ["/path/to/server.py"],
      "env": {
        "MCP_STORAGE_TYPE": "file",
        "MCP_DATA_DIR": "/Users/username/.claude_todos"
      }
    }
  }
}

项目结构

mcp-todo-server/
├── server.py             # Main server
├── config.py            # Configuration
├── models/              # Data models
├── storage/             # Storage backends
├── tests/              # Test suite
├── docker-compose.yml  # Container setup
└── requirements.txt    # Dependencies

贡献

  1. 分叉并创建特征分支
  2. 添加测试并遵循PEP 8
  3. 跑 make test && make format
  4. 提交带有清晰描述的PR

演出

存储比较:

  • 文件:简单,推荐<1000个项目
  • 数据库:可扩展、并发访问、数百万个项目

基准:

操作 文件 SQLite PostgreSQL
添加待办事项 5ms 2ms 3ms
列表100 15ms 5ms 8ms

许可证

MIT许可证-请参阅 许可证 文件。

支持

  • GitHub漏洞/功能问题
  • 电子邮件:hacker4rebel@gmail.com

内置于❤️ 遵循MCP最佳实践