mcpField
M
met-mcp

met-mcp

远程服务
github.com/trondbjoroy地图与出行010 周前更新
代码仓库

关于 met-mcp

met-mcp 是提供挪威气象局(Yr)天气及相关数据的 MCP 服务,适用于按地点查询预报或观测数据的客户端。它将全球预报与仅限北欧的雷达、警报和沿海数据结合起来。

主要功能

  1. 01将地名转换为坐标
  2. 02获取全球逐小时预报
  3. 03查询北欧雷达降水临近预报
  4. 04查询挪威危险天气警报
  5. 05获取日出日落及沿海海洋预报
  6. 06查找气象站并检索历史观测

适用场景

  1. 01查询目的地的逐小时天气预报
  2. 02查看挪威天气警报
  3. 03检查附近气象站的历史观测
  4. 04查询挪威海岸的浪高和海水温度

MCP 相关

它通过本地 stdio 服务或远程 Streamable HTTP 端点向 MCP 客户端提供天气工具。两种部署方式共用工具定义。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://met-mcp.met-mcp-worker.workers.dev/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
npmmet-mcp0.2.0

工具

8
参数类型必填说明
namestring是地点名称,例如“Bergen”或“Oslo, Norway”
countinteger否要返回的最大匹配数

详细介绍

met-mcp

一个用于获取挪威气象研究所(Yr)天气预报的 MCP 服务。作为学习项目构建。

提供三种使用方式:

  • npm:met-mcp — 通过 stdio 在本地运行
  • 远程:https://met-mcp.met-mcp-worker.workers.dev/mcp — 在 Cloudflare Workers 上通过 Streamable HTTP 提供,可将其添加为 claude.ai 连接器
  • MCP 注册表:io.github.trondbjoroy/met-mcp

工具

  • geocode_location(name, count) — 查找地点名称对应的坐标。使用免费的 Open-Meteo 地理编码器,因为 MET 没有地理编码 API。
  • get_forecast(latitude, longitude, hours) — 来自 MET Locationforecast 2.0 的逐小时预报。全球可用,在北欧地区效果最佳。
  • get_nowcast(latitude, longitude) — 未来 2 小时基于雷达的降水预报。仅限北欧地区。
  • get_weather_alerts(latitude?, longitude?) — 挪威官方灾害预警(MetAlerts)。省略坐标即可获取整个挪威的预警。
  • get_sun_events(latitude, longitude, date, utc_offset) — 日出、日落和太阳正午时间。全球可用。
  • get_ocean_forecast(latitude, longitude, hours) — 挪威海岸沿线的浪高和海水温度。
  • find_weather_stations(latitude, longitude, count) — 查找最近的官方气象站(Frost)。
  • get_historical_weather(station_id, from, to, elements) — 来自 Frost 档案的每日历史观测数据;部分气象站的记录可追溯到 100 多年前。

这两个 Frost 工具需要免费的客户端 ID,可从 https://frost.met.no/auth/requestCredentials.html 获取,并将其设置为 FROST_CLIENT_ID 环境变量(或设置为 Cloudflare secret,供 worker 使用)。其他工具无需任何配置。

工具定义位于 src/tools.ts,由 stdio 服务和 worker 共用。

构建和测试

npm install
npm run build
npm test

测试会通过 stdio 启动服务,并调用两个工具访问实时 API。

与 Claude Code 配合使用

claude mcp add met-weather -- node C:\Users\trond\met-mcp\dist\index.js

然后向 Claude 提问:“明天卑尔根的天气怎么样?”

MET 服务条款

  • 请发送包含联系信息的标识性 User-Agent。设置 MET_USER_AGENT 环境变量,例如 met-mcp/0.1.0 [email protected]。
  • 坐标最多保留 4 位小数。服务会自动进行四舍五入。
  • 数据许可:NLOD / CC BY 4.0。展示数据时请注明来源为 MET Norway。

远程版本

worker/ 中包含 Cloudflare Workers 部署:通过 MCP Streamable HTTP 和 createMcpHandler(MCP SDK v2)提供相同的两个工具。在 worker/ 中运行 npm run dev 进行开发,运行 npm run deploy 部署。

工作原理

  • src/index.ts 是完整的服务。它通过 stdio 使用 MCP:在 stdin/stdout 上进行 JSON-RPC 通信。
  • 每个工具都使用 Zod 声明输入架构。MCP 客户端(Claude)会读取架构并验证参数。
  • 工具结果是 content 块。此服务会将 JSON 作为文本返回,并精简至大模型所需的内容;原始 MET 响应包含约 90 个时间步,以及多得多的字段。
  • 切勿使用 console.log 写入 stdout,否则会破坏协议流。请将日志写入 stderr。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。