使用说明
待办事项列表 MCP 服务器
一个用于管理待办事项列表的模型上下文协议(MCP)服务器,采用SQLite3作为存储后端。该服务器提供了创建、读取、更新和删除待办事项的工具,并支持设置优先级、截止日期和完成状态。
特点/功能
- ✅ **完整的CRUD操作(创建、读取、更新、删除)**创建、读取、更新和删除待办事项
- 🗃️ SQLite3 存储持久数据存储在
db.sqlite3 - 🏷️ 优先级级别低优先级、中优先级和高优先级的待办事项
- 📅 日期/日历 截止日期可选截止日期支持
- 🔍(放大镜,用于表示搜索或查看细节) 过滤按完成状态和优先级过滤所有待办事项
- 📊 表格 丰富的显示增强表情符号输出,提升可读性
- 🤖 表示机器人或机器人的形象。 AI 客户端适用于OpenAI和Anthropic模型的即用型客户端
- 🌐(表示“世界”或“互联网”的符号) **SSE 交通(或 SSE 运输)**服务器发送事件用于实时通信
安装
- 安装依赖项:
uv sync
- 创建环境文件:
# 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)
- 运行服务器:
python src/server.py
服务器将在 http://localhost:8001 默认情况下(或使用.env文件中的HOST/PORT)。
快速入门
使用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(整数,必填):要更新的待办事项的IDtitle(字符串,可选):新标题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
服务器将在首次运行时自动创建数据库和表结构。
