Milkosten_task Mcp Server

Milkosten_task Mcp Server

🚀 任务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 或更高版本

快速开始

  1. 克隆项目:
    git clone 
    
  2. 安装依赖:
    cd mcp-template-ts && npm install
    
  3. 启动服务器(STDIO模式):
    npm start
    
  4. 或启动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),无默认值

开发

  1. 启动TypeScript编译器进行实时监听:
    npm run watch
    
  2. 运行测试以验证更改:
    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文件。

致谢

  • 0 关注
  • 0 收藏,7 浏览
  • system 提出于 2025-09-29 08:51

相似服务问题