项目简介

本项目是一个基于 Model Context Protocol (MCP) 的简单天气数据服务器实现。它通过美国国家气象局 (NWS) API 获取天气信息,并向 MCP 客户端提供工具,以便用户可以通过自然语言查询天气数据。服务器使用 Python 编写,并提供了相应的 Python 客户端示例。

主要功能点

  • 天气警报查询: 查询美国特定州的天气警报信息。
  • 天气预报查询: 查询特定经纬度位置的天气预报信息。
  • MCP 协议支持: 基于 MCP 协议构建,可以与任何兼容 MCP 协议的客户端进行交互。
  • 工具化接口: 通过工具 (Tools) 的形式向客户端暴露天气数据查询功能。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/Abhinavexists/MCP_Server.git
    cd MCP_Server
  2. 安装 uv (可选,推荐使用):

    pip install uv
  3. 创建并激活虚拟环境:

    uv venv
    # 或者使用 python -m venv .venv
    • Windows: '.venv\Scripts\activate'
    • macOS/Linux: 'source .venv/bin/activate'
  4. 安装依赖:

    uv pip sync
    # 或者使用 pip install -r requirements.txt
  5. 配置 Gemini API 密钥: 在项目根目录下创建 '.env' 文件,并添加 Gemini API 密钥:

    GEMINI_API_KEY=your_gemini_api_key_here

    注意: 虽然项目使用了 Gemini AI,但 Gemini API 密钥主要用于客户端的自然语言处理部分,服务器本身的功能不依赖 Gemini API。你仍然需要配置它以运行完整的客户端示例,但如果仅测试 MCP 服务器功能,可以先忽略此步骤。

服务器配置

MCP 服务器的配置主要体现在客户端启动服务器时提供的参数。以下是客户端连接到此 MCP 服务器时需要提供的配置信息示例 (JSON 格式):

{
  "server_name": "weather_server",
  "command": "python",
  "args": ["server.py"]
}

参数注释:

  • 'server_name': 服务器名称,可以自定义,用于客户端标识。例如 "weather_server"。
  • 'command': 启动服务器的命令。对于 Python 服务器,通常是 "python"。
  • 'args': 启动服务器命令的参数列表。对于此项目,服务器脚本是 'server.py',因此参数为 '["server.py"]'。

客户端需要根据此配置信息,构建启动服务器的命令并建立连接。 例如,在 'client.py' 中,服务器配置信息是通过命令行参数传递的服务器脚本路径来确定的。

基本使用方法

  1. 启动 MCP 服务器: 在终端中,进入项目根目录,并执行以下命令启动服务器:

    python server.py

    服务器默认使用 'stdio' 传输协议,并在终端中运行。

  2. 运行 MCP 客户端: 在另一个终端中,同样进入项目根目录,并执行以下命令启动客户端,并连接到刚刚启动的服务器:

    python client.py server.py

    'server.py' 作为参数传递给 'client.py',指定了服务器脚本的路径,客户端会根据这个路径启动并连接服务器。

  3. 通过客户端查询天气信息: 客户端启动后,会进入交互式查询界面。你可以输入自然语言问题来查询天气信息,例如:

    Query: What are the current weather alerts in CA?
    Query: What's the forecast for latitude 34.0522, longitude -118.2437?
  4. 退出客户端: 在查询界面输入 'quit' 并回车即可退出客户端。

注意: 此示例客户端使用了 Google Gemini AI 进行自然语言处理,因此你需要配置 Gemini API 密钥才能完整体验客户端的自然语言查询功能。如果仅测试 MCP 服务器的功能,你可以修改或简化客户端代码,直接调用服务器提供的工具进行测试。

信息

分类

网页与API