返回市场
MCP任务管理器

MCP任务管理器

作者:Rudra-ravi7 星标更新:2025-11-20

项目介绍

MCP任务管理器

一个全面的任务管理系统,采用模型上下文协议(MCP)服务器,部署为Cloudflare Worker。这个开源项目使AI助手能够高效地规划、跟踪和管理复杂的多步骤请求,并使用Cloudflare KV进行持久化存储。

🚀 功能

  • 请求规划:将复杂请求分解为可管理的任务
  • 任务管理:创建、更新、删除和跟踪任务进度
  • 审批流程:内置的任务和请求完成审批系统
  • 进度跟踪:可视化进度表和详细的任务信息
  • 持久化存储:使用Cloudflare KV实现可靠的数据持久化
  • 无服务器架构:作为Cloudflare Worker部署,实现全球可用性
  • RESTful API:HTTP端点,便于与任何应用程序集成
  • 跨源资源共享(CORS)支持:启用Web应用的跨源请求

📦 部署

先决条件

快速开始

  1. 克隆并设置仓库

    git clone https://github.com/Rudra-ravi/mcp-taskmanager.git
    cd mcp-taskmanager
    npm install
    
  2. 登录到Cloudflare

    npx wrangler login
    

    这将打开浏览器以进行Cloudflare身份验证。

  3. 创建KV命名空间

    npx wrangler kv namespace create "TASKMANAGER_KV"
    

    复制输出中的命名空间ID。

  4. 更新配置 编辑 wrangler.toml 并替换KV命名空间ID:

    [[kv_namespaces]]
    binding = "TASKMANAGER_KV"
    id = "your-new-kv-namespace-id-here"
    
  5. 构建并部署

    npm run build
    npx wrangler deploy
    

您的MCP任务管理器将被部署并可通过以下地址访问: https://mcp-taskmanager.your-subdomain.workers.dev

高级配置

自定义Worker名称

要使用自定义名称进行部署,请更新 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

🔧 使用

API端点

已部署的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 - 列出所有请求及其当前状态和进度

示例API调用

列出可用工具

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数据管理

# 列出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│
                       │ (业务逻辑)     │
                       └──────────────────┘

组件

  • TaskManagerServer 类:核心业务逻辑用于任务管理
  • Worker接口:用于MCP协议通信的HTTP端点
  • Cloudflare KV存储:任务和请求的持久化数据存储
  • MCP协议:标准模型上下文协议,用于AI助手集成
  • CORS支持:启用Web应用集成

优势

  • 全球边缘部署:通过Cloudflare网络实现全球低延迟
  • 无服务器:无需服务器管理,自动扩展
  • 持久化存储:数据在部署之间得以保存
  • 成本效益:Cloudflare的慷慨免费层级
  • 高可用性:内置冗余和故障转移

📈 监控和日志

Cloudflare仪表板

在Cloudflare仪表板中查看日志和指标:

  1. 访问 Cloudflare仪表板
  2. 导航到Workers & Pages
  3. 选择您的 mcp-taskmanager Worker
  4. 查看日志、指标和分析

实时监控

# 查看实时日志
npx wrangler tail

# 查看格式化的日志
npx wrangler tail --format pretty

# 按状态过滤日志
npx wrangler tail --status error

关键指标监控

  • 请求量:API调用的数量
  • 响应时间:操作的延迟
  • 错误率:失败请求及其原因
  • KV操作:存储读写性能
  • 内存使用:Worker内存消耗

常见问题排查

问题原因解决方案
500 内部服务器错误KV命名空间未找到检查 wrangler.toml 中的KV命名空间ID
CORS错误缺少头信息worker.ts 中验证CORS头信息
任务未找到无效的任务/请求ID检查ID格式和存在性
构建失败TypeScript错误先在本地运行 npm run build

🤝 贡献

我们欢迎贡献!以下是开始的方法:

开发设置

  1. 分叉仓库
  2. 克隆您的分叉:git clone https://github.com/your-username/mcp-taskmanager.git
  3. 创建功能分支:git checkout -b feature/amazing-feature
  4. 安装依赖:npm install
  5. 进行更改
  6. 本地测试:npx wrangler dev --local
  7. 构建和测试:npm run build

贡献指南

  • 遵循TypeScript最佳实践
  • 为新功能添加测试
  • 更新API变更的文档
  • 使用常规提交消息
  • 提交之前确保所有测试通过

拉取请求过程

  1. 提交更改:git commit -m '添加惊人的功能'
  2. 推送到分支:git push origin feature/amazing-feature
  3. 打开拉取请求,包括:
    • 清晰的更改描述
    • 如适用,附带截图/示例
    • 引用任何相关问题

贡献领域

  • 🐛 Bug修复和改进
  • 📚 文档增强
  • ✨ 新的MCP工具和功能
  • 🧪 测试覆盖率改进

许可证

本项目根据MIT许可证发布 - 详情参见 LICENSE 文件。

💬 支持

获取帮助

社区资源

报告问题

报告错误时,请包括:

  • 您的Cloudflare Worker URL
  • 复现问题的步骤
  • 预期行为与实际行为
  • 错误消息或日志
  • 浏览器/客户端信息

🙏 致谢

📄 许可证

本项目根据MIT许可证发布 - 详情参见 LICENSE 文件。


为AI社区制作 ❤️

部署您自己的实例,开始使用AI助手高效管理任务!