article
README
🚀 任务API服务器 - MCP TypeScript实现
本项目是一个基于MCP(模型上下文协议)的任务API服务器,支持通过标准输入输出(STDIO)和HTTP + SSE两种方式与AI工具和服务交互,可对任务进行创建、读取、更新和删除操作。
✨ 主要特性
核心功能
- 任务管理:支持 CRUD 操作(创建、读取、更新、删除),方便对任务进行全生命周期管理。
- 过滤器:可依据状态、类别和优先级对任务进行筛选,精准定位所需任务。
- 异步操作:HTTP + SSE 服务器支持长轮询,能实时返回任务状态,提升响应效率。
集成
- MCP协议:兼容 MCP 协议,便于与AI工具和服务集成,降低对接成本。
- 外部任务API:通过配置环境变量,可使用外部任务管理服务,增强系统扩展性。
📦 安装指南
环境要求
- Node.js 14.0 或更高版本
- npm 6.0 或更高版本
- TypeScript 4.0 或更高版本
快速开始
- 克隆项目:
git clone <repository-url> - 安装依赖:
cd mcp-template-ts && npm install - 启动服务器(STDIO模式):
npm start - 或启动HTTP + SSE服务器:
npm run start:web
📚 详细文档
项目结构
mcp-template-ts/
├── dist/ # 编译生成的JavaScript文件
├── src/ # TypeScript源代码文件
│ ├── index.ts # STDIO服务器入口文件
│ ├── http-server.ts # HTTP + SSE服务器入口文件
│ ├── test-client.ts # 测试客户端实现
├── .env # 环境变量配置文件
├── package.json # 项目依赖管理文件
├── tsconfig.json # TypeScript编译配置文件
└── README.md # 项目文档
配置
环境变量
| 属性 | 详情 | |------|------| | TASK_MANAGER_API_BASE_URL | 外部任务API的URL地址,必填(无默认值) | | TASK_MANAGER_API_KEY | 用于身份验证的任务API密钥,必填(无默认值) | | TASK_MANAGER_HTTP_PORT | HTTP服务器使用的端口号,默认值为 3000 | | PORT | 可选端口号(优先级高于TASK_MANAGER_HTTP_PORT),无默认值 |
开发
- 启动TypeScript编译器进行实时监听:
npm run watch - 运行测试以验证更改:
npm test
💻 使用示例
基础用法
listTasks
列出所有任务。
const result = await client.callTool({
name: "listTasks",
arguments: {
// 可选过滤条件
status: "pending", // 根据状态筛选
category: "工作", // 根据类别筛选
priority: "high" // 根据优先级筛选
}
});
createTask
创建新任务。
const result = await client.callTool({
name: "createTask",
arguments: {
task: "完成项目报告", // 必填:任务描述
category: "工作", // 可选:任务类别
priority: "high" // 可选:低、中、高
}
});
updateTask
更新现有任务。
const result = await client.callTool({
name: "updateTask",
arguments: {
taskId: 123, // 必填:要更新的任务ID
task: "更新后的描述", // 可选:新描述
status: "done", // 可选:pending、started、done
category: "个人", // 可选:新的类别
priority: "medium" // 可选:低、中、高
}
});
deleteTask
删除任务。
const result = await client.callTool({
name: "deleteTask",
arguments: {
taskId: 123 // 必填:要删除的任务ID
}
});
📄 许可证
本项目采用MIT许可证,具体条款请参阅LICENSE文件。
致谢
- 使用了@modelcontextprotocol/sdk实现MCP协议
- 旨在与AI工具和服务集成
微信扫一扫