MCP server for Swiss federal finances (EFV): budget, debt, forecasts and spending data
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
π¨π Part of the Swiss Public Data MCP Portfolio β open-source MCP servers connecting AI agents to Swiss public and open data. This is a private project. It is independent of any employer or institutional affiliation.
MCP server for Swiss federal finances (EFV): budget, debt, forecasts and spending by task and institution.
This server closes the fiscal gap in the portfolio's Economics & Finance cluster.
swiss-snb-mcp already covers monetary policy; swiss-efv-mcp adds the state
budget β federal revenue, expenditure, balance, debt ratios (with forecasts to
2029), a hierarchical budget drill-down, and spending by department. Data comes
from the EidgenΓΆssische Finanzverwaltung (EFV) via opendata.swiss (OGD Schweiz).
is_projection so actuals and plan/forecast
years are unambiguous.dump_status never returns empty silently.stdio (local) and SSE (cloud)."How has the federal balance developed since the SNB rate turnaround in 2022 β and which task areas absorbed the growth in spending?"
Cross-read with swiss-snb-mcp, this connects the interest-rate cycle to the
federal deficit β something neither server can answer alone.
uv / uvx (recommended) or pipdata.finance.admin.ch and efv.admin.ch β no API key neededClaude Desktop (claude_desktop_config.json):
All configuration is loaded once into a typed Settings object
(pydantic-settings). The legacy unprefixed names below keep working; the
canonical names use the EFV_MCP_ prefix. Defaults are safe for local use.
| Variable | Default | Purpose |
|---|---|---|
TRANSPORT | stdio | Transport: stdio (Claude Desktop) or sse / streamable-http (cloud) |
HOST | 127.0.0.1 | Bind host (SSE only). Loopback by default; set 0.0.0.0 only in a container |
PORT | 8000 | Bind port (SSE only) |
EFV_MCP_LOG_LEVEL | INFO | structlog level (JSON to stderr) |
EFV_MCP_CORS_ORIGINS | [] | SSE only: explicit allowed browser origins (default-deny; comma-separated or JSON) |
EFV_MCP_OTEL_ENABLED | false | Enable OpenTelemetry tracing (requires the otel extra); standard OTEL_* env vars configure export |
Cloud (Render / Railway):
| Tool | Purpose |
|---|---|
fiscal_headline | Revenue / expenditure / balance / debt ratios over 1990β2029, per household and model; every point flags is_projection |
fiscal_budget_breakdown | Hierarchical federal budget by topic (Ausgaben nach Art / nach Aufgabengebiet, Einnahmen, Bilanz, β¦) |
fiscal_by_institution | Spending per department / administrative unit since 2007 (Personalausgaben, Informatik, external services, FTE) |
fiscal_list_dimensions | Discover valid parameter values β call this first to build correct arguments |
fiscal_status | Cache freshness and upstream health per dataset; never returns empty silently |
dump_status | Deprecated alias of fiscal_status (kept for backward compatibility; removed in a future minor) |
All tools are read-only: each is annotated readOnlyHint: true,
destructiveHint: false, only issues HTTP GETs against the EFV dump files, and
has no write, send, or filesystem capability.
MCP primitives. This server uses only the Tools primitive. The EFV data
are sliced live from cached dumps with no stable resource hierarchy to expose as
Resources, and there are no server-authored Prompts. The five tools are small
and closely related, so they live in a single server.py rather than a tools/
package.
This server uses Architecture C (Dump-first).
Rationale (verified live on 2026-07-24):
standardauswertung.csv 157 MB, fir_art_funk.csv
1.23 GB) are out of scope for v0.1.0; loading them per request is not
viable. A future Phase 2 would pre-process them into SQLite/Parquet.Consequences:
dump_status always returns a
readable state.No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/swiss-efv-mcp)<a href="https://allmcps.com/mcp/swiss-efv-mcp"><img src="https://allmcps.com/api/badge/swiss-efv-mcp?style=directory" alt="Swiss Efv MCP on AllMCPs" /></a>