天气数据服务

一个基于OpenWeatherMap API的天气数据模型上下文协议(MCP)服务器,专为AWS Lambda构建,提供当前天气、天气预报和天气比较功能。

  • by anamorph
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 anamorph/openweathermap-mcp-server

使用说明

带有AgentCore的天气MCP服务器

一个使用OpenWeatherMap API的天气数据模型上下文协议(MCP)服务器,是为AWS Lambda使用CDK构建的。

设置

  1. 从https://openweathermap.org/api获取OpenWeatherMap API密钥

  2. 将API密钥存储在AWS SSM参数存储中:

    aws ssm put-parameter \
      --name "/weather-mcp/openweather-api-key" \
      --value "your_api_key_here" \
      --type "SecureString"
    
  3. 安装依赖项:

    npm install
    

本地开发

npm start

AWS 部署

npm run build
npm run deploy

CDK 命令

  • npm run synth - 合成CloudFormation模板
  • npm run deploy - 部署到AWS
  • cdk destroy - 从AWS中移除堆栈

MCP 工具

获取当前天气

获取某城市的当前天气状况。

参数:

  • city (必填):城市名称
  • units (可选):“metric”(公制)、“imperial”(英制)或“kelvin”(开尔文)(默认: “metric”)

获取天气预报

获取某城市的5天天气预报。

参数:

  • city (必填):城市名称
  • units (可选):“metric”(公制)、“imperial”(英制)或“kelvin”(开尔文)(默认:“metric”)

比较天气

比较多个地点的当前天气情况,帮助用户在目的地选项中做出选择。

参数:

  • cities (必需):要比较的城市名称数组
  • units (可选):“metric”(公制)、“imperial”(英制)或“kelvin”(开尔文)(默认: “metric”)

建筑

  • Lambda 函数带有MCP服务器实现的Node.js 20.x运行时
  • API网关MCP通信的REST API端点
  • SSM 参数存储用于存储OpenWeatherMap API密钥的安全存储位置
  • IAM 权限Lambda 对 SSM 参数有读取访问权限

整合

此服务器通过MCP处理程序Lambda函数与主架构集成,通过Amazon Bedrock向Strands代理编排器提供天气数据。