天气数据服务

一个独立的MCP服务器,通过OpenWeather API提供天气数据,适用于需要实时天气信息的应用开发。

  • by NovSerg
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 NovSerg/mcp-weather-server

使用说明

MCP气象服务器

独立的MCP(模型上下文协议)服务器,通过OpenWeather API提供天气数据。

建筑

这是一个独立于QueryLane运行的MCP服务器。任何MCP客户端(包括LLM)都可以通过HTTP连接到它。

┌─────────────┐         HTTP/MCP Protocol        ┌──────────────────┐
│             │◄─────────────────────────────────►│ mcp-weather-     │
│ QueryLane   │      http://localhost:3001/mcp   │ server           │
│ (MCP Client)│                                   │ (standalone)     │
│             │                                   │                  │
└─────────────┘                                   └──────────────────┘
                                                          │
                                                          │ uses API key
                                                          ▼
                                                  ┌──────────────────┐
                                                  │ OpenWeather API  │
                                                  └──────────────────┘

设置

1.安装依赖项

cd mcp-weather-server
npm install

2.配置环境

复制 .env.example 到 .env 并添加您的OpenWeather API密钥:

cp .env.example .env

编辑 .env:

OPENWEATHER_API_KEY=your_api_key_here
MCP_PORT=3001

获取API密钥:https://openweathermap.org/api

3.建造

npm run build

运行服务器

发展模式

npm run dev

生产模式

npm start

服务器将于启动 http://localhost:3001 (或中指定的端口 .env).

API终点

健康检查

GET http://localhost:3001/health

返回服务器状态和API密钥配置状态。

MCP端点

POST/mcp

来自MCP客户端的JSON-RPC请求。

GET/mcp

用于通知的服务器发送事件(SSE)流。

删除/mcp

会话终止。

可用工具

get_current_weather

获取指定城市的当前天气信息。

参数:

  • city (必填):城市名称(例如“莫斯科”、“伦敦”)
  • units (可选):温度单位
    • metric (默认):摄氏度,m/s
    • imperial:华氏度,英里/小时
    • standard:开尔文
  • lang (可选):语言代码(默认:“ru”)

示例响应:

{
  "location": "Moscow, RU",
  "temperature": "5°C",
  "feels_like": "2°C",
  "temp_range": "3°C - 7°C",
  "description": "облачно с прояснениями",
  "humidity": "65%",
  "pressure": "1013 hPa",
  "wind_speed": "3.5 м/с",
  "clouds": "40%",
  "visibility": "10.0 km"
}

测试

通过HTTP(curl)

# Health check
curl http://localhost:3001/health

# List tools (requires MCP initialization first)
# See MCP specification for proper JSON-RPC format

通过QueryLane

  1. 确保MCP天气服务器正在运行
  2. 启动QueryLane: npm run dev (在父目录中)
  3. 打开http://localhost:3000
  4. 在“天气工具”面板中单击“加载工具”
  5. 使用播放按钮进行测试

环境变量

  • OPENWEATHER_API_KEY (必需):您的OpenWeather API密钥
  • MCP_PORT (可选):服务器端口(默认:3001)

MCP协议

此服务器使用流式HTTP传输实现模型上下文协议(MCP):

  • 协议版本:2025-03-26
  • 传输:HTTP与服务器发送事件(SSE)
  • 会话管理:具有会话ID的状态

发展

# Watch mode (auto-rebuild on changes)
npm run watch

# Build only
npm run build

# Run after build
npm start

安全说明

  • 所有来源都启用了CORS(适合本地开发)
  • 对于生产部署,配置适当的CORS和身份验证
  • 永不承诺 .env 带有真实API密钥的文件
  • 绑定到本地主机(127.0.0.1)以进行仅本地访问

许可证

麻省理工学院