使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的天气服务器演示程序。它实现了一个简单的 MCP 服务器,对外提供查询天气信息的功能。该服务器包含一个名为 'get-weather' 的工具和一个名为 'check-weather' 的 Prompt 模板,演示了 MCP 服务器如何托管工具和 Prompt,并与 MCP 客户端协同工作。

主要功能点

  • 工具 (Tool) 注册和执行: 注册了一个 'get-weather' 工具,允许客户端查询当前或未来天气信息。
  • Prompt 模板 (Prompt) 定义: 定义了一个 'check-weather' Prompt 模板,客户端可以使用该模板向 LLM 发送天气查询指令。
  • 基于 Stdio 的传输协议: 使用 Stdio 作为服务器和客户端之间的通信协议。
  • 模拟天气数据: 使用预定义的模拟数据,无需真实的天气 API 接口。

安装步骤

  1. 克隆仓库
    git clone https://github.com/naFeKnehC/mcp-demos.git
    cd mcp-demos
  2. 进入 'weather-server' 目录
    cd weather-server
  3. 安装依赖
    npm install

服务器配置

MCP 客户端需要以下配置信息来连接到此 MCP 服务器。以下是 JSON 格式的配置信息,请提供给 MCP 客户端:

{
  "serverName": "weather-server",
  "command": "node",
  "args": ["weather-server/src/index.ts"]
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,这里设置为 "weather-server"。
  • 'command': 启动 MCP 服务器的命令,这里使用 'node' 运行 JavaScript 文件。
  • 'args': 启动命令的参数,这里指定了服务器入口文件 'weather-server/src/index.ts' 的路径。

注意: MCP 客户端需要能够执行 'node weather-server/src/index.ts' 命令来启动服务器。请确保客户端环境已安装 Node.js,并且可以访问到 'weather-server/src/index.ts' 文件。

基本使用方法

  1. 启动 MCP 服务器 在 'weather-server' 目录下,运行以下命令启动服务器 (此步骤通常由 MCP 客户端在后台自动完成,但为了测试,您也可以手动运行):

    node src/index.ts

    服务器成功启动后,会在控制台输出 'Weather MCP Server running on stdio'。

  2. 运行 MCP 客户端示例 请参考仓库中的 'mcp-client-demo' 目录下的示例代码 ('src/index.ts' 或 'src/demo.ts'),根据示例代码配置 MCP 服务器的连接信息(即上面提供的 JSON 配置)。运行客户端示例程序后,即可与 MCP 服务器进行交互,发送天气查询请求。

    例如,使用 'mcp-client-demo/src/index.ts' (OpenAI 客户端示例):

    • 进入 'mcp-client-demo' 目录: 'cd ../mcp-client-demo'
    • 安装客户端依赖: 'npm install'
    • 复制 '.env.example' 文件并重命名为 '.env', 填写 OpenAI API Key 和 Model Name (如果使用 OpenAI 客户端示例)。
    • 运行客户端,并传入 'weather-server/src/index.ts' 的路径作为参数:
      node src/index.ts ../weather-server/src/index.ts
    • 客户端启动后,在命令行中输入天气查询问题,例如 "今天天气怎么样?" 或 "未来三天天气预报"。客户端会调用 MCP 服务器的工具或 Prompt,并将结果返回。

注意: 本项目仅为演示目的,天气数据为模拟数据。实际应用中,您需要替换为真实的天气数据源。

信息

分类

网页与API