使用说明
项目简介
本项目 'MCP-para-todo' 是一个基于 Model Context Protocol (MCP) 的示例服务器,旨在演示如何构建一个能够为大型语言模型 (LLM) 提供实用工具的后端服务。通过这个服务器,LLM 可以调用预先定义好的工具来扩展其能力,例如查询天气、查询字典定义、进行数学计算等,从而实现与外部世界的交互。
主要功能点
- 工具注册与执行: 服务器预先注册了多种实用工具,如 'weather' (天气查询)、'dictionary' (字典查询)、'math' (数学计算)。LLM 客户端可以指定工具名称和输入参数来调用这些工具。
- JSON-RPC 风格的通信: 虽然没有严格遵循 JSON-RPC 协议的所有细节,但服务器通过 HTTP POST 接口 '/mcp' 接收 JSON 格式的请求,并返回 JSON 格式的响应,模拟了 JSON-RPC 的通信模式。
- 模块化工具设计: 工具的实现被模块化地放在 'src/tools' 目录下,易于扩展和添加新的工具。
- 简单的安装和运行: 项目提供了清晰的安装和运行步骤,方便用户快速上手和体验。
安装步骤
-
克隆仓库
打开终端,执行以下命令克隆 GitHub 仓库到本地:
git clone https://github.com/elsantiwg/MCP-para-todo.git cd MCP-para-todo -
安装依赖
在项目根目录下,执行 npm 命令安装项目所需的依赖:
npm install -
配置环境变量
复制 '.env.example' 文件并重命名为 '.env',然后根据需要配置环境变量。
cp .env.example .env本项目的天气查询工具 'weather' 使用了 'weatherapi.com' 的 API,你需要访问 https://www.weatherapi.com/ 注册账号并获取 API 密钥,然后将其填入 '.env' 文件中的 'WEATHER_API_KEY' 字段。
WEATHER_API_KEY=你的_WEATHER_API_KEY -
启动服务器
在项目根目录下,执行以下命令启动开发服务器:
npm run dev服务器默认运行在 'http://localhost:3000'。
服务器配置
对于 MCP 客户端,你需要配置连接到此 MCP 服务器的信息。以下是一个 JSON 格式的配置示例,你需要将其添加到你的 MCP 客户端配置中。
{ "serverName": "MCP Para Todo Server", "command": "npm", "args": ["run", "dev"] }
配置参数说明:
- 'serverName': 服务器的名称,可以自定义,用于在客户端标识该服务器。
- 'command': 启动服务器的命令。 在本项目中,我们使用 'npm run dev' 启动开发服务器,因此命令设置为 'npm'。
- 'args': 启动服务器命令的参数。 对于 'npm run dev',参数为 '["run", "dev"]'。
注意: 此配置假设 MCP 客户端和 MCP 服务器在同一台机器上运行,并且 MCP 客户端能够执行 'npm' 命令。如果服务器部署在远程机器上,你需要根据实际情况配置连接方式,例如使用 HTTP 或 WebSocket 等协议,并相应修改客户端配置。 本示例仅为本地开发演示,未涉及远程部署和更复杂的协议配置。
基本使用方法
启动服务器后,你可以通过 HTTP POST 请求访问 '/mcp' 接口来调用工具。 请求体应为 JSON 格式,包含 'tool' 和 'input' 字段。
示例请求 (使用 'curl'):
1. 查询天气工具 ('weather')
curl -X POST -H "Content-Type: application/json" -d '{"tool": "weather", "input": {"city": "北京"}}' http://localhost:3000/mcp
2. 查询字典工具 ('dictionary')
curl -X POST -H "Content-Type: application/json" -d '{"tool": "dictionary", "input": {"word": "example"}}' http://localhost:3000/mcp
3. 执行数学计算工具 ('math')
curl -X POST -H "Content-Type: application/json" -d '{"tool": "math", "input": {"expression": "2 * (10 + 5)"}}' http://localhost:3000/mcp
响应示例:
服务器会返回 JSON 格式的响应,包含工具执行的结果。例如,查询天气工具可能会返回如下响应:
{ "result": { "ciudad": "Beijing", "pais": "China", "temperatura": 15, "condicion": "Partly cloudy", "humedad": 60, "viento_kph": 15 } }
如果工具调用失败或发生错误,服务器会返回包含错误信息的 JSON 响应。
信息
分类
AI与计算