气象MCP服务器
一种模型上下文协议(MCP)服务器,提供来自Open-Meteo API的天气数据。
概述
此MCP服务器从Open-Meteo API端点获取天气数据,并通过 超文本传输协议 使用流式HTTP传输。
https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41¤t=temperature_2m,wind_speed_10m&hourly=temperature_2m,relative_humidity_2m,wind_speed_10m特性
- HTTP传输:通过HTTP进行远程访问通信
- 当前天气:获取当前温度和风速
- 逐时预报:访问每小时的温度、相对湿度和风速数据
- 灵活的坐标:查询任何纬度/经度坐标的天气
- 会话管理:支持多个并发客户端会话
安装
- 安装依赖项:
npm install- 构建服务器:
npm run build- 启动服务器:
node build/index.js服务器将于启动 http://localhost:3000 默认情况下。您可以自定义端口:
PORT=8080 node build/index.js端点
POST /mcp-用于工具调用和请求的主MCP端点GET /mcp-用于流式传输的服务器发送事件(SSE)端点DELETE /mcp-关闭会话终结点GET /health-健康检查端点
工具
get_weather
获取指定坐标的当前天气和每小时预报数据。
参数:
latitude(数字):纬度坐标(例如,柏林为52.52)longitude(数字):经度坐标(例如,柏林为13.41)
退货:
- 当前温度(°C)
- 当前风速(km/h)
- 每小时预测数据阵列
- 完整的原始API响应
与MCP客户端一起使用
HTTP客户端(推荐)
使用提供的HTTP客户端连接到正在运行的服务器:
# Start the server in one terminal
node build/index.js
# Run the client in another terminal
node mcp-http-client.js或者使用MCP SDK创建自己的HTTP客户端:
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const client = new Client(
{
name: "my-client",
version: "1.0.0",
},
{ capabilities: {} }
);
const transport = new StreamableHTTPClientTransport(
new URL("http://localhost:3000/mcp")
);
await client.connect(transport);
// List tools
const tools = await client.listTools();
// Call a tool
const result = await client.callTool({
name: "get_weather",
arguments: { latitude: 47.6162, longitude: -122.0356 },
});VS Code
添加到您的 .vscode/mcp.json:
{
"servers": {
"weather-mcp-server": {
"type": "http",
"url": "http://localhost:3000/mcp"
}
}
}克劳德桌面
任何支持HTTP传输的MCP客户端都可以访问HTTP服务器。配置您的客户端以连接到:
http://localhost:3000/mcp查询示例
连接到MCP客户端后,您可以提出以下问题:
- “柏林现在的天气怎么样?”(纬度:52.52,经度:13.41)
- “获取旧金山的天气预报”(纬度:37.77,经度:-122.42)
- “显示东京每小时的温度预报”(纬度:35.68,经度:139.65)
发展
服务器是使用以下方式构建的:
- MCP-SDK: @模型上下文协议/sdk
- 黄道:用于模式验证
- TypeScript:用于类型安全
API 参考
天气数据来源于 开放天气,一个免费天气API,提供:
- 实时天气数据
- 每小时预测
- 不需要API密钥
许可证
国际协调委员会
