待办事项管理服务器

一个基于SQLite3存储的待办事项管理服务器,支持创建、读取、更新和删除待办事项,包含优先级、截止日期和完成状态等功能。

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

使用说明

待办事项列表 MCP 服务器

一个用于管理待办事项列表的模型上下文协议(MCP)服务器,采用SQLite3作为存储后端。该服务器提供了创建、读取、更新和删除待办事项的工具,并支持设置优先级、截止日期和完成状态。

特点/功能

  • ✅ **完整的CRUD操作(创建、读取、更新、删除)**创建、读取、更新和删除待办事项
  • 🗃️ SQLite3 存储持久数据存储在 db.sqlite3
  • 🏷️ 优先级级别低优先级、中优先级和高优先级的待办事项
  • 📅 日期/日历 截止日期可选截止日期支持
  • 🔍(放大镜,用于表示搜索或查看细节) 过滤按完成状态和优先级过滤所有待办事项
  • 📊 表格 丰富的显示增强表情符号输出,提升可读性
  • 🤖 表示机器人或机器人的形象。 AI 客户端适用于OpenAI和Anthropic模型的即用型客户端
  • 🌐(表示“世界”或“互联网”的符号) **SSE 交通(或 SSE 运输)**服务器发送事件用于实时通信

安装

  1. 安装依赖项:
uv sync
  1. 创建环境文件:
# Edit .env with your settings:
# - OPENAI_API_KEY: Your OpenAI API key (for client/openai_client.py)
# - ANTHROPIC_API_KEY: Your Anthropic API key (for client/mcp_client.py)  
# - HOST: Server host (default: localhost)
# - PORT: Server port (default: 8001)
  1. 运行服务器:
python src/server.py

服务器将在 http://localhost:8001 默认情况下(或使用.env文件中的HOST/PORT)。

快速入门

见 QUICKSTART.md 翻译为中文是:“快速入门指南.md” 或 “快速开始指南.md”。(注:这里的“.md”通常表示该文件是Markdown格式的,但在中文语境下,我们通常不会在文件名翻译中特别指出其格式,除非上下文需要。) 获取分步入门指南!

使用AI客户端

这个项目包括两个连接到MCP服务器的人工智能客户端实现:

OpenAI 客户端(GPT-4)

# Interactive mode
python client/openai_client.py

# Single query mode
python client/openai_client.py "Create a todo to buy groceries"

Anthropic 客户端(Claude)

# Interactive mode  
python client/mcp_client.py

# Single query mode
python client/mcp_client.py "List my todos"

示例用法

# Run the example script
python client/example.py

见 客户端/README.md 用于详细的客户文档。

可用工具

1. list_todos

列出所有待办事项,并可选择进行过滤。

参数:

  • completed (布尔值,可选):按完成状态过滤
  • priority (字符串,可选):按优先级级别过滤(“低”,“中”,“高”)
  • limit (整数,可选):限制结果数量

示例:

{
  "completed": false,
  "priority": "high",
  "limit": 10
}

2. create_todo

创建一个新的待办事项。

参数:

  • title (字符串,必填):待办事项的标题
  • description (字符串,可选):可选描述
  • priority (字符串,可选):优先级级别(“低”,“中”,“高”)- 默认为“中”
  • due_date (字符串,可选):截止日期,采用ISO格式(YYYY-MM-DD)

示例:

{
  "title": "Complete project documentation",
  "description": "Write comprehensive README and API docs",
  "priority": "high",
  "due_date": "2024-01-15"
}

3. update_todo

更新现有的待办事项。

参数:

  • id (整数,必填):要更新的待办事项的ID
  • title (字符串,可选):新标题
  • description (字符串,可选):新描述
  • completed (布尔值,可选):完成状态
  • priority (字符串,可选):优先级级别
  • due_date (字符串,可选):截止日期,采用ISO格式

示例:

{
  "id": 1,
  "completed": true,
  "priority": "low"
}

4. delete_todo

删除一个待办事项。

参数:

  • id (整数,必填):要删除的待办事项的ID

示例:

{
  "id": 1
}

5. get_todo

通过ID获取特定的待办事项。

参数:

  • id (整数,必填):要检索的待办事项的ID

示例:

{
  "id": 1
}

数据库模式

SQLite数据库包含一个单一的 todos 具有以下结构的表格:

CREATE TABLE todos (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    description TEXT,
    completed BOOLEAN DEFAULT 0,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    due_date TIMESTAMP,
    priority TEXT DEFAULT 'medium' CHECK(priority IN ('low', 'medium', 'high'))
);

使用示例

创建待办事项

# Create a high priority todo
create_todo --title "Fix critical bug" --priority "high" --description "Fix the authentication bug in production"

# Create a todo with due date
create_todo --title "Submit report" --due_date "2024-01-20" --priority "medium"

列出所有待办事项

# List all todos
list_todos

# List only incomplete high priority todos
list_todos --completed false --priority "high"

# List last 5 todos
list_todos --limit 5

更新待办事项

# Mark todo as completed
update_todo --id 1 --completed true

# Change priority and add description
update_todo --id 2 --priority "low" --description "Updated description"

获取待办事项详情

# Get specific todo details
get_todo --id 1

删除待办事项

# Delete a todo
delete_todo --id 1

错误处理

该服务器具备全面的错误处理机制:

  • 验证必需参数
  • 在更新/删除前检查待办事项是否存在
  • 提供带有表情符号指示器的清晰错误信息
  • 优雅地处理数据库连接问题

数据存储

  • 数据库文件: ~/.todo_mcp.db
  • 首次运行时自动数据库初始化
  • SQLite3,用于可靠、基于文件的存储
  • 为创建/更新日期自动记录时间戳

发展

以开发模式运行:

# Install dependencies
uv sync

# Run the server
python src/server.py

服务器将在首次运行时自动创建数据库和表结构。