使用说明
项目简介
这是一个基于Model Context Protocol (MCP) 的简易服务器实现,用于演示如何通过MCP协议向LLM客户端提供工具 (Tools) 功能。该服务器提供一个名为 'getWeatherDataByCityName' 的工具,允许客户端查询指定城市的天气信息。
主要功能点
- 注册工具 (Tools): 服务器注册了一个名为 'getWeatherDataByCityName' 的工具,该工具接受城市名称作为参数,并返回该城市的天气预报信息(模拟数据)。
- JSON-RPC 通信: 服务器使用 MCP SDK 提供的 StdioServerTransport,通过标准输入/输出来接收和发送符合 JSON-RPC 协议的 MCP 消息。
- 简单的业务逻辑: 内置简单的城市天气查询逻辑(仅支持 "patna" 和 "delhi" 两个城市),用于演示工具的调用和数据返回。
安装步骤
- 安装依赖: 确保已安装 Node.js 和 npm。在仓库目录下打开终端,运行以下命令安装项目依赖:
npm install @modelcontextprotocol/sdk zod - 启动服务器: 在仓库目录下,运行以下命令启动 MCP 服务器:
服务器将通过标准输入/输出与 MCP 客户端进行通信。node index.js
服务器配置
MCP 客户端需要配置以下信息才能连接到此 MCP 服务器。以下是一个 JSON 格式的配置示例,客户端应根据实际情况进行配置:
{ "serverName": "Whether Fetching ", // MCP 服务器名称,代码中定义 "command": "node", // 启动服务器的命令,这里使用 node "args": ["index.js"], // 启动服务器的参数,这里是 index.js 文件 "transport": "stdio" // 使用 Stdio 传输协议,代码中使用 StdioServerTransport }
配置参数说明:
- 'serverName': MCP 服务器的名称,在 'index.js' 代码中被设置为 '"Whether Fetching "'。客户端可以通过能力声明 (Server Capabilities) 获取到此名称。
- 'command': 启动 MCP 服务器进程的命令。由于服务器代码是 'index.js',且使用 Node.js 运行,所以这里设置为 'node'。
- 'args': 传递给启动命令的参数,用于指定要执行的服务器代码文件。这里设置为 '["index.js"]',表示执行当前目录下的 'index.js' 文件。
- 'transport': 指定 MCP 服务器使用的传输协议。代码中使用 'StdioServerTransport',因此这里设置为 '"stdio"'。
基本使用方法
- 启动 MCP 服务器: 按照 "安装步骤" 中的说明启动服务器。
- 配置 MCP 客户端: 在 MCP 客户端中,根据 "服务器配置" 中的 JSON 配置信息配置连接到该服务器。
- 调用工具: 客户端成功连接到服务器后,可以向服务器发送 JSON-RPC 请求来调用 'getWeatherDataByCityName' 工具。请求参数需要包含 'city' 字段,例如:
{ "jsonrpc": "2.0", "method": "tool/invoke", "params": { "tool_name": "getWeatherDataByCityName", "arguments": { "city": "patna" } }, "id": 1 } - 接收响应: 服务器会返回 JSON-RPC 响应,其中包含工具执行的结果,即城市的天气信息(JSON 字符串形式)。
注意: 这是一个非常基础的示例服务器,仅用于演示 MCP 协议的基本概念。实际应用中,MCP 服务器的功能会更加复杂,例如资源管理、Prompt 模板渲染、更完善的错误处理和安全性等等。
信息
分类
网页与API