Skip to main content
Glama
malkreide

swiss-statistics-mcp

by malkreide

bfs_browse_catalog

Read-onlyIdempotent

Browse Swiss Federal Statistical Office themes or list datasets within a theme: omit the theme code to view all 21 statistical themes, or provide a 2-digit code to discover available datasets.

Instructions

Browse the BFS catalogue: the theme list, or the datasets within a theme.

Two modes in one tool (mode in the result says which ran):

  • Omit theme_code → list all 21 statistical themes with their 2-digit codes and dataset counts (the taxonomy of Swiss federal statistics).

  • Provide theme_code → list the datasets in that theme (table IDs + titles) to feed bfs_get_table_metadata / bfs_get_data.

Args: params (BrowseCatalogInput): - theme_code (str | None): 2-digit theme code, e.g. '15' for Bildung; omit for the theme list - lang (str): Language code ('de', 'fr', 'it', 'en') - limit (int): Max tables to return (theme mode; default 20)

Returns: BrowseCatalogResult. mode='themes' populates themes; mode='tables' populates tables plus theme metadata. On error, error/hint are set.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hintNo
modeNo
noteNo
errorNo
tablesNo
themesNo
returnedNo
next_stepNo
theme_codeNo
theme_nameNo
total_datasetsNo
total_in_themeNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, but the description adds valuable context beyond annotations: it discloses the mode field in the result, that error/hint are set on failure, and that theme mode returns dataset counts and theme metadata. It does not cover rate limits or auth, but that is not expected for a read-only catalog browse.

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

Conciseness5/5

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

The description is well-structured: a two-sentence intro, a clear two-mode breakdown, a compact Args list, and a Returns note. Every sentence serves a purpose; no fluff or redundancy. It is concise without sacrificing detail.

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

Completeness5/5

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

The tool is moderately complex (two modes), and the description fully covers both modes, the output shape (themes vs tables), and error handling. With an output schema present, the description need not explain return types in more detail, but it already covers them sufficiently.

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

Parameters4/5

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

Even though the signal says schema description coverage is 0%, the description fully explains all three parameters in the docstring: theme_code (2-digit code, omit for themes), lang (language codes), and limit (max tables). It also gives concrete examples ('15' for Bildung). This compensates for any schema gaps and adds practical meaning.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Browse the BFS catalogue: the theme list, or the datasets within a theme.' It clearly distinguishes two modes and names downstream tools (bfs_get_table_metadata, bfs_get_data), which differentiates it from sibling tools like bfs_search_tables.

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

Usage Guidelines5/5

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

Usage is explicit: 'Omit theme_code → list all 21 statistical themes... Provide theme_code → list the datasets in that theme.' It also states the purpose of the output ('to feed bfs_get_table_metadata / bfs_get_data'), giving clear when-to-use guidance and naming alternatives.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/malkreide/swiss-statistics-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server