使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的简单服务器实现,旨在为 LLM 客户端提供天气查询功能。它通过调用外部天气 API 获取指定城市的天气信息,并将结果以 MCP 协议规定的格式返回给客户端。

主要功能点

  • 提供天气查询工具: 注册了一个名为 'getWeatherBycityName' 的工具,允许 LLM 客户端通过城市名称查询天气信息。
  • 基于 MCP 协议: 遵循 MCP 协议规范,使用 JSON-RPC over SSE (Server-Sent Events) 与客户端通信。
  • 可扩展性: 基于 Node.js 和 Express.js 构建,易于扩展和添加更多工具或资源。

安装步骤

  1. 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm (Node Package Manager)。
  2. 克隆仓库: 将 GitHub 仓库 'https://github.com/amit-singh-mobcoder/weather-mcp-server' 克隆到本地。
  3. 安装依赖: 在仓库根目录下打开终端,运行命令 'npm install' 安装项目依赖。
  4. 配置环境变量:
    • 在项目根目录下创建 '.env' 文件。
    • Weatherstack 注册并获取 API 密钥 (API key)。
    • 将 API 密钥添加到 '.env' 文件中,格式为 'WEATHER_STACK_API_KEY=YOUR_API_KEY',将 'YOUR_API_KEY' 替换为你的实际 API 密钥。

服务器配置

MCP 客户端需要配置以下信息才能连接到此 MCP 服务器。以下是 JSON 格式的配置信息示例,请根据你的实际情况进行调整:

{
  "serverName": "WeatherMCP",
  "command": "node",
  "args": ["index.js"],
  "transport": "sse",
  "baseUrl": "http://localhost:8080"
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,可以自定义,例如 "WeatherMCP"。
  • 'command': 启动 MCP 服务器的命令,这里使用 'node' 运行 JavaScript 文件。
  • 'args': 启动命令的参数,这里指定运行 'index.js' 文件。
  • 'transport': 使用的传输协议,本项目使用 'sse' (Server-Sent Events)。
  • 'baseUrl': 服务器的基础 URL,默认为 'http://localhost:8080',如果服务器部署在其他地址或端口,请相应修改。

注意: 确保在运行 MCP 客户端之前,先启动 MCP 服务器。在仓库根目录下打开终端,运行命令 'node index.js' 即可启动服务器。

基本使用方法

  1. 启动 MCP 服务器: 按照上述 “服务器配置” 中的说明启动服务器。
  2. 配置 MCP 客户端: 在 MCP 客户端中,按照 “服务器配置” 中的 JSON 信息配置连接到该服务器。
  3. 调用工具: 在 MCP 客户端中,可以使用 'getWeatherBycityName' 工具查询天气信息。例如,客户端可以发送类似以下的请求 (JSON-RPC 格式,具体格式取决于 MCP 客户端实现):
{
  "jsonrpc": "2.0",
  "method": "call",
  "params": {
    "tool_name": "getWeatherBycityName",
    "tool_arguments": {
      "city": "London"
    }
  },
  "id": 1
}

服务器会调用 'getWeatherByCity' 函数,使用 "London" 作为城市名查询天气,并将结果通过 SSE 返回给客户端。客户端接收到响应后,即可解析并展示天气信息。

预期响应 (简化示例):

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"request\":{\"type\":\"City\",\"query\":\"London\",\"language\":\"en\",\"unit\":\"m\"},\"location\":{\"name\":\"London\",\"country\":\"United Kingdom\",\"region\":\"City of London, Greater London\",\"lat\":\"51.517\",\"lon\":\"-0.106\",\"timezone_id\":\"Europe\\/London\",\"localtime\":\"2024-08-23 16:48\",\"localtime_epoch\":1724460533,\"utc_offset\":\"1.0\"},\"current\":{\"observation_time\":\"03:48 PM\",\"temperature\":21,\"weather_code\":116,\"weather_icons\":[\"https:\\/\\/cdn.weatherstack.com\\/img\\/w\\/116.png\"],\"weather_descriptions\":[\"Partly cloudy\"],\"wind_speed\":11,\"wind_degree\":250,\"wind_dir\":\"WSW\",\"pressure\":1014,\"precip\":0,\"humidity\":64,\"cloudcover\":75,\"feelslike\":21,\"uv_index\":5,\"visibility\":10,\"is_day\":\"yes\"}}"
      }
    ]
  }
}

总结

通过以上步骤,你就可以成功配置和使用天气查询 MCP 服务器,为你的 LLM 应用提供实时的天气信息查询能力。

信息

分类

网页与API