关于 MeteoSwiss MCP Server
MeteoSwiss MCP Server 为 AI 助手提供来自 MeteoSwiss Open Data 的天气和气候信息,涵盖瑞士各地的预报与实时观测,以及站点查询、花粉数据、气候序列和网站搜索。
主要功能
- 01瑞士地点的多日天气预报
- 02气象站的实时测量数据
- 03按名称、州或坐标查找站点
- 04获取花粉及历史气候数据
- 05搜索并获取 MeteoSwiss 网站内容
适用场景
- 01查询瑞士城镇或邮政编码的天气预报
- 02查看气象站的风速、温度等实时读数
- 03查找花粉测量值或长期气候序列
- 04搜索 MeteoSwiss 页面并获取内容
MCP 相关
将 MeteoSwiss 预报、测量数据、站点搜索、花粉和气候数据,以及网站搜索与抓取作为 MCP 工具提供。托管服务地址为 `https://meteoswiss-mcp.ars.is/mcp`,也可自行托管。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://meteoswiss-mcp.ars.is/mcpclaude mcp add --transport http eins78-meteoswiss https://meteoswiss-mcp.ars.is/mcp{"mcpServers":{"eins78-meteoswiss":{"type":"http","url":"https://meteoswiss-mcp.ars.is/mcp"}}}在 Cursor 中打开{"servers":{"eins78-meteoswiss":{"type":"http","url":"https://meteoswiss-mcp.ars.is/mcp"}}}在 VS Code 中打开{"mcpServers":{"eins78-meteoswiss":{"type":"http","url":"https://meteoswiss-mcp.ars.is/mcp"}}}{"mcpServers":{"eins78-meteoswiss":{"serverUrl":"https://meteoswiss-mcp.ars.is/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
7| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | integer | 否 | 用于分页的页码(从 1 开始)。上游 API 始终每页返回 10 条结果;页面大小不可配置。 |
| sort | enum | 否 | 结果的排序顺序。注意:date-asc 会严重降低相关性——结果主要按页面年代而非查询匹配度排列。relevance | date-desc | date-asc |
| query | string | 是 | 搜索查询字符串 |
| language | enum | 否 | 搜索结果的语言de | fr | it | en |
| contentType | enum | 否 | 按内容类型筛选。默认为 "content",以排除应用页面。官方报告请使用 "publication"。content | press-release | blog-article | publication |
详细介绍
🌦️ MeteoSwiss MCP 服务
用于获取 MeteoSwiss 天气数据的 MCP 服务,由 MeteoSwiss Open Data 提供支持,与 MeteoSwiss 应用和网站使用的数据相同。
本软件包是此代码库 技能与 MCP 案例研究中的服务端部分——相同的数据也可通过无需基础设施的Agent 技能获取。
meteoswiss-mcp.ars.is — 立即试用,无需设置。
- 多日预报:覆盖瑞士约 6000 个地点(邮政编码、气象站、地名)
- 实时测量数据:来自约 300 个气象站(约 160 个提供完整天气数据,约 140 个仅提供降水数据),每 10 分钟更新一次
- 气象站发现:可按名称、州或 GPS 坐标查找
- 花粉监测:来自瑞士各地约 15 个气象站
- 气候序列:来自国家基本气候网络(NBCN),数据可追溯数十年
- MeteoSwiss 网站:搜索并检索内容
使用托管服务
无需安装——服务托管在 https://meteoswiss-mcp.ars.is。
Claude Code
claude mcp add meteoswiss https://meteoswiss-mcp.ars.is/mcp
Claude Desktop
将以下内容添加到配置文件(macOS 上的 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"meteoswiss": {
"command": "npx",
"args": ["mcp-remote", "https://meteoswiss-mcp.ars.is/mcp"]
}
}
}
Cursor
从 Cursor Directory 安装,或通过 Settings → MCP → Add Server 手动添加,并粘贴 https://meteoswiss-mcp.ars.is/mcp。
Claude.ai
前往 Settings → Integrations → Add MCP Server,并粘贴 https://meteoswiss-mcp.ars.is/mcp。
示例问题
- “苏黎世本周的天气预报是什么?”
- “明天伯尔尼的天气怎么样?”
- “日内瓦的天气怎么样?”
- “卢加诺的天气怎么样?”
- “现在少女峰有多大风?”
- “显示苏黎世的花粉数据”
可用工具
| 工具 | 描述 |
|---|---|
meteoswissLocalForecast | 根据邮政编码、气象站或地名查询瑞士任意地点的多日预报 |
meteoswissCurrentWeather | 获取自动气象站的实时测量数据(温度、风、湿度、气压) |
meteoswissStations | 按名称、州或坐标搜索和浏览 MeteoSwiss 气象站网络 |
meteoswissPollenData | 获取监测站的当前花粉浓度数据 |
meteoswissClimateData | NBCN 气候序列——温度、降水、日照和气候指标,数据可追溯数十年 |
search | 搜索 MeteoSwiss 网站内容(德语、法语、意大利语、英语) |
fetch | 以 Markdown、文本或 HTML 格式获取 MeteoSwiss 网页的完整内容 |
提示词
为常见天气查询预先配置的提示词:
| 提示词 | 语言 | 描述 |
|---|---|---|
wetterNordschweiz | 德语 | 瑞士北部的天气预报和当前天气 |
wetterSchweiz | 德语 | 瑞士任意地点的天气 |
meteoSuisseRomande | 法语 | 瑞士西部的天气预报和当前天气 |
meteoTicino | 意大利语 | 瑞士南部的天气预报和当前天气 |
自托管
Docker
docker run -p 3000:3000 ghcr.io/eins78/meteoswiss-mcp:latest
使用自定义 URL:
docker run -p 3000:3000 -e PUBLIC_URL=https://your-domain.com ghcr.io/eins78/meteoswiss-mcp:latest
Docker Compose
docker compose up
从源代码构建
git clone https://github.com/eins78/meteoswiss-llm-tools.git
cd meteoswiss-llm-tools/packages/meteoswiss-mcp
pnpm install
pnpm build
pnpm start
服务将在 http://localhost:3000 上可用。MCP 端点:http://localhost:3000/mcp。
本地 MCP 配置
{
"mcpServers": {
"meteoswiss-local": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:3000/mcp"]
}
}
}
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
PORT | 3000 | 服务端口 |
PUBLIC_URL | — | 用于生成 URL 的完整公开 URL(例如 https://meteoswiss-mcp.ars.is) |
USE_TEST_FIXTURES | false | 使用本地测试数据,而非实时 API |
BIND_ADDRESS | 0.0.0.0 | 要绑定的接口 |
MAX_SESSIONS | 100 | 最大并发会话数 |
MAX_SESSIONS_PER_CLIENT | 10 | 每个客户端 IP(通过 TRUST_PROXY 获取)的最大并发会话数;后续初始化请求将收到 429 |
SESSION_TIMEOUT_MS | 300000 | 会话超时时间(毫秒) |
TRUST_PROXY | 0 | 要信任的反向代理跳数,用于确定客户端 IP(X-Forwarded-For)。如果位于一个代理(例如 Caddy)之后,请设为 1;如果客户端直接访问服务端,则保持为 0,否则客户端可能伪造 IP 以绕过速率限制 |
DEBUG | — | 调试命名空间(例如 mcp:*) |
开发
先决条件
设置
nvm use
pnpm install
命令
| 命令 | 描述 |
|---|---|
pnpm dev | 启动并启用热重载 |
pnpm start | 启动服务 |
pnpm build | 构建 TypeScript |
pnpm test | 运行测试 |
pnpm run lint | 类型检查 + ESLint |
pnpm run fix | 自动修复 lint 错误 |
pnpm run ci | 完整 CI(lint + build + test) |
pnpm run dev:inspect | 使用 MCP Inspector 进行测试 |
项目结构
src/
index.ts # Entry point
server.ts # MCP server (factory pattern)
data/ # Data access and transformation
schemas/ # Zod schemas for validation
tools/ # MCP tool implementations
support/ # Logging, validation, HTTP, sessions
views/homepage/ # Server homepage content
test/
integration/ # Integration tests for all tools
__fixtures__/ # Test data
调试
使用 DEBUG 环境变量启用调试输出:
DEBUG=mcp:* pnpm dev # All debug output
DEBUG=mcp:tools pnpm dev # Tool execution only
DEBUG=mcp:transport pnpm dev # Transport layer only
更多信息请参阅 docs/debugging-guide.md。
贡献
欢迎贡献!提交前请运行 pnpm run fix && pnpm run ci。
发布流程请参阅 docs/releasing.md。
许可证
CC0-1.0 — 公共领域
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。