天气数据服务

一个基于Open-Meteo API的天气数据服务,提供全球任意地点的实时天气信息,包括温度、湿度、风速等。

  • by The-Caesar
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 The-Caesar/weather-mcp

使用说明

天气MCP服务器

一个使用Open-Meteo API提供天气信息的模型上下文协议(MCP)服务器。

特点/特性

  • 获取全球任意地点的当前天气
  • 返回温度、体感温度、湿度、风速和天气状况
  • 无需API密钥(使用免费的Open-Meteo API)
  • 兼容MCP客户端,如Claude Desktop、Cline及其他AI助手

安装

  1. 安装依赖项:
npm install
  1. 构建服务器:
npm run build

使用方法

运行服务器

对于开发:

npm run dev

对于生产:

npm start

MCP客户端配置

将此添加到您的MCP客户端配置中(例如,Claude Desktop配置):

对于Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json (在 macOS 上):

{
  "mcpServers": {
    "weather": {
      "command": "node",
      "args": ["/absolute/path/to/weather-mcp/dist/index.js"]
    }
  }
}

对于Cline/VS Code MCP (.vscode/mcp.json 或用户设置:

{
  "mcpServers": {
    "weather": {
      "command": "node",
      "args": ["${workspaceFolder}/weather-mcp/dist/index.js"]
    }
  }
}

可用工具

get_weather

获取指定位置的当前天气信息。

输入:

  • location (字符串,必填):城市名称或地点(例如,“伦敦”,“纽约”,“东京”)

输出:

{
  "temperature": 20.5,
  "feelsLike": 19.8,
  "humidity": 65,
  "windSpeed": 12.3,
  "windGust": 18.5,
  "conditions": "Partly cloudy",
  "location": "London"
}

示例用法

在您的MCP客户端中配置后,您可以询问:

  • “巴黎的天气怎么样?”
  • “获取东京的当前天气”
  • “告诉我纽约的天气情况”

该人工智能助手将使用 get_weather 用于获取实时天气数据的工具。

API

这台服务器使用的是免费版 Open-Meteo API(开放气象API):

  • 用于位置查找的地理编码API
  • 当前天气状况的天气预报API
  • 无需API密钥
  • 非商业用途免费

发展

服务器构建于:

  • TypeScript
  • 模型上下文协议SDK(@modelcontextprotocol/sdk)
  • 用于通信的标准I/O传输
  • 开放气象API用于获取天气数据

故障排除

TLS证书错误

如果你看到类似这样的错误:

Fetch failed: TypeError: fetch failed ... UNABLE_TO_GET_ISSUER_CERT_LOCALLY

这是由于 Node.js 不信任系统用于 HTTPS 请求的根证书所导致的。
权宜之计: 设置环境变量 NODE_TLS_REJECT_UNAUTHORIZED=0 在您的MCP客户端配置中或在运行服务器之前:

NODE_TLS_REJECT_UNAUTHORIZED=0 node dist/index.js

或者,在您的 MCP 客户端配置中(针对 Cline/VS Code):

{
  "mcpServers": {
    "weather": {
      "command": "node",
      "args": ["${workspaceFolder}/weather-mcp/dist/index.js"],
      "env": {
        "NODE_TLS_REJECT_UNAUTHORIZED": "0"
      }
    }
  }
}

警告: 这会禁用证书验证,仅应用于本地开发或在您信任您的网络的情况下使用。

许可证

麻省理工学院(MIT)