项目简介
本项目演示了如何构建一个遵循 Model Context Protocol (MCP) 标准的服务器。该MCP服务器主要职责是向大型语言模型 (LLM) 客户端提供结构化的上下文信息和可调用的功能(工具)。在本演示中,服务器提供了查询美国天气预警和特定地点天气预报的功能。
主要功能点
- 天气预警查询: 能够根据美国州代码(如“CA”表示加利福尼亚)获取当前活跃的天气预警信息。
- 地理位置天气预报: 能够根据经纬度获取指定地点的详细天气预报。
- MCP协议通信: 服务器通过JSON-RPC协议与客户端进行通信,接收请求并返回响应。
- 工具注册与执行: 将'get_alerts'和'get_forecast'函数注册为可供LLM调用的工具。
安装步骤
- 创建并激活虚拟环境 (可选,但推荐):
在项目根目录执行以下命令:
python -m venv mcp-env source mcp-env/bin/activate - 安装必要的Python包:
该MCP服务器及其配套客户端需要 'mcp' 库及其CLI工具、'python-dotenv' (用于加载环境变量) 以及 'google-genai' (客户端用于与Gemini模型交互)。
pip3 install mcp[cli] mcp python-dotenv google-genai --upgrade - 配置API Key:
在项目根目录下的 'mcp' 子目录中创建一个名为 '.env' 的文件,并填入您的Google API Key,用于客户端与Gemini模型进行交互。
请将 'YOUR_GOOGLE_API_KEY' 替换为您的实际Gemini API Key。GOOGLE_API_KEY="YOUR_GOOGLE_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': 对服务器功能的简要描述。
基本使用方法
- 确保您位于项目的根目录。
- 启动MCP服务器和客户端:
在终端中运行以下命令,客户端会启动MCP服务器作为其子进程,并与之建立通信。
python3 mcp/client.py mcp/server.py - 交互式查询:
客户端启动后,您将看到提示符 'Query: ',可以输入自然语言查询,客户端会利用Gemini模型和MCP服务器提供的工具来回答问题。
例如:
- 查询天气预警:'weather alerts for CA' (查询加利福尼亚州的天气预警)
- 查询天气预报:'weather for 37.7749, -122.4194' (查询旧金山(大致经纬度)的天气)
- 退出: 在查询提示符下输入 'quit' 即可退出程序。
信息
分类
网页与API