天气数据服务

Weather MCP Server是一个基于Model Context Protocol(MCP)的天气数据服务,提供全球范围内的天气预报、警报和当前天气状况。

  • by abhishek-ganesan
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 abhishek-ganesan/mcp-node-starter

使用说明

🌤️ 气象MCP服务器

一个强大的 模型上下文协议(MCP) 服务器,提供全面的天气信息,包括全球各地的预报、警报和当前状况。

✨ 特性

  • 🌍 全球天气覆盖:获取全球任何地点的天气数据
  • ⚠️ 天气警报:检索美国各州的活动天气警报
  • 📊 详细预测:获取温度、风和条件的综合天气预报
  • 🏙️ 基于城市的查询:按城市名称、坐标或城市、州、国家格式搜索天气
  • 🇺🇸 美国天气一体化:使用美国国家气象局(NWS)API获取准确的美国天气数据
  • 🌐 国际支持:对于美国以外的地点,返回到wttr.in API

🚀 快速开始

先决条件

  • Node.js v22.14.0或更高版本
  • npm或纱线

安装

  1. 克隆存储库:
git clone https://github.com/abhishek-ganesan/mcp-node-starter.git
cd mcp-node-starter
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build

📖 用法

运行服务器

该服务器在stdio上运行,旨在与Cursor等MCP兼容客户端一起使用。

开发模式:

npm start

生产方式:

node build/index.js

配置

将服务器添加到MCP配置文件中(例如。, ~/.cursor/mcp.json):

{
  "mcpServers": {
    "weather-server": {
      "command": "/path/to/node",
      "args": ["/path/to/mcp-node-starter/build/index.js"],
      "cwd": "/path/to/mcp-node-starter"
    }
  }
}

🛠️ 可用工具

1. get_alerts

获取美国某个州的天气警报。

参数:

  • state (string):两个字母的状态码(例如,“CA”、“NY”、“TX”)

例子:

{
  "state": "CA"
}

2. get_forecast

使用坐标获取某个位置的天气预报。

参数:

  • latitude (数字):位置的纬度(-90到90)
  • longitude (数字):位置的经度(-180到180)

例子:

{
  "latitude": 37.7749,
  "longitude": -122.4194
}

3. get_weather_by_city

获取全球任何城市的当前天气和预报。

参数:

  • location (string):位置名称或坐标
    • 城市名称: "New York"
    • 城市、州、国家: "Bangalore,India"
    • 协调: "12.9716,77.5946"

例子:

{
  "location": "London,UK"
}

📁 项目结构

mcp-node-starter/
├── src/
│   └── index.ts          # Main server implementation
├── build/                # Compiled JavaScript output
├── package.json          # Project dependencies and scripts
├── tsconfig.json         # TypeScript configuration
└── README.md             # This file

🏗️ 发展

脚本

  • npm run build -将TypeScript编译为JavaScript
  • npm start -使用tsx在开发模式下运行服务器

技术栈

  • TypeScript:类型安全的JavaScript
  • @模型上下文协议/sdk:Node.js官方MCP SDK
  • 萨德:工具参数的模式验证
  • NWS API:美国国家气象局API获取美国天气数据
  • wttr.in:国际天气API

🤝 贡献

欢迎投稿!请随时提交拉取请求。

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/AmazingFeature)
  3. 提交您的更改(git commit -m 'Add some AmazingFeature')
  4. 推到分支(git push origin feature/AmazingFeature)
  5. 打开拉取请求

📝 许可证

该项目根据ISC许可证获得许可。

🙏 致谢

📧 联系

有关问题和疑问,请在 GitHub.


⭐ 如果你觉得这个项目有用,请考虑给它一颗星!