# Task Manager MCP Server 任务管理MCP服务器,用于从PostgreSQL数据库读取任务,通过MCP协议与Cursor交互执行代码开发任务。 ## 功能特性 - 从PostgreSQL数据库的`task_list`表读取待处理任务 - 通过MCP协议将任务发送给Cursor执行代码开发 - 自动更新任务状态(pending → processing → completed/failed) - 支持自动轮询,每5分钟检查一次新任务 - 完整的错误处理和日志记录 ## 安装 1. 安装依赖: ```bash cd mcp-servers/task-manager npm install ``` 2. 创建数据库表: ```bash # 在PostgreSQL数据库中执行 psql -U postgres -d dataops -f ../../database/create_task_list_table.sql ``` 3. 数据库配置: **重要**:MCP服务器从独立的配置文件`mcp-servers/task-manager/config.json`中读取数据库URI。 编辑`mcp-servers/task-manager/config.json`文件,设置正确的PostgreSQL连接URI: ```json { "database": { "uri": "postgresql://postgres:dataOps@192.168.3.143:5432/dataops" } } ``` 如果需要覆盖,可以在`.cursor/mcp.json`中设置`DATABASE_URL`环境变量。 其他环境变量配置(在`.cursor/mcp.json`中): ``` POLL_INTERVAL=300000 # 轮询间隔(毫秒),默认5分钟 LOG_LEVEL=info # 日志级别 AUTO_START_POLLING=true # 自动启动轮询 ``` ## 配置Cursor MCP服务器已配置在`.cursor/mcp.json`中。确保: 1. `mcp-servers/task-manager/config.json`中配置了正确的PostgreSQL数据库URI 2. Node.js版本 >= 18.0.0 3. 已安装所有依赖 ## 使用方法 ### 1. 创建任务 在PostgreSQL数据库中插入任务记录: ```sql INSERT INTO task_list (task_name, task_description, status, create_by) VALUES ( '开发用户登录功能', '# 任务描述\n\n开发一个用户登录功能,包括:\n\n1. 用户认证API\n2. JWT token生成\n3. 密码加密存储\n\n## 数据结构\n\n- users表:id, username, password, email', 'pending', 'admin' ); ``` ### 2. 通过Cursor执行任务 在Cursor中,可以使用以下MCP工具: #### 获取待处理任务列表 ``` 调用工具: get_pending_tasks ``` #### 执行单个任务 **自动完成模式(推荐):** ``` 调用工具: execute_task 参数: { "task_id": 1, "auto_complete": true // 默认值,AI 会自动生成代码并更新状态 } ``` **手动模式:** ``` 调用工具: execute_task 参数: { "task_id": 1, "auto_complete": false // 需要手动生成代码并调用 update_task_status } ``` #### 批量处理所有任务 ``` 调用工具: process_all_tasks 参数: { "auto_poll": true } // 启用自动轮询 ``` #### 更新任务状态 ``` 调用工具: update_task_status 参数: { "task_id": 1, "status": "completed", "code_name": "auth.py", "code_path": "app/core/auth.py" } ``` ### 3. 自动轮询 当调用`process_all_tasks`并设置`auto_poll: true`时,服务器会: 1. 处理所有待处理任务 2. 每5分钟自动检查一次新任务 3. 发现新任务时自动处理 ## 任务状态 - `pending` - 待处理 - `processing` - 处理中 - `completed` - 已完成 - `failed` - 失败 ## 数据库表结构 ```sql CREATE TABLE task_list ( task_id SERIAL PRIMARY KEY, task_name VARCHAR(255) NOT NULL, task_description TEXT NOT NULL, status VARCHAR(20) NOT NULL DEFAULT 'pending', code_name VARCHAR(255), code_path VARCHAR(500), create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, create_by VARCHAR(100) NOT NULL ); ``` ## 任务描述格式 任务描述应为markdown格式,包含: 1. **功能要求**:详细描述需要开发的功能 2. **数据结构**:描述涉及的数据表结构或数据格式 3. **技术要求**:如有特殊技术要求,应明确说明 示例: ```markdown # 开发用户登录功能 ## 功能要求 开发一个用户登录功能,包括: 1. 用户认证API端点 2. JWT token生成和验证 3. 密码加密存储(使用bcrypt) ## 数据结构 users表结构: - id: INTEGER PRIMARY KEY - username: VARCHAR(50) UNIQUE - password: VARCHAR(255) # 加密后的密码 - email: VARCHAR(100) - created_at: TIMESTAMP ## API端点 POST /api/auth/login 请求体: { "username": "string", "password": "string" } 响应: { "token": "string", "user": {...} } ``` ## 工作流程 ### 🚀 自动完成模式(推荐) 1. **创建任务**:在数据库中插入任务记录,状态为`pending` 2. **执行任务**:调用 `execute_task` (默认 `auto_complete: true`) 或 `process_all_tasks` 3. **自动生成代码**:AI 根据任务描述自动生成 Python 代码文件 4. **自动更新状态**:AI 自动调用 `update_task_status` 工具更新任务状态为 `completed` 5. **轮询检查**:如果启用自动轮询,每5分钟检查一次新任务 **✅ 自动完成优势**: - 🤖 完全自动化:无需人工干预 - 📝 明确指令:AI 收到详细的自动执行步骤 - ✓ 状态同步:代码生成完成后立即更新状态 - 🔄 高效流程:适合批量处理任务 ### 📋 手动模式 1. **创建任务**:在数据库中插入任务记录,状态为`pending` 2. **获取任务**:调用 `execute_task` 并设置 `auto_complete: false` 3. **查看任务描述**:系统返回详细的任务描述和执行指令 4. **开发代码**:根据任务描述手动开发 Python 代码文件 5. **更新状态**:手动调用 `update_task_status` 工具,提供: - `task_id`: 任务ID - `status`: `"completed"` 或 `"failed"` - `code_name`: 生成的代码文件名(如 `"user_login.py"`) - `code_path`: 代码文件路径(如 `"app/core/auth"`) 6. **轮询检查**:如果启用自动轮询,每5分钟检查一次新任务 **⚠️ 手动模式注意事项**: - 任务不会自动完成,必须手动调用 `update_task_status` - 如果只执行任务而不更新状态,任务会一直保持 `processing` 状态 - 适合需要人工审核或特殊处理的任务 ## 故障处理 ### 任务执行失败 如果任务执行失败,状态会更新为`failed`。可以: 1. 检查任务描述是否清晰完整 2. 查看错误日志 3. 修改任务描述后,将状态改回`pending`重新处理 ### 数据库连接失败 确保: 1. PostgreSQL服务正在运行 2. `mcp-servers/task-manager/config.json`中的`database.uri`配置正确 3. 数据库用户有足够的权限 4. 如果使用环境变量,确保`DATABASE_URL`或`SQLALCHEMY_DATABASE_URI`已正确设置 ### MCP服务器无法启动 检查: 1. Node.js版本 >= 18.0.0 2. 所有依赖已安装:`npm install` 3. 文件权限正确 ## 开发说明 ### 项目结构 ``` mcp-servers/task-manager/ ├── index.js # MCP服务器主文件 ├── database.js # 数据库操作模块 ├── task-processor.js # 任务处理逻辑 ├── config.json # 数据库配置文件(独立配置) ├── package.json # 项目配置 └── README.md # 本文档 ``` ### 扩展功能 可以扩展的功能: 1. 任务优先级支持 2. 任务依赖关系 3. 任务执行历史记录 4. 任务执行时间统计 5. 邮件/通知功能 ## 许可证 MIT