Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Swiss open data MCP server. 94 tools, zero API keys. Transport, weather, geodata, catalogue.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"swiss": {
"command": "npx",
"args": [
"-y",
"mcp-swiss"
]
}
}
}在终端中运行这条命令
claude mcp add swiss -- npx -y mcp-swiss粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"swiss": {
"command": "npx",
"args": [
"-y",
"mcp-swiss"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"swiss": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-swiss"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 vikramgorla 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.9.0)于4天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, FactLot
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Cited CRE facts and deterministic calculators for agents: rent, CAM, debt sizing, IRR, parcel IDs.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Swiss open data for AI — zero config, zero API keys
Install · Tools · Demo · Data Sources
mcp-swiss is a Model Context Protocol server that gives any AI assistant direct access to Swiss open data — trains, weather, rivers, maps, and companies.
94 tools. No API keys. No registration. No server to run. Just `npx mcp-swiss`.
🚆 Transport — SBB, PostBus, trams, live departures, journey planning
🌤️ Weather — MeteoSwiss live conditions + historical data 🌊 Hydrology — BAFU river & lake levels (great for Aare swimming!) 🗺️ Geodata — swisstopo geocoding, solar potential, geographic layers 🏢 Companies — ZEFIX federal registry, all 700K+ Swiss companies 🎄 Holidays — Swiss public & school holidays by canton 🏛️ Parliament — Bills, votes, members, speeches, cantonal affairs (OpenParlData.ch) 🏔️ Avalanche — SLF danger bulletins and warning regions 💨 Air Quality — NABEL stations, Swiss legal limits (LRV) 📮 Swiss Post — Postcode lookup and parcel tracking ⚡ Energy — Electricity tariffs by municipality (ElCom) 📊 Statistics — Population, demographics, BFS datasets 🏦 SNB Rates — Swiss National Bank CHF exchange rates, historical data ♻️ Recycling — Zurich city waste collection calendar (OpenERZ) 📰 Swiss News — SRF news headlines and keyword search 🗳️ Voting — Swiss popular vote results (Basel-Stadt open data) 🌊 Dams — Swiss federal dam registry (SFOE/swisstopo) 🥾 Hiking — Swiss trail closures and hiking alerts (swisstopo) 🏠 Real Estate — Swiss property prices, rent index, housing data (BFS) 🚗 Traffic — ASTRA counting stations, daily volumes 🌍 Earthquakes — Swiss Seismological Service (SED/ETH Zürich), FDSN API ❄️ Snow — SLF snow depth, stations, and measurements 🌿 Pollen — MeteoSwiss pollen concentrations at the published stations 🏠 Buildings — Federal register of buildings and dwellings (GWR) 📂 Catalogue — opendata.swiss dataset search, metadata, and downloads 🌡️ Meteo OGD — SwissMetNet stations and measurements (STAC CSV) 🧭 Map layers — geo.admin layer search, identify, and attribute find 🚉 SBB Data — station passengers, punctuality, and step-free access
npx mcp-swiss
That's it. No API keys, no .env files, no accounts. Pick your client below and paste the config.
.mcpb bundles work with Claude Desktop and any MCP Bundle-compatible app.
Open the downloaded file — your app handles the rest. No config editing, no terminal, no API keys.
Edit your config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.json{
"mcpServers": { "swiss": { "command": "npx", "args": ["-y", "mcp-swiss"] } } }
Restart Claude Desktop after saving.
claude mcp add swiss -- npx -y mcp-swiss
That's it — Claude Code will use it in your next session.
Requires Cursor 0.45.6+
Option A: Project config — create .cursor/mcp.json in your project root:
{
"mcpServers": { "swiss": { "command": "npx", "args": ["-y", "mcp-swiss"] } } }
Option B: Global config — create ~/.cursor/mcp.json:
{
"mcpServers": { "swiss": { "command": "npx", "args": ["-y", "mcp-swiss"] } } }
Option C: Via Cursor Settings UI
# VS Code
code --add-mcp '{"name":"swiss","command":"npx","args":["-y","mcp-swiss"]}'
code-insiders --add-mcp '{"name":"swiss","command":"npx","args":["-y","mcp-swiss"]}'
Add to your VS Code User Settings (JSON) — press Ctrl+Shift+P → Preferences: Open User Settings (JSON):
{
"mcp": { "servers": { "swiss": { "command": "npx", "args": ["-y", "mcp-swiss"] } } } }
Or add to .vscode/mcp.json in your workspace (shareable with your team):
{
"servers": { "swiss": { "command": "npx", "args": ["-y", "mcp-swiss"] } } }
Add to ~/.codeium/windsurf/model_config.json:
{
"mcpServers": { "swiss": { "command": "npx", "args": ["-y", "mcp-swiss"] } } }
Open VS Code settings.json and add:
{
"cline.mcpServers": { "swiss": { "command": "npx", "args": ["-y", "mcp-swiss"] } } }
mcp-swiss uses stdio transport and requires no environment variables. Upstream calls time out after 30 seconds (MCP_SWISS_TIMEOUT_MS overrides that) and retry once on a dropped connection or a rate limit. The universal config:
{
"command": "npx", "args": ["-y", "mcp-swiss"] }
This works with any MCP-compatible client — just plug it in.
docker pull vikramgorla/mcp-swiss
Use with any MCP client that supports Docker-based servers. The container uses stdio transport:
# Run directly (stdio)
docker run -i vikramgorla/mcp-swiss
For Claude Desktop, update your config to use Docker:
{
"mcpServers": { "swiss": { "command": "docker", "args": ["run", "-i", "--rm", "vikramgorla/mcp-swiss"] } } }
Also available on GitHub Container Registry:
docker pull ghcr.io/vikramgorla/mcp-swiss
stdio is still the default. For a local HTTP client, run:
npx mcp-swiss --http
That listens on 127.0.0.1:3000 and serves MCP at POST /mcp (also GET and DELETE) plus GET /health. --port, --host, PORT, HOST, and MCP_TRANSPORT=http are the other switches.
A bind that is not loopback (127.0.0.1, localhost, or ::1) refuses to start unless both MCP_AUTH_TOKEN and MCP_ALLOWED_HOSTS are set. Sessions are capped (MCP_MAX_SESSIONS, default 64) and idle ones expire. This is the transport half of #64. It does not deploy a hosted instance.
By default, mcp-swiss loads all 27 modules (94 tools). The full tools/list schema is about 9,300 tokens (37,011 characters). For a smaller startup list, load only the modules you need.
Search, then execute. The server lists three meta-tools instead of every schema (about 330 tokens versus about 9,300):
{
"mcpServers": { "swiss": { "command": "npx", "args": ["-y", "mcp-swiss", "--discovery"] } } }
MCP_SWISS_MODE=discovery and --mode discovery do the same thing. swiss_search_tools finds tools by keyword or module and returns their input schemas. swiss_call_tool checks those arguments, then runs the tool. swiss_list_modules is the catalog. The default, with no flag, is still the full tool list.
{
"mcpServers": { "swiss": { "command": "npx", "args": ["-y", "mcp-swiss", "--modules", "transport,weather"] } } }
{
"mcpServers": { "swiss": { "command": "npx", "args": ["-y", "mcp-swiss", "--preset", "commuter"] } } }
| Preset | Modules | Tools | Token Savings |
|---|---|---|---|
commuter | transport, weather, holidays | 14 | 83% |
outdoor | weather, avalanche, hiking, earthquakes, dams, snow, pollen | 22 | 74% |
business | companies, geodata, post, energy, statistics, snb, gwr | 27 | 68% |
citizen | parliament, voting, holidays, news | 17 | 80% |
minimal | transport | 5 | 94% |
full | all 27 modules (default) | 94 | — |
Combine preset + modules: --preset commuter --modules parliament
List available: npx mcp-swiss --list-modules or npx mcp-swiss --list-presets
Once connected, try asking your AI:
| Prompt | What it uses |
|---|---|
| *"Next 5 trains from Zürich HB to Geneva"* | get_connections |
| *"Is the Aare in Bern warm enough to swim?"* | get_water_level |
| *"Weather in Lugano vs Zürich today"* | get_weather |
| *"Find blockchain companies registered in Zug"* | search_companies |
| *"Solar potential of Bundesplatz 3, Bern"* | geocode + get_solar_potential |
| *"Live departures from Bern HB"* | get_departures |
| *"What rivers are near Thun?"* | list_hydro_stations + get_water_level |
| *"Plan my Saturday: train to Interlaken, check weather"* | Multiple
只显示了开头部分;其余内容请在仓库中阅读