一个全面的任务管理系统,采用模型上下文协议(MCP)服务器,部署为Cloudflare Worker。这个开源项目使AI助手能够高效地规划、跟踪和管理复杂的多步骤请求,并使用Cloudflare KV进行持久化存储。
克隆并设置仓库
git clone https://github.com/Rudra-ravi/mcp-taskmanager.git
cd mcp-taskmanager
npm install
登录到Cloudflare
npx wrangler login
这将打开浏览器以进行Cloudflare身份验证。
创建KV命名空间
npx wrangler kv namespace create "TASKMANAGER_KV"
复制输出中的命名空间ID。
更新配置
编辑 wrangler.toml 并替换KV命名空间ID:
[[kv_namespaces]]
binding = "TASKMANAGER_KV"
id = "your-new-kv-namespace-id-here"
构建并部署
npm run build
npx wrangler deploy
您的MCP任务管理器将被部署并可通过以下地址访问:
https://mcp-taskmanager.your-subdomain.workers.dev
要使用自定义名称进行部署,请更新 wrangler.toml:
name = "my-custom-taskmanager" # 更改为您喜欢的名称
main = "worker.ts"
compatibility_date = "2024-03-12"
[build]
command = "npm run build"
[[kv_namespaces]]
binding = "TASKMANAGER_KV"
id = "your-kv-namespace-id-here"
针对不同的环境(开发、测试、生产):
[env.staging]
name = "mcp-taskmanager-staging"
[[env.staging.kv_namespaces]]
binding = "TASKMANAGER_KV"
id = "staging-kv-namespace-id"
[env.production]
name =- "mcp-taskmanager-prod"
[[env.production.kv_namespaces]]
binding = "TASKMANAGER_KV"
id = "production-kv-namespace-id"
部署到特定环境:
npx wrangler deploy --env staging
npx wrangler deploy --env production
已部署的Worker提供了两个主要端点:
POST /list-tools - 获取可用的MCP工具POST /call-tool - 执行MCP工具函数部署后,使用curl测试您的Worker:
# 替换为您实际的Worker URL
WORKER_URL="https://mcp-taskmanager.your-subdomain.workers.dev"
# 测试列出工具
curl -X POST $WORKER_URL/list-tools \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'
# 测试创建请求
curl -X POST $WORKER_URL/call-tool \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "request_planning",
"arguments": {
"originalRequest": "测试部署",
"tasks": [{"title": "测试任务", "description": "验证部署是否成功"}]
}
}
}'
request_planning - 注册新的用户请求并规划其相关任务get_next_task - 获取请求的下一个待处理任务mark_task_done - 将任务标记为已完成,可选提供详细信息approve_task_completion - 批准已完成的任务approve_request_completion - 批准整个请求的完成add_tasks_to_request - 向现有请求添加新任务update_task - 更新任务标题或描述(仅限待处理任务)delete_task - 从请求中移除任务open_task_details - 获取特定任务的详细信息list_requests - 列出所有请求及其当前状态和进度curl -X POST https://your-worker.your-subdomain.workers.dev/list-tools \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}'
curl -X POST https://your-worker.your-subdomain.workers.dev/call-tool \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "request_planning",
"arguments": {
"originalRequest": "构建一个任务管理的Web应用",
"splitDetails": "将其分解为前端、后端和部署任务",
"tasks": [
{
"title": "设置React前端",
"description": "使用TypeScript和必要依赖项初始化React应用"
},
{
"title": "创建后端API",
"description": "使用Node.js和Express构建REST API"
},
{
"title": "部署应用",
"description": "使用CI/CD管道部署到云平台"
}
]
}
}
}'
interface Task {
id: string; // 唯一的任务标识符(例如:"task-1")
title: string; // 任务标题
description: string; // 任务详细描述
done: boolean; // 是否标记为已完成
approved: boolean; // 是否批准任务完成
completedDetails: string; // 标记任务为已完成时提供的详细信息
}
interface RequestEntry {
requestId: string; // 唯一的请求标识符(例如:"req-1")
originalRequest: string; // 用户原始请求描述
splitDetails: string; // 关于如何将请求拆分为任务的详细信息
tasks: Task[]; // 此请求的任务数组
completed: boolean; // 整个请求是否已完成
}
❌ 待处理 → ⏳ 已完成(等待审批) → ✅ 已批准
任务只能在“待处理”状态下进行更新。一旦标记为已完成或已批准,它们就变为只读。
# 安装依赖
npm install
# 构建项目
npm run build
# 启动本地开发服务器(使用远程KV)
npx wrangler dev
# 启动本地开发服务器(使用本地KV进行测试)
npx wrangler dev --local
# 部署到预览环境
npx wrangler deploy --env preview
# 测试构建
npm run build
# 测试部署(干运行 - 显示将要部署的内容)
npx wrangler deploy --dry-run
# 运行本地测试
npm test # 如果您添加了测试
# 使用本地KV存储测试
npx wrangler dev --local
查看实时日志:
# 尾随已部署Worker的日志
npx wrangler tail
# 尾随过滤后的日志
npx wrangler tail --format pretty
# 列出KV命名空间中的所有键
npx wrangler kv:key list --binding TASKMANAGER_KV
# 获取特定键值
npx wrangler kv:key get "tasks" --binding TASKMANAGER_KV
# 删除所有数据(小心!)
npx wrangler kv:key delete "tasks" --binding TASKMANAGER_KV
MCP任务管理器作为一个Cloudflare Worker构建,包含以下组件:
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ AI助手 │───▶│ Cloudflare │───▶│ Cloudflare KV │
│ (Claude等) │ │ Worker │ │ 存储 │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ TaskManagerServer│
│ (业务逻辑) │
└──────────────────┘
在Cloudflare仪表板中查看日志和指标:
mcp-taskmanager Worker# 查看实时日志
npx wrangler tail
# 查看格式化的日志
npx wrangler tail --format pretty
# 按状态过滤日志
npx wrangler tail --status error
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 500 内部服务器错误 | KV命名空间未找到 | 检查 wrangler.toml 中的KV命名空间ID |
| CORS错误 | 缺少头信息 | 在 worker.ts 中验证CORS头信息 |
| 任务未找到 | 无效的任务/请求ID | 检查ID格式和存在性 |
| 构建失败 | TypeScript错误 | 先在本地运行 npm run build |
我们欢迎贡献!以下是开始的方法:
git clone https://github.com/your-username/mcp-taskmanager.gitgit checkout -b feature/amazing-featurenpm installnpx wrangler dev --localnpm run buildgit commit -m '添加惊人的功能'git push origin feature/amazing-feature本项目根据MIT许可证发布 - 详情参见 LICENSE 文件。
报告错误时,请包括:
本项目根据MIT许可证发布 - 详情参见 LICENSE 文件。
为AI社区制作 ❤️
部署您自己的实例,开始使用AI助手高效管理任务!