使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 实现的示例服务器,专注于提供天气相关的信息服务。它注册并暴露了一系列工具(Tools),使得支持 MCP 协议的 LLM 客户端能够通过调用这些工具获取天气预报和预警信息。
主要功能点
- 天气预警查询: 提供工具查询美国指定州的当前天气预警信息。
- 天气预报查询: 提供工具查询指定地理位置(经纬度)的详细天气预报。
- MCP 标准通信: 通过标准 JSON-RPC 和 Stdio 传输协议与 MCP 客户端进行交互。
- 工具注册与执行: 按照 MCP 规范注册天气相关的工具,并在接收到客户端请求时执行相应的外部 API 调用。
安装步骤
本项目基于 Python 开发,并使用了 'uv' 包管理器(也可使用 pip)。
- 确保已安装 Python 3.8+ 和 uv。
- 克隆仓库:
git clone https://github.com/guobinqiu/mcp-demo.git cd mcp-demo - 初始化项目并创建虚拟环境:
uv init mcp-demo uv venv - 激活虚拟环境:
source .venv/bin/activate # macOS/Linux # 或 .venv\Scripts\activate # Windows - 安装项目依赖:
uv add "mcp[cli]" httpx openai python-dotenv - 删除默认的 'main.py' 文件:
rm main.py # macOS/Linux # 或 del main.py # Windows - 创建或修改 '.env' 文件,填入你的 DeepSeek API Key:
将 'YOUR_DEEPSEEK_API_KEY' 替换为你的实际 DeepSeek API 密钥。# .env OPENAI_API_KEY="YOUR_DEEPSEEK_API_KEY" # 如果需要,也可以指定API Base URL # OPENAI_API_BASE="https://api.deepseek.com/v1"
服务器配置
这个 MCP 服务器通过 Stdio 协议运行。要让 MCP 客户端连接并使用这个服务器,客户端需要知道如何启动它。
您需要在 MCP 客户端的配置文件中(通常是 JSON 格式)指定以下参数来启动和连接此服务器:
- 服务器名称 (name): 'weather'
- 启动命令 (command): 'python'
- 命令参数 (args): '["path/to/weather.py"]' (请替换 '"path/to/weather.py"' 为 'weather.py' 文件的实际绝对或相对路径)
- 传输协议 (transport): 'stdio'
例如,在某些客户端的配置文件中,对应的部分可能看起来像这样(具体格式取决于客户端实现):
{ "servers": [ { "name": "weather", "transport": "stdio", "parameters": { "command": "python", "args": ["weather.py"] } } ] }
请注意:上述是一个示例 JSON 片段,您应根据您的 MCP 客户端的要求进行实际配置,无需复制上面的代码块。关键信息是'name'、'command'和'args'。
基本使用方法
在完成安装和配置 '.env' 文件后,可以通过运行仓库中的 'client.py' 脚本来启动一个示例 MCP 客户端并连接到 'weather.py' 服务器。
- 确保你还在项目的虚拟环境中。
- 运行客户端脚本,并指定 'weather.py' 文件的路径:
python client.py weather.py - 客户端启动后,会连接到服务器并显示可用的工具。
- 在提示符 'Query:' 后输入你的天气查询,例如 "what's the weather in new york" 或 "are there any alerts for california"。LLM 客户端将解析你的查询,并自动调用服务器提供的天气工具来获取信息并生成回复。
- 输入 'quit' 退出客户端。
信息
分类
网页与API