使用说明
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/simperial:华氏度,英里/小时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
- 确保MCP天气服务器正在运行
- 启动QueryLane:
npm run dev(在父目录中) - 打开http://localhost:3000
- 在“天气工具”面板中单击“加载工具”
- 使用播放按钮进行测试
环境变量
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)以进行仅本地访问
许可证
麻省理工学院