玩具MCP待办事项列表服务器
概述
这是一个基于MCP概念实现的简单待办事项列表管理工具。它通过JSON-RPC协议提供远程过程调用(RPC)接口。
安装与运行
先决条件
- Node.js (建议使用版本16或更高)
- npm (建议使用版本7或更高)
- Docker (用于PostgreSQL容器化部署)
安装步骤
-
克隆仓库
git clone https://github.com/yourusername/toyMCP-todo.git
cd toyMCP-todo
-
安装依赖
npm install
-
启动PostgreSQL数据库容器
docker run -d --name todo-mcp-postgres -e POSTGRES_PASSWORD=yourpassword -p 5432:5432 postgres:latest
-
初始化数据库表结构
npm run init-database
-
启动服务
npm start
清洁启动脚本
为了方便重新初始化数据库和服务器环境,项目提供了一个清洁启动脚本:
npm run clean-start
这个命令会自动清理数据库、重建表结构并重启服务。
测试
单元测试
运行单元测试以验证核心功能是否正常工作:
npm test
集成测试
集成测试用于验证各个模块之间的协作:
npm run integration-test
覆盖率报告
生成代码覆盖报告,帮助开发者了解测试的充分性:
npm run coverage
完成后,可以在./coverage
目录下查看报告。
API文档
方法列表
mcp.discover
: 返回所有可用方法的信息。
todo.add
: 添加一个新的待办事项。
todo.list
: 获取所有的待办事项。
todo.remove
: 根据ID删除指定的待办事项。
请求与响应示例
发现方法(mcp.discover
)
请求:
{
"jsonrpc": "2.0",
"method": "mcp.discover",
"id": 1
}
响应:
{
"jsonrpc": "2.0",
"result": {
"name": "玩具MCP待办事项服务",
"version": "1.0.0",
"methods": [
{
"name": "mcp.discover",
"params": {},
"description": "返回所有可用方法的信息"
},
{
"name": "todo.add",
"params": {"text": "string"},
"description": "添加一个新的待办事项"
}
]
},
"id": 1
}
添加待办事项(todo.add
)
请求:
{
"jsonrpc": "2.0",
"method": "todo.add",
"params": {
"text": "安装Node.js"
},
"id": 1
}
响应:
{
"jsonrpc": "2.0",
"result": {
"id": 1,
"text": "安装Node.js",
"createdAt": "2024-03-15T12:34:56Z"
},
"id": 1
}
获取所有待办事项(todo.list
)
请求:
{
"jsonrpc": "2.0",
"method": "todo.list",
"id": 1
}
响应:
{
"jsonrpc": "2.0",
"result": [
{
"id": 1,
"text": "安装Node.js",
"createdAt": "2024-03-15T12:34:56Z"
},
{
"id": 2,
"text": "学习Docker",
"createdAt": "2024-03-15T12:35:12Z"
}
],
"id": 1
}
删除待办事项(todo.remove
)
请求:
{
"jsonrpc": "2.0",
"method": "todo.remove",