Weather MCP Server
天气查询MCP服务器
基于百度地图API提供天气查询功能的MCP(Model Context Protocol)工具。
服务配置
{
"mcpServers": {
"weather-mcp": {
"command": "python",
"args": ["-m", "weather_mcp.server"]
}
}
}环境变量配置: 请在系统环境变量中设置:
BAIDU_AK=your_baidu_ak_here功能特性
🌤️ 实时天气查询 - 获取当前天气状况、温度、湿度、风向等信息
📅 天气预报 - 提供未来5天的详细天气预报
📊 生活指数 - 包含晨练、洗车、感冒、紫外线、穿衣、运动等生活指数
⚠️ 气象预警 - 实时获取气象预警信息
⏰ 逐小时预报 - 24小时逐小时天气预报
🗺️ 多种查询方式 - 支持行政区划代码和经纬度坐标查询
安装依赖
pip install -r requirements.txt配置
设置系统环境变量:
Windows:
set BAIDU_AK=your_baidu_ak_hereLinux/macOS:
export BAIDU_AK=your_baidu_ak_here或者在系统环境变量中永久设置 BAIDU_AK。
获取百度地图API密钥
访问 百度地图开放平台
注册并登录账号
创建应用并获取AK(API Key)
确保开通天气服务权限
使用方法
启动MCP服务器
python server.py工具说明
get_weather
获取指定地区的天气信息,支持多种数据类型和查询方式。
参数:
district_id(可选): 区县的行政区划编码,例如:'110101'(北京东城区)location(可选): 经纬度坐标,格式:'经度,纬度',例如:'116.404,39.915'data_type(可选): 请求数据类型now: 实时天气fc: 天气预报index: 生活指数alert: 气象预警fc_hour: 逐小时预报all: 所有数据(默认)
coordtype(可选): 坐标类型,仅在使用location时有效wgs84: WGS84坐标系(默认)bd09ll: 百度经纬度坐标系bd09mc: 百度墨卡托坐标系gcj02: 国测局坐标系
注意: district_id 和 location 必须提供其中一个。
使用示例
1. 使用行政区划代码查询北京东城区天气
{
"name": "get_weather",
"arguments": {
"district_id": "110101",
"data_type": "all"
}
}2. 使用经纬度查询天安门广场天气
{
"name": "get_weather",
"arguments": {
"location": "116.404,39.915",
"data_type": "all",
"coordtype": "wgs84"
}
}3. 只查询实时天气
{
"name": "get_weather",
"arguments": {
"district_id": "110101",
"data_type": "now"
}
}测试
测试百度地图API连接
python test_baidu_api.py测试MCP服务器功能
python test_mcp_server.py项目结构
weather_query/
├── server.py # MCP服务器主文件
├── requirements.txt # Python依赖
├── .env # 环境变量配置
├── .env.example # 环境变量模板
├── test_baidu_api.py # API测试脚本
├── test_mcp_server.py # MCP服务器测试脚本
├── pyproject.toml # 项目配置
├── setup.py # 安装脚本
├── __init__.py # 包初始化文件
└── README.md # 项目说明文档常见问题
Q: 如何获取行政区划代码?
A: 行政区划代码是中国标准的区县编码。常见的代码包括:
110101: 北京市东城区
110102: 北京市西城区
310101: 上海市黄浦区
440101: 广州市荔湾区
您可以通过百度地图API的其他接口或相关文档获取完整的行政区划代码列表。
Q: 支持哪些坐标系?
A: 支持以下坐标系:
WGS84: 国际标准坐标系
BD09LL: 百度经纬度坐标系
BD09MC: 百度墨卡托坐标系
GCJ02: 国测局坐标系(火星坐标系)
Q: API调用频率限制?
A: 请参考百度地图开放平台的API调用频率限制说明。建议合理使用API,避免频繁调用。
MCP服务配置
本地使用配置
{
"mcpServers": {
"weather-mcp": {
"command": "python",
"args": ["-m", "weather_mcp.server"]
}
}
}托管部署配置
{
"mcpServers": {
"weather-mcp": {
"command": "python",
"args": ["-m", "weather_mcp.server"]
}
}
}注意:使用前请确保已在系统环境变量中设置 BAIDU_AK。
许可证
MIT License
贡献
欢迎提交Issue和Pull Request来改进这个项目!
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jiushan-test/weather-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server