使用说明
🌤️ 气象MCP服务器
气象MCP服务器 是基于TypeScript的模型上下文协议(MCP)服务器的实现。它提供了一个简化的界面,可以使用Open Meteo的公共API检索任何城市的每日天气预报。
该项目清楚地说明了MCP服务器如何公开与外部API集成的自定义工具,为MCP客户端提供结构化数据。
✨ 主要特点
| 特性 | 描述 |
|---|---|
| MCP集成 | 用途 @modelcontextprotocol/sdk 用于无缝MCP处理 |
| Zod验证 | 工具参数的运行时验证。 |
| 标准运输 | 通过标准输入/输出流进行通信。 |
| 外部API | 使用Open Meteo API获取实时天气数据。 |
📋 需求
- Node.js≥18(ESM和顶级
await支持) - npm、yarn或pnpm用于依赖管理
🚀 快速开始
安装
git clone https://github.com/yourusername/weather-mcp-server.git
cd weather-mcp-server
# Install dependencies
npm install # or yarn install / pnpm install
运行服务器
npm run start # or use your preferred method (e.g., ts-node main.ts)
服务器在标准输入/输出上监听MCP消息。
示例工具调用
请求:
{
"tool": "fetch-weather",
"params": { "city": "Madrid" }
}
答复:
{
"content": [
{
"type": "text",
"text": "{\n \"daily\": {\n \"temperature_2m_max\": [26.4],\n \"temperature_2m_min\": [15.1]\n }\n}"
}
]
}
🗂️ 项目结构
weather-mcp-server/
├── main.ts # Entry point for the MCP server
├── package.json
├── pnpm-lock.yaml
└── node_modules/
⚙️ 运作原理
MCP服务器通过以下过程运行:
- 初始化:MCP服务器用名称和版本实例化。
- 工具定义:工具由唯一标识符、描述、Zod验证的参数模式和异步处理程序定义。
- API集成:当被调用时,
fetch-weather调用Open Meteo API以获取城市的地理和天气数据。 - 沟通:利用
StdioServerTransport用于服务器和MCP客户端之间的通信。
🚧 TODO/未来想法
- 集成其他API以扩展功能(例如时区、空气质量)。
- 扩展传输功能(例如WebSockets、HTTP)。
- 实施全面的测试套件。
📄 许可证
MIT许可证。看 许可证 了解更多信息。
