天气数据MCP服务器

一个简单的模型上下文协议(MCP)服务器,提供天气信息并展示构建MCP服务器的核心概念。

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

使用说明

气象MCP服务器

一个简单的模型上下文协议(MCP)服务器,提供天气信息并演示构建MCP服务器的核心概念。

特性

此MCP服务器演示:

  • 资源:不同地点的天气数据(纽约、伦敦、东京)
  • 工具:获取当前天气和预报的功能
  • 鼓励:天气报告和比较模板

安装

  1. 安装所需的依赖项:
pip3 install -r requirements.txt
  1. (可选)创建 .env 配置文件:
WEATHER_API_KEY=your_weather_api_key_here
SERVER_NAME=weather-mcp-server
SERVER_VERSION=1.0.0
LOG_LEVEL=INFO

运行服务器

直接运行服务器:

python3 weather_mcp_server.py

可用资源

服务器为以下项目提供天气资源:

  • weather://new_york -纽约天气,NY
  • weather://london -英国伦敦天气
  • weather://tokyo -日本东京的天气

可用工具

  1. get_weather:获取任何位置的当前天气

    • 参数: location (字符串,必填)
  2. get_weather_forecast:获取某个地点的天气预报

    • 参数: location (字符串,必填), days (整数,1-7,默认值:3)

可用提示

  1. 天气报告:生成详细的天气报告

    • 参数: location (字符串,必填)
  2. 天气比较:比较两个地点的天气

    • 参数: location1 (字符串,必填), location2 (字符串,必填)

测试服务器

您可以使用MCP检查器工具测试服务器,也可以将其与MCP兼容的客户端集成。

示例用法

这是一个使用示例数据的模拟实现。在现实世界中,你会:

  1. 用实际天气API调用替换模拟数据
  2. 添加身份验证和错误处理
  3. 实现缓存以获得更好的性能
  4. 添加更详细的天气信息

MCP协议概述

此服务器实现了模型上下文协议,该协议由以下部分组成:

  • 资源:可以读取的静态或动态数据源
  • 工具:可以调用以执行操作的函数
  • 鼓励:LLM交互的模板消息

服务器通过stdio上的JSON-RPC进行通信,使其易于与各种MCP客户端集成。

扩展服务器

要添加新功能,请执行以下操作:

  1. 添加新工具:在中定义新功能 handle_call_tool 方法
  2. 添加新资源:更新 handle_list_resources 和 handle_read_resource 方法
  3. 添加新提示:更新 handle_list_prompts 和 handle_get_prompt 方法

依赖项

  • mcp>=1.0.0:模型上下文协议SDK
  • httpx>=0.25.0:API调用的HTTP客户端
  • python-dotenv>=1.0.0:环境变量加载