|
|
2 天之前 | |
|---|---|---|
| .. | ||
| .gitignore | 1 周之前 | |
| README.md | 2 天之前 | |
| config.json | 1 周之前 | |
| database.js | 1 周之前 | |
| get_config.py | 1 周之前 | |
| index.js | 2 天之前 | |
| logger.js | 1 周之前 | |
| package-lock.json | 1 周之前 | |
| package.json | 1 周之前 | |
| task-processor.js | 2 天之前 | |
任务管理MCP服务器,用于从PostgreSQL数据库读取任务,通过MCP协议与Cursor交互执行代码开发任务。
task_list表读取待处理任务cd mcp-servers/task-manager
npm install
# 在PostgreSQL数据库中执行
psql -U postgres -d dataops -f ../../database/create_task_list_table.sql
重要:MCP服务器从独立的配置文件mcp-servers/task-manager/config.json中读取数据库URI。
编辑mcp-servers/task-manager/config.json文件,设置正确的PostgreSQL连接URI:
{
"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 # 自动启动轮询
MCP服务器已配置在.cursor/mcp.json中。确保:
mcp-servers/task-manager/config.json中配置了正确的PostgreSQL数据库URI在PostgreSQL数据库中插入任务记录:
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'
);
在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"
}
当调用process_all_tasks并设置auto_poll: true时,服务器会:
pending - 待处理processing - 处理中completed - 已完成failed - 失败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. 用户认证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": {...} }
pendingexecute_task (默认 auto_complete: true) 或 process_all_tasksupdate_task_status 工具更新任务状态为 completed✅ 自动完成优势:
pendingexecute_task 并设置 auto_complete: falseupdate_task_status 工具,提供:
task_id: 任务IDstatus: "completed" 或 "failed"code_name: 生成的代码文件名(如 "user_login.py")code_path: 代码文件路径(如 "app/core/auth")⚠️ 手动模式注意事项:
update_task_statusprocessing 状态如果任务执行失败,状态会更新为failed。可以:
pending重新处理确保:
mcp-servers/task-manager/config.json中的database.uri配置正确DATABASE_URL或SQLALCHEMY_DATABASE_URI已正确设置检查:
npm installmcp-servers/task-manager/
├── index.js # MCP服务器主文件
├── database.js # 数据库操作模块
├── task-processor.js # 任务处理逻辑
├── config.json # 数据库配置文件(独立配置)
├── package.json # 项目配置
└── README.md # 本文档
可以扩展的功能:
MIT