使用说明
气象MCP服务器
一个真实天气模型上下文协议(MCP)服务器,使用OpenWeatherMap API提供当前天气数据、预报和天气警报。
特性
- 当前天气:获取全球任何城市的实时天气状况
- 天气预报:获取长达5天的天气预报
- 天气警报:获取特定地点的天气预警和警报
- 全球覆盖:为全球城市提供支持
- 综合数据:温度、湿度、风、降水等
可用工具
GetCurrentWeather
获取指定位置的当前天气状况。
- 参数:
location(string)-城市或地点的名称 - 退货:格式化的当前天气信息,包括温度、条件、湿度、风等
GetWeatherForecast
获取指定位置未来几天的天气预报。
- 参数:
location(string)-城市或地点的名称days(int,可选)-要预测的天数(1-5,默认值为3)
- 退货:每日详细天气预报
GetWeatherAlerts
获取指定位置的天气警报和警告。
- 参数:
location(string)-城市或地点的名称 - 退货:当前天气警报、警告和公告列表
先决条件
- .NET 8.0或更高版本
- OpenWeatherMap API密钥(提供免费层)
设置
1.获取OpenWeatherMap API密钥
- 访问 OpenWeatherMap
- 注册一个免费帐户
- 从您的帐户仪表板生成API密钥
- 注:免费套餐包括:
- 当前天气数据
- 5天天气预报
- 每天1000个API调用
2.配置环境变量
使用OpenWeatherMap API键设置以下环境变量:
export OPENWEATHER_API_KEY="your_api_key_here"
或者在Windows上:
set OPENWEATHER_API_KEY=your_api_key_here
3.构建和运行
# Restore dependencies
dotnet restore
# Build the project
dotnet build
# Run the server
dotnet run
使用示例
MCP服务器运行后,您可以将其与任何兼容MCP的客户端(如Claude Desktop)一起使用。以下是一些示例查询:
- “伦敦现在的天气怎么样?”
- “给我东京5天的天气预报”
- “迈阿密有天气警报吗?”
- “巴黎现在的气温是多少?”
配置
环境变量
OPENWEATHER_API_KEY(必需)-您的OpenWeatherMap API密钥WEATHER_CHOICES(可选)-随机天气工具的传统环境变量
API限值
免费的OpenWeatherMap计划包括:
- 每天1000个API调用
- 当前天气数据
- 5天/3小时预报
- 天气警报(需要订阅One Call API 3.0才能获得完整功能)
建筑
服务器遵循干净的架构模式:
- 模型:API响应的数据传输对象
- 接口:服务和存储库合同
IWeatherRepository:用于访问天气数据的存储库接口IWeatherService:业务逻辑服务接口
- 仓库:数据访问层实现
OpenWeatherMapRepositoryOpenWeatherMap API集成
- 服务:业务逻辑层实现
WeatherService:天气数据处理和格式化
- 工具:
WeatherTools-MCP工具实现##错误处理
服务器包括全面的错误处理:
- 位置名称无效
- API速率限制
- 网络连接问题
- 缺少API密钥配置
- API响应格式不正确
气象数据源
- 当前天气OpenWeatherMap当前天气API
- 预测:OpenWeatherMap 5天预测API
- 警报:OpenWeatherMap One Call API 3.0(需要订阅完整警报)
在当地发展
要从源代码(本地)测试此MCP服务器,而不使用内置的MCP服务器包,您可以将IDE配置为直接使用以下命令运行项目 dotnet run.
{
"servers": {
"WeatherMcpServer": {
"type": "stdio",
"command": "dotnet",
"args": [
"run",
"--project",
"<PATH TO PROJECT DIRECTORY>"
]
}
}
}
测试MCP服务器
使用OpenWeatherMap API密钥配置后,您可以提出以下问题:
- “伦敦现在的天气怎么样?”
- “给我一份纽约3天的天气预报”
- “迈阿密有天气警报吗?”
发展
添加新功能
- 将新模型添加到
Models/WeatherModels.cs - 在中定义新合同
Interfaces文件夹 - 扩展
OpenWeatherMapRepository在Repositories文件夹 - 更新
WeatherService在Services文件夹 - 添加新工具
WeatherTools.cs
测试
您可以通过运行服务器并将其连接到MCP客户端(如Claude Desktop或带有Copilot Chat的VS Code)来测试服务器。
更多信息
.NET MCP服务器使用 模型上下文协议 C#SDK。有关MCP的更多信息:
有关配置和使用MCP服务器的更多信息,请参阅VS Code或Visual Studio文档:
许可证
本项目按原样提供,用于教育和发展目的。
支持
关于以下问题:
- OpenWeatherMap API:检查 OpenWeatherMap文档
- MCP协议:检查 模型上下文协议文档
- 此服务器:在存储库中创建问题