天气信息服务器

一个提供天气信息工具的模型上下文协议(MCP)服务器,可获取实时天气和5天预报,支持与AI应用集成。

  • by JanKieb
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 jankieb/weather-mcp-server-example

使用说明

气象MCP服务器

提供天气信息工具的示例模型上下文协议(MCP)服务器。此服务器演示了如何构建可以使用MCP Autodeploy平台部署的MCP服务器。

特性

工具

  • get_weather:获取任何城市的当前天气信息
  • 获取预测:获取任何城市的5天天气预报

资源

  • weather://cities/popular:天气查询热门城市列表
  • weather://api/status:API天气现状

鼓励

  • 天气_总结:生成全面的天气摘要
  • 旅游天气广告:根据天气状况提供旅行建议

设置

  1. 克隆此存储库 (或将其用作模板)
  2. 获取天气API密钥 从 OpenWeatherMap
  3. 设置环境变量: WEATHER_API_KEY=your_api_key_here

地方发展

# Install dependencies
npm install

# Run in development mode
npm run dev

# Build for production
npm run build

# Run production build
npm start

使用MCP自动部署进行部署

  1. 推送到GitHub:确保你的代码在GitHub存储库中
  2. 访问MCP自动部署:转到[您的部署URL]
  3. 部署:粘贴您的GitHub存储库URL并单击部署
  4. 配置:添加您的 WEATHER_API_KEY 作为环境变量
  5. 使用:获取您的部署URL并与AI应用程序集成

使用Claude Desktop

添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "weather": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-remote"],
      "env": {
        "REMOTE_SERVER_URL": "https://your-deployed-server.run.app"
      }
    }
  }
}

api参考

工具

get_weather

获取一个城市的当前天气。

参数:

  • city (字符串,必填):城市名称
  • units (字符串,可选):温度单位(metric, imperial, kelvin)

例子:

{
  "name": "get_weather",
  "arguments": {
    "city": "San Francisco",
    "units": "metric"
  }
}

获取预测

获取一个城市的5天天气预报。

参数:

  • city (字符串,必填):城市名称
  • units (字符串,可选):温度单位(metric, imperial, kelvin)

例子:

{
  "name": "get_forecast",
  "arguments": {
    "city": "London",
    "units": "metric"
  }
}

资源

weather://cities/popular

返回用于天气查询的热门城市的JSON列表。

weather://api/status

返回天气API和配置的当前状态。

鼓励

天气_总结

为城市生成全面的天气摘要。

论据:

  • city (必填):生成天气摘要的城市

旅游天气广告

根据天气状况提供旅行建议。

论据:

  • destination (必填):旅行目的地城市
  • travel_date (可选):计划旅行日期(YYYY-MM-DD)

环境变量

变量 描述 必填 默认
WEATHER_API_KEY OpenWeatherMap API密钥 是 demo_key
NODE_ENV 环境模式 否 development

错误处理

服务器处理各种错误情况:

  • 未找到城市:返回用户友好的错误消息
  • API密钥无效:提示配置API密钥
  • 网络错误:返回连接错误信息
  • 费率限制:处理API速率限制响应

测试

# Run tests
npm test

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 添加新功能的测试
  5. 提交拉取请求

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

支持