项目简介

本项目演示了如何构建一个遵循 Model Context Protocol (MCP) 标准的服务器。该MCP服务器主要职责是向大型语言模型 (LLM) 客户端提供结构化的上下文信息和可调用的功能(工具)。在本演示中,服务器提供了查询美国天气预警和特定地点天气预报的功能。

主要功能点

  • 天气预警查询: 能够根据美国州代码(如“CA”表示加利福尼亚)获取当前活跃的天气预警信息。
  • 地理位置天气预报: 能够根据经纬度获取指定地点的详细天气预报。
  • MCP协议通信: 服务器通过JSON-RPC协议与客户端进行通信,接收请求并返回响应。
  • 工具注册与执行: 将'get_alerts'和'get_forecast'函数注册为可供LLM调用的工具。

安装步骤

  1. 创建并激活虚拟环境 (可选,但推荐): 在项目根目录执行以下命令:
    python -m venv mcp-env
    source mcp-env/bin/activate
  2. 安装必要的Python包: 该MCP服务器及其配套客户端需要 'mcp' 库及其CLI工具、'python-dotenv' (用于加载环境变量) 以及 'google-genai' (客户端用于与Gemini模型交互)。
    pip3 install mcp[cli] mcp python-dotenv google-genai --upgrade
  3. 配置API Key: 在项目根目录下的 'mcp' 子目录中创建一个名为 '.env' 的文件,并填入您的Google API Key,用于客户端与Gemini模型进行交互。
    GOOGLE_API_KEY="YOUR_GOOGLE_API_KEY"
    请将 'YOUR_GOOGLE_API_KEY' 替换为您的实际Gemini API Key。

服务器配置 (供MCP客户端连接)

MCP服务器启动命令的配置信息如下:

{
  "server_name": "WeatherService",
  "command": "python3",
  "args": ["mcp/server.py"],
  "description": "提供天气预警和天气预报查询服务的MCP服务器。"
}
  • 'server_name': 服务器的逻辑名称,此处为 "WeatherService"。
  • 'command': 启动MCP服务器所使用的命令,这里是 'python3'。
  • 'args': 传递给 'command' 的参数列表,指示运行 'mcp/server.py' 文件。
  • 'description': 对服务器功能的简要描述。

基本使用方法

  1. 确保您位于项目的根目录。
  2. 启动MCP服务器和客户端: 在终端中运行以下命令,客户端会启动MCP服务器作为其子进程,并与之建立通信。
    python3 mcp/client.py mcp/server.py
  3. 交互式查询: 客户端启动后,您将看到提示符 'Query: ',可以输入自然语言查询,客户端会利用Gemini模型和MCP服务器提供的工具来回答问题。 例如:
    • 查询天气预警:'weather alerts for CA' (查询加利福尼亚州的天气预警)
    • 查询天气预报:'weather for 37.7749, -122.4194' (查询旧金山(大致经纬度)的天气)
  4. 退出: 在查询提示符下输入 'quit' 即可退出程序。

信息

分类

网页与API