本项目是 TinyAgents 仓库中的一个天气MCP服务器示例。它展示了如何构建一个简单的MCP服务器来向兼容的LLM客户端提供工具。

项目简介

此示例MCP服务器专注于提供天气数据服务,通过注册并提供特定的工具(Tool),允许LLM或其他MCP客户端查询天气预警和预报信息。它使用了 'mcp' 库来实现MCP协议的通信和工具管理。

主要功能点

  • 工具提供: 注册了 'get_alerts'(获取州级天气预警)和 'get_forecast'(获取经纬度天气预报)两个工具。
  • 外部数据集成: 调用美国国家气象局(NWS)的API获取实时的天气数据。
  • MCP协议实现: 通过Stdio传输协议与客户端通信,解析客户端的工具调用请求并返回结果。

安装步骤

  1. 确保您的系统已安装 Python 3.10 或更高版本。
  2. 克隆 TinyAgents 仓库:
    git clone https://github.com/albertvillanova/tinyagents.git
    cd tinyagents
  3. 安装运行此服务器所需的依赖库:
    pip install mcp httpx

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

要让一个MCP客户端连接到此天气服务器,客户端需要知道如何启动这个服务器进程。通常需要提供以下信息:

  • 服务器名称: 'weather' (这是服务器在内部声明的名称)
  • 启动命令 (command): 'python' (用于执行Python脚本的命令)
  • 命令参数 (args): '["servers/weather/weather.py"]' (指向服务器代码文件的路径)
  • 传输协议: 'stdio' (通过标准输入输出进行通信)

客户端将使用这些信息来启动服务器进程并建立Stdio连接以进行MCP通信。

基本使用方法

  1. 启动天气服务器: 在项目根目录下打开终端,运行以下命令:
    python servers/weather/weather.py
    服务器启动后会监听Stdio连接。
  2. 连接客户端并交互: 您需要运行一个兼容的MCP客户端(例如仓库中的 'tinytoolcallingagent.py' 或 'tinycodeagent.py',或者您自己的MCP客户端),并将其配置或指向刚刚启动的天气服务器脚本。 例如,使用仓库自带的客户端(请在另一个终端窗口运行):
    python tinytoolcallingagent.py servers/weather/weather.py
    客户端连接成功后,您就可以在客户端的聊天界面输入查询,LLM将可能调用天气服务器提供的工具来回答您的问题。 示例查询:
    • "What are the current weather alerts in New York and California?" (查询纽约和加利福尼亚的天气预警)
    • "What's the forecast for latitude 34.0522 and longitude -118.2437?" (查询指定经纬度的天气预报,例如洛杉矶)

信息

分类

网页与API