Skip to main content
Glama
malkreide

swiss-efv-mcp

by malkreide

Fiscal Headline

fiscal_headline
Read-onlyIdempotent

Track Swiss federal fiscal aggregates over time — revenue, expenditure, balance, and debt ratios from 1990 to latest forecasts. Identify actuals versus projections with is_projection flags.

Instructions

Headline fiscal time series: revenue, expenditure, balance and debt ratios from 1990 to the latest year the EFV publishes, actuals and forward-looking years alike. Read is_projection per point to tell them apart; not every household carries forward years.

Use case: track how a federal aggregate evolved over time — e.g. "how did the Bund balance develop since the 2022 rate turnaround?". variable e.g. 'saldo', 'einnahmen', 'ausgaben', 'bruttoschuldenquote'. household: bund|ktn|gdn|staat|sv. model: fs|gfs. Every point flags is_projection. Call fiscal_list_dimensions first to discover valid values; an empty result carries a note with guidance.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modelNofs
year_toNo
variableYes
householdNobund
year_fromNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNoguidance when the result is empty or has a caveat (ARCH-003)
unitNoCHF mio / % (variable-dependent)
modelYesfs (Finanzstatistik) | gfs (GFS-Modell)
pointsYes
sourceNoData: Eidgenoessische Finanzverwaltung EFV — opendata.swiss (OGD Schweiz, frei nutzbar). Private, non-affiliated project. Kein Anspruch auf Vollstaendigkeit.
variableYes
householdYeshh: bund | ktn | gdn | staat | sv | bund_ktn_gdn
provenanceYesdump = freshly fetched CSV, cached = in-memory

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.4.0
    • changedOutput schema / properties / points / items / properties / kind / description
      Previous value: -"raw EFV source label, e.g. 'Financial statements', 'Budget/financial plans'"New value: +"raw EFV source label, passed through verbatim — e.g. 'Rechnung', 'Prognosen'. The source picks its own wording and has switched language before (English until 2026-08-27), so branch on `is_projection` rather than on this string."
  2. First observedv0.3.1

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and openWorld hints. The description adds meaningful behavioral context: it includes both actuals and forward-looking years, each point carries an is_projection flag, and not every household has forward years. This goes beyond the annotations and helps the agent interpret results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two paragraphs with a clear lead sentence, a use case, and parameter examples. It is not overly verbose and front-loads the core purpose. It could be slightly more compact but is well-structured overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description doesn't need to detail return values beyond the is_projection flag it mentions. It covers the main parameters, points to fiscal_list_dimensions for valid values, and explains the data scope. The only minor gap is the incomplete description of year_from/year_to, but the overall guidance is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It provides example values for variable, household, and model (e.g., 'saldo', 'bund', 'fs'), which helps. However, it does not explicitly explain year_from and year_to, their defaults, or the meaning of the null values. This leaves gaps for two of the five parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns fiscal time series (revenue, expenditure, balance, debt ratios) from 1990 onward, with a concrete use case. It does not explicitly differentiate from sibling fiscal tools like fiscal_budget_breakdown or fiscal_by_institution, so it earns a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a specific use case ('track how a federal aggregate evolved over time') and instructs the agent to call fiscal_list_dimensions first to discover valid values. It does not list when not to use this tool or name alternatives, so it falls short of a 5 but is still clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.