天气信息工具服务

一个基于Model Context Protocol (MCP)的天气信息工具服务,提供天气警报和天气预报功能,适用于需要实时天气数据的AI模型和应用程序。

  • by RatnadeepSimhadri
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 ratnadeepsimhadri/weather-mcp-server

使用说明

气象mcp服务器

MCP天气服务器说明

此文件实现了一个提供天气信息工具的模型上下文协议(MCP)服务器。MCP使AI模型能够以结构化的方式与外部工具进行交互。

概述 服务器公开了两个天气工具:

  • get-alerts:获取美国特定州的天气警报
  • get-forecast:按坐标获取特定位置的天气预报 它使用美国国家气象局(NWS)API获取真实的天气数据。

MCP客户如何理解工具输入

MCP客户如何理解工具输入的关键在于如何注册工具:

server.tool(
  "get-forecast",                   // Tool name
  "Get weather forecast for a location",  // Tool description
  {                                // Input schema
    latitude: z.number().min(-90).max(90).describe("Latitude of the location"),
    longitude: z.number().min(-180).max(180).describe("Longitude of the location"),
  },
  async ({ latitude, longitude }) => {   // Handler function
    // Implementation
  }
);

以下是客户如何理解输入:

  1. 模式定义:第三个参数使用Zod(z)来定义预期的输入及其约束:
  • 输入参数名称(例如纬度、经度)
  • 数据类型(z.number()、z.string())
  • 验证规则(最小(-90),最大(90),长度(2))
  • 描述(描述(“位置纬度”))
  1. 客户端发现:当MCP客户端连接到此服务器时:
  • 它接收有关可用工具的元数据
  • 对于每个工具,它都会获得名称、描述和输入模式
  • 客户端可以在发送输入之前使用此信息来验证输入
  1. 通信:StdioServerTransport处理服务器和客户端之间此架构信息的序列化和通信。

这种基于模式的方法确保客户端确切地知道每个工具所期望的参数、它们的类型、约束以及它们所表示的内容。