使用说明
项目简介
本项目 'mcp-server-test' 是一个基于 Model Context Protocol (MCP) 实现的天气信息服务器。它通过 MCP 协议与客户端通信,提供获取天气预警和天气预报的功能。服务器使用了美国国家气象局 (NWS) 的 API 获取天气数据,并以结构化的 JSON-RPC 响应返回给客户端。
主要功能点
- 提供天气预警查询工具 (get-alerts): 允许客户端根据州代码查询该州当前的天气预警信息。
- 提供天气预报查询工具 (get-forecast): 允许客户端根据经纬度查询当地的天气预报信息。
- 基于 MCP 协议: 遵循 MCP 协议标准,易于与任何兼容 MCP 协议的客户端集成。
- 使用 Stdio 传输: 服务器通过标准输入/输出 (stdio) 与客户端进行通信,简化部署和连接配置。
安装步骤
- 克隆仓库:
git clone https://github.com/mokoshi/mcp-server-test.git cd mcp-server-test - 安装依赖:
确保你已经安装了 Node.js 和 npm。在项目根目录下运行:
npm install - 构建项目 (可选):
虽然可以直接运行 TypeScript 代码,但构建项目可以获得更好的性能。运行:
构建后的文件将位于 'weather-server/dist' 目录。npm run build
服务器配置
MCP 客户端需要配置以下信息才能连接到此服务器。请将以下 JSON 配置添加到你的 MCP 客户端配置中:
{ "servers": [ { "name": "weather", // 服务器名称,与代码中 McpServer 实例化的 name 属性一致 "command": "node", // 启动服务器的命令,这里使用 node.js 运行时 "args": [ "weather-server/dist/index.js" // 服务器入口文件路径,如果未构建,可使用 "weather-server/src/index.ts" 并确保安装了 ts-node ], "transport": "stdio" // 使用 stdio 传输协议 } ] }
参数注释:
- 'servers': 配置的服务器列表。
- 'servers[].name': 服务器的唯一名称,用于客户端识别和调用。 必须与 'weather-server/src/index.ts' 中 'McpServer' 构造函数中 'name' 字段的值 '"weather"' 一致。
- 'servers[].command': 启动服务器进程的命令。 由于此服务器是 Node.js 应用,所以设置为 '"node"'。
- 'servers[].args': 传递给启动命令的参数列表。 这里指定了服务器入口文件 'weather-server/dist/index.js' 的路径。 如果你选择直接运行 TypeScript 代码而不是构建,并且安装了 'ts-node',则可以使用 '"weather-server/src/index.ts"' 作为入口文件路径。
- 'servers[].transport': 指定服务器使用的传输协议。 此服务器使用标准输入/输出,所以设置为 '"stdio"'。
基本使用方法
-
启动服务器: MCP 客户端根据上述配置启动 'weather' 服务器。
-
客户端调用工具: 客户端可以使用 MCP 协议定义的 JSON-RPC 请求来调用服务器提供的工具。
-
调用 'get-alerts' 工具示例 (假设客户端已连接并能发送 JSON-RPC 请求):
{ "jsonrpc": "2.0", "method": "tool/invoke", "params": { "tool_name": "weather/get-alerts", // "服务器名称/工具名称" 的格式 "arguments": { "state": "CA" // 州代码,例如 "CA" 代表加利福尼亚州 } }, "id": "1" }服务器将返回包含加利福尼亚州天气预警信息的 JSON-RPC 响应。
-
调用 'get-forecast' 工具示例:
{ "jsonrpc": "2.0", "method": "tool/invoke", "params": { "tool_name": "weather/get-forecast", // "服务器名称/工具名称" 的格式 "arguments": { "latitude": 34.0522, // 纬度 "longitude": -118.2437 // 经度,例如 洛杉矶的经纬度 } }, "id": "2" }服务器将返回包含指定经纬度位置天气预报信息的 JSON-RPC 响应。
-
注意:
- 工具名称需要使用 '"服务器名称/工具名称"' 的格式,例如 '"weather/get-alerts"' 和 '"weather/get-forecast"'。
- 请确保你的 MCP 客户端能够正确发送和接收 JSON-RPC 格式的请求和响应,并根据 MCP 协议规范进行操作。
- 本服务器依赖于美国国家气象局 (NWS) 的 API,因此查询地点需在美国国家气象局 API 服务范围内。
信息
分类
网页与API