项目简介
本项目是一个基于 Model Context Protocol (MCP) 的简单天气数据服务器实现。它通过美国国家气象局 (NWS) API 获取天气信息,并向 MCP 客户端提供工具,以便用户可以通过自然语言查询天气数据。服务器使用 Python 编写,并提供了相应的 Python 客户端示例。
主要功能点
- 天气警报查询: 查询美国特定州的天气警报信息。
- 天气预报查询: 查询特定经纬度位置的天气预报信息。
- MCP 协议支持: 基于 MCP 协议构建,可以与任何兼容 MCP 协议的客户端进行交互。
- 工具化接口: 通过工具 (Tools) 的形式向客户端暴露天气数据查询功能。
安装步骤
-
克隆仓库:
git clone https://github.com/Abhinavexists/MCP_Server.git cd MCP_Server -
安装 uv (可选,推荐使用):
pip install uv -
创建并激活虚拟环境:
uv venv # 或者使用 python -m venv .venv- Windows: '.venv\Scripts\activate'
- macOS/Linux: 'source .venv/bin/activate'
-
安装依赖:
uv pip sync # 或者使用 pip install -r requirements.txt -
配置 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' 中,服务器配置信息是通过命令行参数传递的服务器脚本路径来确定的。
基本使用方法
-
启动 MCP 服务器: 在终端中,进入项目根目录,并执行以下命令启动服务器:
python server.py服务器默认使用 'stdio' 传输协议,并在终端中运行。
-
运行 MCP 客户端: 在另一个终端中,同样进入项目根目录,并执行以下命令启动客户端,并连接到刚刚启动的服务器:
python client.py server.py'server.py' 作为参数传递给 'client.py',指定了服务器脚本的路径,客户端会根据这个路径启动并连接服务器。
-
通过客户端查询天气信息: 客户端启动后,会进入交互式查询界面。你可以输入自然语言问题来查询天气信息,例如:
Query: What are the current weather alerts in CA? Query: What's the forecast for latitude 34.0522, longitude -118.2437? -
退出客户端: 在查询界面输入 'quit' 并回车即可退出客户端。
注意: 此示例客户端使用了 Google Gemini AI 进行自然语言处理,因此你需要配置 Gemini API 密钥才能完整体验客户端的自然语言查询功能。如果仅测试 MCP 服务器的功能,你可以修改或简化客户端代码,直接调用服务器提供的工具进行测试。
信息
分类
网页与API