nl-opendata-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TRANSPORT | No | Transport mode: stdio (default), http, or sse | stdio |
| USE_PYTHON_ANALYSIS | No | Set to 'true' to enable Python analysis tools (disabled by default for security) | false |
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": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| cbs_list_datasetsB | Lists available datasets from the CBS OData Catalog. Args: params: ListDatasetsInput containing: - top (int): Number of records to return (default: 10, max: 1000) - skip (int): Number of records to skip (default: 0) Returns: str: CSV string containing dataset list with columns: Identifier, Title, Summary |
| cbs_search_datasetsA | Searches for datasets in the CBS OData Catalog by keyword. Args: params: SearchDatasetsInput containing: - query (str): Search term (e.g., "Bevolking", "Inflation") - top (int): Number of records to return (default: 10) - skip (int): Number of records to skip (default: 0) - search_field (str): Where to search - "all", "title", or "summary" Returns: str: CSV string containing matching datasets |
| cbs_check_dataset_availabilityA | Checks if a dataset is available via CBS OData (queryable) or data.overheid.nl (download-only). Args: params: DatasetIdInput containing: - dataset_id (str): Dataset ID (e.g., '83583NED') Returns: str: Availability status and source information |
| cbs_inspect_dataset_detailsA | Compact dataset overview: title, dimensions, measures, and sample data. Use this first to understand a dataset's structure. Args: params: DatasetIdInput containing: - dataset_id (str): Dataset ID (e.g., '85313NED') Returns: str: Compact report with title, column list, and 3-row sample |
| cbs_get_metadataA | Unified metadata tool for detailed info, structure, dimension values, or custom endpoints. Args: params: GetMetadataInput containing: - dataset_id (str): Dataset ID (e.g., '85313NED') - metadata_type (str): Type of metadata: - 'info': Dataset description (TableInfos) - 'structure': Column definitions (DataProperties) - 'endpoints': Available metadata endpoints - 'dimensions': Dimension values with codes for filtering (requires endpoint_name) - 'custom': Custom endpoint query (requires endpoint_name) - endpoint_name (str, optional): Required for 'dimensions' and 'custom' types (e.g., 'Geslacht', 'Perioden', 'Luchthavens') Returns: str: CSV for info/structure/dimensions, JSON for endpoints/custom Examples: - Get columns: metadata_type="structure" - Get dimension codes: metadata_type="dimensions", endpoint_name="Geslacht" - Get raw endpoint: metadata_type="custom", endpoint_name="CategoryGroups" IMPORTANT - Finding Dimension Codes: Use metadata_type="dimensions" to find codes for OData filtering. CBS uses coded values (e.g., 'A043591') that map to names (e.g., 'Eindhoven Airport'). |
| cbs_query_datasetA | Queries data from a dataset with optional filtering and column selection. Args: params: QueryDatasetInput containing: - dataset_id (str): Dataset ID (e.g., '85313NED') - top (int): Number of records (default: 10) - skip (int): Records to skip (default: 0) - filter (str, optional): OData filter (e.g., "Perioden eq '2023JJ00'") - select (List[str], optional): Column names to return - compact (bool): Return summary for large results (default: True) - translate (bool): Translate coded dimension values to text (default: True) Returns: str: CSV data with human-readable dimension values Note: Use cbs_get_metadata with metadata_type="dimensions" to find filter codes. |
| cbs_estimate_dataset_sizeA | Estimates the size of a dataset before fetching. Args: params: DatasetIdInput containing: - dataset_id (str): Dataset ID (e.g., '85313NED') Returns: str: Size estimation with row count, column count, and recommended fetch strategy |
| cbs_save_datasetB | Saves a dataset to a CSV file. Args: params: SaveDatasetInput containing: - dataset_id (str): Dataset ID (e.g., '85313NED') - file_name (str): File name to save the dataset - top (int): Records per request (default: 1000) - skip (int): Records to skip (default: 0) - fetch_all (bool): Fetch all records with pagination (default: False) - translate (bool): Translate coded values to text (default: True) Returns: str: Success message with file path and record count |
| cbs_list_local_datasetsA | Lists all locally saved CSV datasets in the downloads directory. Returns: str: List of CSV files with sizes and row counts. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| generate_odata_filter | Generates an OData filter string based on the table structure and user query. |
| explore_dataset | Explores a specific dataset based on the user query. |
| generate_chart | Guide for creating charts/visualizations from CBS data. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/soulnai/nl-opendata-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server