CBS Open Data MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_catalogsA | Fetch all available CBS catalogs. Returns: dict[str, Any]: Count and list of catalogs. |
| query_datasetsA | Search datasets with OData filtering, sorting, and pagination. RECOMMENDATION: use Args:
catalog: Catalog identifier, typically Returns: dict[str, Any]: Query info and dataset results. |
| get_dimensionsA | Fetch all dimensions for a dataset. Args: catalog: Catalog identifier. dataset: Dataset identifier. Returns: dict[str, Any]: Table of dimensions and labels per dimension. |
| get_dimension_valuesA | Fetch values for a specific dimension. WARNING: this endpoint returns 404 on most CBS datasets. Prefer get_dimensions(), which already resolves all dimension codes and labels via the reliable {dim}Codes endpoints. Args:
catalog: Catalog identifier.
dataset: Dataset identifier.
dimension: Dimension identifier.
select: OData Returns: dict[str, Any]: Count and dimension values. |
| get_observationsA | Fetch observations with automatic pagination. Automatically follows @odata.nextLink to retrieve all pages. With resolve_labels=True, dimension and measure codes are replaced with human-readable labels. Args: catalog: Catalog identifier. dataset: Dataset identifier. filters: Dimension filters (key=dimension, value=code). paginate: Fetch all pages (True) or just one page (False). resolve_labels: Replace codes with labels (True) or keep raw codes (False, faster). limit: Maximum number of observations (safety limit). Returns: dict[str, Any]: Observation result. |
| query_observationsB | Query observations with advanced OData options. Args:
catalog: Catalog identifier.
dataset: Dataset identifier.
select: OData Returns: dict[str, Any]: Query info and observation results. |
| get_metadataA | Fetch the OData metadata document (EDM schema). Note: This returns the catalog-wide schema, not dataset-specific metadata. Use get_dataset_info() for metadata of a single dataset. Returns: dict[str, str]: Metadata as an XML string. |
| get_dataset_infoA | Fetch metadata for a single specific dataset. Returns title, description, status, last modification date, and more. Use this to quickly check whether a dataset is relevant. Args: catalog: Catalog identifier. dataset: Dataset identifier (e.g. '85523NED'). Returns: dict[str, Any]: Dataset metadata. |
| get_measure_codesA | Fetch measure code definitions for a dataset. Measures are the columns containing actual measurement values in observations. Each measure has an Identifier (code) and Title (label). Args: catalog: Catalog identifier. dataset: Dataset identifier. Returns: dict[str, Any]: Count and list of measure codes. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Tools generally target distinct resources, but there is clear overlap between get_dimensions and get_dimension_values (the latter is explicitly discouraged), and between get_observations and query_observations which both fetch observations with different options. Descriptions help clarify, but an agent could still be confused about which to use.
Most tools follow a get_* verb_noun pattern (get_catalogs, get_metadata, get_dimensions). Two tools use query_* (query_datasets, query_observations), which is a minor deviation but still consistent in style. Names are readable and predictable.
With 9 tools, the server is well-scoped for a statistical data API. Each tool serves a distinct aspect of data access: catalogs, metadata, dataset search, dimensions, observations, and measures, with no unnecessary bloat.
The core workflow is covered: discover catalogs, search datasets, get dataset info, fetch dimensions, observations, and measure codes. Minor gaps include the non-functional get_dimension_values (mitigated by get_dimensions) and no explicit way to download a full dataset in one call, but agents can compose queries to achieve this.