Back to MCP directory
publicPublicdnsLocal runtime

toyMCP

一个基于Node.js、Express和PostgreSQL的简单待办事项列表CRUD API服务,采用JSON-RPC 2.0协议和Model Context Protocol (MCP)概念实现。

article

README

🚀 玩具MCP待办事项列表服务器

这是一个基于MCP概念实现的简单待办事项列表管理工具,借助JSON - RPC协议提供远程过程调用(RPC)接口,方便用户管理待办事项。

🚀 快速开始

本项目是一个基于MCP概念的待办事项列表管理工具,通过JSON - RPC协议提供远程过程调用接口。下面将详细介绍其安装与运行步骤。

📦 安装指南

先决条件

  • Node.js(建议使用版本16或更高)
  • npm(建议使用版本7或更高)
  • Docker(用于PostgreSQL容器化部署)

安装步骤

  1. 克隆仓库
git clone https://github.com/yourusername/toyMCP-todo.git
cd toyMCP-todo
  1. 安装依赖
npm install
  1. 启动PostgreSQL数据库容器
docker run -d --name todo-mcp-postgres -e POSTGRES_PASSWORD=yourpassword -p 5432:5432 postgres:latest
  1. 初始化数据库表结构
npm run init-database
  1. 启动服务
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",
  "params": {
    "id": 1
  },
  "id": 1
}

(文档中此处原响应未给出,可根据实际情况补充)

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client