使用说明

项目简介

这是一个基于Model Context Protocol (MCP) 的简易服务器实现,用于演示如何通过MCP协议向LLM客户端提供工具 (Tools) 功能。该服务器提供一个名为 'getWeatherDataByCityName' 的工具,允许客户端查询指定城市的天气信息。

主要功能点

  • 注册工具 (Tools): 服务器注册了一个名为 'getWeatherDataByCityName' 的工具,该工具接受城市名称作为参数,并返回该城市的天气预报信息(模拟数据)。
  • JSON-RPC 通信: 服务器使用 MCP SDK 提供的 StdioServerTransport,通过标准输入/输出来接收和发送符合 JSON-RPC 协议的 MCP 消息。
  • 简单的业务逻辑: 内置简单的城市天气查询逻辑(仅支持 "patna" 和 "delhi" 两个城市),用于演示工具的调用和数据返回。

安装步骤

  1. 安装依赖: 确保已安装 Node.js 和 npm。在仓库目录下打开终端,运行以下命令安装项目依赖:
    npm install @modelcontextprotocol/sdk zod
  2. 启动服务器: 在仓库目录下,运行以下命令启动 MCP 服务器:
    node index.js
    服务器将通过标准输入/输出与 MCP 客户端进行通信。

服务器配置

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"'。

基本使用方法

  1. 启动 MCP 服务器: 按照 "安装步骤" 中的说明启动服务器。
  2. 配置 MCP 客户端: 在 MCP 客户端中,根据 "服务器配置" 中的 JSON 配置信息配置连接到该服务器。
  3. 调用工具: 客户端成功连接到服务器后,可以向服务器发送 JSON-RPC 请求来调用 'getWeatherDataByCityName' 工具。请求参数需要包含 'city' 字段,例如:
    {
      "jsonrpc": "2.0",
      "method": "tool/invoke",
      "params": {
        "tool_name": "getWeatherDataByCityName",
        "arguments": {
          "city": "patna"
        }
      },
      "id": 1
    }
  4. 接收响应: 服务器会返回 JSON-RPC 响应,其中包含工具执行的结果,即城市的天气信息(JSON 字符串形式)。

注意: 这是一个非常基础的示例服务器,仅用于演示 MCP 协议的基本概念。实际应用中,MCP 服务器的功能会更加复杂,例如资源管理、Prompt 模板渲染、更完善的错误处理和安全性等等。

信息

分类

网页与API