本项目是 TinyAgents 仓库中的一个天气MCP服务器示例。它展示了如何构建一个简单的MCP服务器来向兼容的LLM客户端提供工具。
项目简介
此示例MCP服务器专注于提供天气数据服务,通过注册并提供特定的工具(Tool),允许LLM或其他MCP客户端查询天气预警和预报信息。它使用了 'mcp' 库来实现MCP协议的通信和工具管理。
主要功能点
- 工具提供: 注册了 'get_alerts'(获取州级天气预警)和 'get_forecast'(获取经纬度天气预报)两个工具。
- 外部数据集成: 调用美国国家气象局(NWS)的API获取实时的天气数据。
- MCP协议实现: 通过Stdio传输协议与客户端通信,解析客户端的工具调用请求并返回结果。
安装步骤
- 确保您的系统已安装 Python 3.10 或更高版本。
- 克隆 TinyAgents 仓库:
git clone https://github.com/albertvillanova/tinyagents.git cd tinyagents - 安装运行此服务器所需的依赖库:
pip install mcp httpx
服务器配置 (供MCP客户端连接使用)
要让一个MCP客户端连接到此天气服务器,客户端需要知道如何启动这个服务器进程。通常需要提供以下信息:
- 服务器名称: 'weather' (这是服务器在内部声明的名称)
- 启动命令 (command): 'python' (用于执行Python脚本的命令)
- 命令参数 (args): '["servers/weather/weather.py"]' (指向服务器代码文件的路径)
- 传输协议: 'stdio' (通过标准输入输出进行通信)
客户端将使用这些信息来启动服务器进程并建立Stdio连接以进行MCP通信。
基本使用方法
- 启动天气服务器:
在项目根目录下打开终端,运行以下命令:
服务器启动后会监听Stdio连接。python servers/weather/weather.py - 连接客户端并交互:
您需要运行一个兼容的MCP客户端(例如仓库中的 'tinytoolcallingagent.py' 或 'tinycodeagent.py',或者您自己的MCP客户端),并将其配置或指向刚刚启动的天气服务器脚本。
例如,使用仓库自带的客户端(请在另一个终端窗口运行):
客户端连接成功后,您就可以在客户端的聊天界面输入查询,LLM将可能调用天气服务器提供的工具来回答您的问题。 示例查询:python tinytoolcallingagent.py servers/weather/weather.py- "What are the current weather alerts in New York and California?" (查询纽约和加利福尼亚的天气预警)
- "What's the forecast for latitude 34.0522 and longitude -118.2437?" (查询指定经纬度的天气预报,例如洛杉矶)
信息
分类
网页与API