Skip to main content
Glama
soulnai

nl-opendata-mcp

by soulnai

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TRANSPORTNoTransport mode: stdio (default), http, or ssestdio
USE_PYTHON_ANALYSISNoSet to 'true' to enable Python analysis tools (disabled by default for security)false

Capabilities

Features and capabilities supported by this server

CapabilityDetails
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

NameDescription
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').

Workflow:
1. Get dimension codes: metadata_type="dimensions", endpoint_name="Luchthavens"
2. Use code in query: filter="Luchthavens eq 'A043591'"
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_save_dataset_to_duckdbB

Saves a dataset to a DuckDB database for efficient querying.

Args: params: SaveToDuckDBInput containing: - dataset_id (str): Dataset ID (e.g., '85313NED') - table_name (str, optional): Table name (default: dataset_id) - fetch_all (bool): Fetch all records (default: True) - select (List[str], optional): Column names to fetch

Returns: str: Success message with database path, table name, and row 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

NameDescription
generate_odata_filterGenerates an OData filter string based on the table structure and user query.
explore_datasetExplores a specific dataset based on the user query.
generate_chartGuide for creating charts/visualizations from CBS data.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/soulnai/nl-opendata-mcp'

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