mcp-csu
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 |
|---|---|
| search_datasetsA | Search for statistical datasets by keyword. Search works best with Czech terms: obyvatelstvo=population, mzdy=wages, ceny=prices, nezaměstnanost=unemployment, průmysl=industry, HDP=GDP, inflace=inflation, vzdělání=education, zdraví=health. Returns dataset codes usable with get_dataset() and get_dataset_selections(). |
| search_selectionsA | Search for predefined data tables (selections) by keyword. Selections are pre-configured views of datasets — the easiest way to get data. Retrieve their data with get_selection_data(code). Search in Czech for best results. |
| list_datasetsA | List all available datasets with pagination. Use offset and limit to page through results. Total: ~730 datasets. |
| list_selectionsA | List all predefined data tables (selections) with pagination. Selections are pre-configured data views that can be fetched directly. Use get_selection_data(code) to retrieve their data. |
| get_datasetA | Get detailed info about a dataset: description, dimensions, indicators, keywords. Use this to understand dataset structure before querying data. The dimension codes and indicator codes are needed for get_value() and custom_query(). |
| get_dataset_selectionsB | List predefined data tables for a specific dataset. These selections can be fetched directly with get_selection_data(code). This is the recommended way to find available pre-built data views. |
| get_dimension_itemsA | Get possible values for a dimension (e.g., years, regions, categories). Args: dimension_code: Dimension code from get_dataset() output (e.g., CasR, Uz0). level: Filter by hierarchy level code (e.g., STAT, KRAJ, OKRES). offset: Skip first N items. limit: Max items to return (default 50, max 200). Item codes are needed for get_value() and custom_query(). |
| get_indicatorC | Get detailed information about a statistical indicator. Returns the indicator's full definition, display format, and related datasets. |
| get_selection_dataA | Fetch actual statistical data from a predefined selection as CSV. This is the primary and most reliable way to get data. Find selection codes via search_selections() or get_dataset_selections(). Args: selection_code: Selection code (e.g., CEN0101HT01). max_rows: Maximum number of data rows to return (default 100). Set to 0 for unlimited (use with caution — some tables are very large). |
| get_valueA | Get a single specific value from a dataset. This is the most precise way to query data — returns exactly one value. Requires knowing the exact dimension and item codes from get_dataset() and get_dimension_items(). Args: dataset_code: Dataset code (e.g., RSO01). indicator_code: Indicator code (e.g., 3971b). dimension_codes: List of dimension codes (e.g., ["CasR", "TYPPROSJED", "UZ023H2U"]). item_codes: List of item codes matching dimension_codes order (e.g., ["2023", "501", "CZ"]). version: Dataset version (optional, defaults to latest). Example: Number of municipalities in Czech Republic in 2023: get_value("RSO01", "3971b", ["CasR","TYPPROSJED","UZ023H2U"], ["2023","501","CZ"]) |
| custom_queryA | Execute a custom data query on a dataset (advanced). IMPORTANT: Prefer get_selection_data() for predefined tables — it is much simpler and more reliable. Use custom_query only when no suitable predefined selection exists. Caveats:
Args: dataset_code: Dataset code. dataset_version: Dataset version string from get_dataset(). columns: Column dimensions. Each dict must have "kodDimenze" (str). Optionally add "filtr" with [{"zobrazitPolozky": ["code1","code2"]}]. rows: Row dimensions. Same structure as columns. Use "kodDimenze": "#UKAZATEL" to put indicators as rows. table_filters: Header/filter dimensions. Same structure, but can also include "filtrTabulkyKod" (str) to filter to a single item. max_rows: Max CSV rows to return. |
| get_dataset_metadataA | Get metadata about dataset content: record count, time range, last update. Args: dataset_code: Dataset code. version: Dataset version from get_dataset(). |
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 12 tools
Each tool targets a distinct aspect of the CSU data workflow: discovery, metadata, dimension exploration, and data retrieval. Even the three query tools (get_value, get_selection_data, custom_query) are clearly differentiated by use-case guidance, making selection unambiguous.
All tools follow a consistent verb_noun pattern using snake_case (e.g., get_dataset, list_datasets, search_selections). The one outlier, custom_query, still adheres to the same pattern, so naming is uniform and predictable.
With 12 tools covering search, listing, metadata, dimension exploration, and multiple query methods, the set is well-scoped for the CSU domain. No tools feel redundant or missing for core operations.
The tools provide end-to-end coverage: dataset discovery (list/search), structure exploration (get_dataset, get_dimension_items, get_indicator), and data retrieval (predefined selections, custom queries, single values). No obvious gaps exist in the statistical data access lifecycle.