使用说明

项目简介

本项目 'mcp_weather' 是一个简单的 Model Context Protocol (MCP) 服务器实现,它提供天气预报和天气警报两个工具,使用美国国家气象局 (NWS) 的 API 获取数据。该服务器可以与支持 MCP 协议的 LLM 客户端配合使用,使 LLM 能够通过工具调用获取实时的天气信息。

主要功能点

  • 提供天气警报工具 (get_alerts): 允许 LLM 客户端查询美国特定州的天气警报信息。
  • 提供天气预报工具 (get_forecast): 允许 LLM 客户端查询指定经纬度位置的天气预报信息。
  • 基于 FastMCP 框架: 使用 'fastmcp' 库简化 MCP 服务器的开发。
  • 使用 Stdio 传输协议: 通过标准输入输出 (stdio) 与 MCP 客户端通信。

安装步骤

  1. 安装依赖: 确保你的环境中安装了 'uv' 包管理器 (可以使用 'pip install uv' 安装)。然后,在仓库根目录下运行以下命令安装项目依赖:
    uv pip install -r pyproject.toml

服务器配置

MCP 客户端需要配置以下信息才能连接到 'mcp_weather' 服务器。以下是 JSON 格式的配置信息,客户端通常会读取这些配置来启动和连接服务器:

{
  "serverName": "weather",  // MCP 服务器的名称,由 server.py 中的 FastMCP("weather") 定义
  "command": "python",      // 启动服务器的命令,这里使用 python 解释器
  "args": ["server.py"]    // 启动命令的参数,指定服务器脚本为 server.py
}

配置参数说明:

  • 'serverName': 服务器名称,客户端和服务端需要名称匹配才能正确通信。
  • 'command': 运行服务器端代码的命令。对于 Python 服务器,通常是 'python' 或 'python3'。
  • 'args': 传递给 'command' 的参数列表。这里指定了服务器脚本 'server.py' 的路径。如果 'server.py' 不在客户端的当前工作目录,则需要提供正确的相对或绝对路径。

基本使用方法

  1. 启动 MCP 服务器: 在终端中,导航到 'server.py' 所在的目录,并运行以下命令启动服务器:

    uv run server.py

    服务器成功启动后,通常不会有明显的输出,因为它通过 stdio 等待客户端连接和请求。

  2. 运行 MCP 客户端: 在另一个终端中,导航到 'client.py' 所在的目录,并运行以下命令启动客户端,并将 'server.py' 的路径作为参数传递给客户端:

    python client.py server.py

    客户端启动后,会先连接到服务器并列出可用的工具。之后,你可以输入自然语言查询,例如:

    • 'What are the weather alerts for CA?' (查询加州的天气警报)
    • 'What is the forecast for latitude 34.05 and longitude -118.24?' (查询经纬度 34.05, -118.24 的天气预报,大致是洛杉矶)
    • 'quit' (输入 'quit' 退出客户端)

    客户端会将你的查询发送给 LLM (默认使用 'ollama' 的 'llama3.2:1b' 模型),LLM 可能会根据查询内容调用服务器提供的工具来获取天气信息,并将最终结果返回给你。

注意:

  • 确保你的环境中已经安装并运行了 Ollama,并且 'llama3.2:1b' 模型可用。你可能需要先运行 'ollama pull llama3.2:1b' 下载模型。
  • 客户端和服务器通过 stdio 进行通信,因此它们需要在同一个机器上运行。
  • 此示例主要用于演示 MCP 服务器的基本功能,实际应用中可能需要更完善的错误处理、更强大的 LLM 模型以及更丰富的功能。

信息

分类

网页与API