使用说明
真实天气MCP服务器-测试分配
这是一个测试任务 FastMCP.me -用于创建和部署MCP服务器的服务。
你的任务是创建一个 实时天气MCP服务器 使用新的。NET MCP(模型上下文协议)库。
备注:本次任务欢迎并鼓励使用Cursor、Claude Code、GitHub Copilot和其他AI IDE等AI开发工具。
任务概述
你的任务是创建一个功能齐全的MCP服务器,通过克劳德等人工智能助手提供真实的天气数据。服务器应与实际的天气API集成,并提供准确、最新的天气信息。
需求
核心功能
- 真实天气数据:与真实天气API集成(例如,OpenWeatherMap、AccuWeather或类似)
- 当前天气:获取任何城市/地点的当前天气状况
- 天气预报:提供天气预报(至少3天预报)
- 多个地点:支持全球不同城市的天气查询
- 错误处理:对无效位置、API故障等进行正确的错误处理。
技术要求
- 使用。NET MCP服务器库(
Microsoft.Extensions.AI.Abstractions) - 使用适当的MCP工具
[McpServerTool]属性 - 包括API密钥的环境变量配置
- 跟着。NET最佳实践和编码标准
- 包括适当的日志记录和错误处理
预期实施工具
GetCurrentWeather-获取指定位置的当前天气GetWeatherForecast-获取指定位置的天气预报GetWeatherAlerts-获取某个地点的天气警报/警告(额外奖励)
入门指南
先决条件
- .NET 8.0或更高版本
- Weather API密钥(推荐OpenWeatherMap免费层)
安装说明
-
安装MCP服务器模板:
dotnet new install Microsoft.Extensions.AI.Templates -
基本项目结构已在
WeatherMcpServer目录 -
从天气服务提供商处获取免费的API密钥
-
将API密钥配置为环境变量
工具结构示例
[McpServerTool]
[Description("Gets current weather conditions for the specified city.")]
public async Task<string> GetCurrentWeather(
[Description("The city name to get weather for")] string city,
[Description("Optional: Country code (e.g., 'US', 'UK')")] string? countryCode = null)
{
// Your implementation here
}
评估标准
您的解决方案将在以下方面进行评估:
-
功能 (40%)
- 它是否适用于真实的天气数据?
- 是否实现了所有必需的功能?
- 它处理边缘案件的能力有多强?
-
代码质量 (30%)
- 干净、可读、可维护的代码
- 正确的错误处理和记录
- 跟随。NET约定
-
MCP集成 (20%)
- 正确使用MCP服务器属性和模式
- 良好的工具描述和参数定义
- 正确的服务器配置
-
文件和测试 (10%)
- 清晰的设置和使用文档
- 功能的基本测试
- API密钥配置说明
资源
提交
请提供:
- 具有适当项目结构的完整源代码
- 设置和配置说明
- 工作服务器的示例使用或演示
- 简要记录您的实施方法
预期时间
这项任务大约需要2-4个小时才能完成,具体取决于你的经验水平。
祝你好运 🌤️