使用说明
任务管理器MCP服务器
使用FastMCP构建的全面任务管理MCP服务器,具有完整的CRUD操作、智能过滤和以生产力为中心的提示。该项目是构建生产就绪的MCP多租户服务器的第一阶段。
特性
🛠️ 工具(动作)
- 创建任务:创建具有优先级、截止日期和标签的新任务
- list_tasks:列出按状态和优先级筛选的任务
- 获取任务:获取特定任务的详细信息
- update_task:更新现有任务的任何方面
- 删除任务:从系统中删除任务
- 完成任务:快速将任务标记为已完成
- get_task_summary:获取全面的任务统计信息
📄 资源(数据访问)
- tasks://all:所有任务的格式化列表
- tasks://task/{id}:具体任务的详细视图
- tasks://status/{状态}:按状态筛选的任务
- tasks://priority/{优先级}:按优先级筛选的任务
- tasks://summary:任务统计仪表板
- tasks://overdue:所有带有紧迫性指标的逾期任务
💬 提示(AI协助)
- 日计划:了解当前任务状态的日常计划
- 任务分解:将复杂任务分解为可管理的子任务
- 每周回顾:生产力审查和成绩跟踪
- 项目规划:全面的项目规划援助
- 任务优先级:使用当前数据进行系统任务优先级排序
安装
- 克隆和设置:
git clone <repository>
cd task-manager
uv venv && source .venv/bin/activate
uv add "mcp[cli]" pydantic python-dotenv
- 配置环境:
cp .env.example .env
# Edit .env with your preferences
- 运行服务器:
python -m server.task_server
发展历程和解决的挑战
这个项目是作为一个学习练习而构建的,目的是在构建多租户架构之前了解MCP(模型上下文协议)的基本原理。以下是遇到的主要挑战和实施的解决方案:
挑战1:Python模块路径问题
问题: ModuleNotFoundError: No module named 'database' 运行服务器时。
根本原因:Python找不到 database 模块,因为它不在Python路径中。
解决方案:在Python路径中添加了项目根 server/task_server.py:
import sys
import os
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
替代解决方案:使用模块语法从项目根运行:
python -m server.task_server
挑战2:Pydantic验证错误
问题: ValidationError: Field required 服务器启动时出错 TaskSummary 模型。
根本原因:Pydantic模型定义的字段比数据库查询提供的字段多。
解决方案:更新了 get_summary() 方法in database/connection.py 提供所有必填字段:
return TaskSummary(
total_tasks=total_tasks,
pending_tasks=pending_tasks,
in_progress_tasks=in_progress_tasks,
completed_tasks=completed_tasks,
cancelled_tasks=cancelled_tasks, # Added missing field
high_priority_tasks=high_priority_tasks,
medium_priority_tasks=medium_priority_tasks, # Added missing field
low_priority_tasks=low_priority_tasks, # Added missing field
over_due_tasks=over_due_tasks,
)
挑战3:日期时间类型不匹配
问题: ValidationError: Input should be a valid string 用于日期时间字段。
根本原因:Pydantic模型预期字符串日期,但SQLite返回 datetime 物体。
解决方案:更新了 Task 中的模型 database/models.py 要使用正确的日期时间类型:
class Task(BaseModel):
created_at: Optional[datetime] = None # Changed from str to datetime
updated_at: Optional[datetime] = None # Changed from str to datetime
due_date: Optional[datetime] = None # Changed from str to datetime
挑战4:WSL+Windows Claude桌面集成
问题:在WSL(Ubuntu)中开发,但Claude Desktop在Windows上运行,导致路径和执行问题。
根本原因:Windows上的Claude Desktop无法直接访问WSL文件路径和命令。
尝试的解决方案:
- WSL直接路径 -没用
- 将代码复制到Windows -可以工作,但需要同步
- WSL集成 -最终工作解决方案
工作溶液:Claude Desktop配置中的WSL命令集成:
{
"mcpServers": {
"task-manager": {
"command": "wsl",
"args": ["-d", "Ubuntu", "-e", "bash", "-c", "cd /home/ibejih/projects/task-manager && /home/ibejih/.local/bin/uv run python -m server.task_server"]
}
}
}
关键发现:
- 用过的
which uv要查找完整的uv路径:/home/ibejih/.local/bin/uv - PowerShell需要
$env:APPDATA而不是%APPDATA% - Claude桌面配置位置:
%APPDATA%\Claude\claude_desktop_config.json
挑战5:克劳德桌面不显示工具
问题:配置后工具未出现在Claude Desktop界面中。
根本原因:Claude Desktop进程未完全重新启动。
解决方案:使用任务管理器完成流程终止:
- 按
Ctrl+Shift+Esc打开任务管理器 - 查找所有“Claude”进程
- 在每个流程上单击鼠标右键并“结束任务”
- 从“开始”菜单重新启动Claude Desktop
经验教训:简单地关闭窗口并不能完全重新启动Claude Desktop-必须杀死所有进程。
测试
综合测试套件
运行完整的测试套件以验证所有功能:
python test_complete.py
该测试:
- ✅ 数据库操作(CRUD)
- ✅ MCP工具功能
- ✅ MCP资源服务
- ✅ MCP提示生成
手动测试命令
使用以下命令使用Claude Desktop进行测试:
"Create a task to review quarterly reports with high priority"
"Show me all my current tasks"
"Give me a task summary"
"Help me plan my day focusing on development work"
Claude桌面集成
适用于WSL+Windows用户
- 在WSL中查找您的紫外线路径:
which uv
# Output: /home/username/.local/bin/uv
- 在以下位置创建配置文件
%APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"task-manager": {
"command": "wsl",
"args": ["-d", "Ubuntu", "-e", "bash", "-c", "cd /path/to/your/task-manager && /path/to/uv run python -m server.task_server"]
}
}
}
- 首先测试WSL命令:
wsl -d Ubuntu -e bash -c "cd /path/to/task-manager && /path/to/uv run python -m server.task_server"
- 完全重新启动克劳德桌面:
- 使用任务管理器结束所有Claude进程
- 从“开始”菜单重新启动
适用于原生Linux/macOS用户
{
"mcpServers": {
"task-manager": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/task-manager",
"run",
"python",
"-m",
"server.task_server"
]
}
}
}
建筑与设计决策
数据库设计
- 数据库:非常适合学习和单租户运营
- Pydantic模型:类型安全数据验证和序列化
- 正确的索引:优化了状态、优先级和截止日期的查询
MCP实施
- FastMCP SDK:利用Anthropic的官方实施
- 结构化输出:使用Pydantic模型进行丰富的数据交换
- 错误处理:在整个堆栈中进行全面验证
- 上下文集成:适当的日志记录和进度报告
项目结构
task-manager/
├── database/ # Data models and connection logic
│ ├── models.py # Pydantic models with validation
│ └── connection.py # Database operations and queries
├── server/ # MCP server implementation
│ ├── task_server.py # Main server with lifecycle management
│ ├── tools.py # MCP tools (actions)
│ ├── resources.py # MCP resources (data serving)
│ └── prompts.py # MCP prompts (AI assistance)
├── test_complete.py # Comprehensive test suite
└── README.md # This documentation
使用示例
创建和管理任务
User: "Create a task to review the quarterly reports with high priority and due date 2024-02-15"
Claude: [Calls create_task tool] "I've created the task 'Review quarterly reports' with high priority and due date February 15, 2024."
User: "Show me all pending tasks"
Claude: [Accesses tasks://status/pending resource] "Here are your pending tasks: ..."
User: "Mark task 1 as completed"
Claude: [Calls complete_task tool] "Task 1 has been marked as completed."
规划和生产力
User: "Help me plan my day focusing on development work"
Claude: [Uses daily_planning prompt with current task data] "Based on your current tasks, here's a focused plan for your development work today..."
关键学习成果
该项目展示了:
- ✅ MCP协议理解:完成工具、资源和提示的实施
- ✅ 生产模式:错误处理、验证和生命周期管理
- ✅ 数据库集成:具有适当连接管理的SQLite
- ✅ 跨平台开发:WSL+Windows集成策略
- ✅ 结构化数据交换:类型安全MCP通信的Pydantic模型
下一步:多租户架构
该服务器是构建多租户MCP平台的第一阶段基础。下一阶段将包括:
- 租户隔离:每个租户的架构数据库设计
- 服务器工厂:程序化MCP服务器实例创建
- Django集成:用于租户管理的REST API
- 生产部署:可扩展的多租户基础设施
从这个项目中获得的对MCP基本原理的扎实理解使多租户挑战变得更容易管理。
故障排除
常见问题
导入错误:确保从项目根目录或使用模块语法运行 验证错误:检查Pydantic模型是否与数据库模式匹配 Claude桌面连接:验证配置文件位置并重新启动所有进程 WSL集成:在添加到Claude Desktop配置之前手动测试WSL命令
调试命令
# Test basic functionality
python test_complete.py
# Test MCP Inspector (alternative to Claude Desktop)
uv run mcp dev server/task_server.py
# Check database operations
python -c "from database.connection import get_database; print(get_database().get_summary())"
贡献
这个项目是作为学习练习而建立的,但欢迎改进!重点领域:
- 其他MCP工具实现
- 增强的提示模板
- 更好的错误消息
- 性能优化
许可证
MIT许可证-专为学习和共享MCP实现模式而构建。
