# mcp-belgium (npm · mcp-belgium)

Single MCP server for Belgian public transport, statistics, open data, and geospatial services.

- Trust score: 71/100 (medium)
- Change this week: +18
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `mcp-belgium`: 71/100 (this document), [markdown](https://verifymcp.io/servers/lacausecrypto-mcp-belgium/mcp-belgium.md), [page](https://verifymcp.io/servers/lacausecrypto-mcp-belgium/mcp-belgium)

## Channel facts

- Registry: `npm`
- Package: `mcp-belgium`
- Version: `1.0.4`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (121 of 122), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (121 of 122), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 104 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 87/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 3817 tokens (~47/item across 81 items; 63 tools + 18 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add lacausecrypto-mcp-belgium -- npx -y mcp-belgium
```

### Codex

```bash
codex mcp add lacausecrypto-mcp-belgium -- npx -y mcp-belgium
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "lacausecrypto-mcp-belgium": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "mcp-belgium"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add lacausecrypto-mcp-belgium --command npx --arg -y --arg mcp-belgium
```

### Hermes

```yaml
mcp_servers:
  lacausecrypto-mcp-belgium:
    command: "npx"
    args: ["-y", "mcp-belgium"]
```

### Other

```json
{
  "mcpServers": {
    "lacausecrypto-mcp-belgium": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-belgium"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 71, +40)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Security disclosure: fail → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional improvement] License: unverified → pass
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] Stability: unverified → 0.20
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional] Licence: MIT

### 2026-08-01 (score 31, +5)

- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] MCP protocol: unverified → pass

### 2026-07-31 (score 26, −27)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-27 (score 53)

First indexed and scored.

## MCP tools (63)

### `belgium_catalog_overview` (~36 tokens)

Get a structured overview of all Belgian domains aggregated by this server, including status, categories, resources, and recommended starting points.

### `belgium_describe_domain` (~66 tokens)

Get the precise summary, tool list, upstream, authentication status, caveats, and data coverage for one Belgian domain aggregated by this server.

Input parameters:

- `domain` (string, required): Exact Belgium domain identifier, for example irail, statbel, best-address, or urban-brussels

### `belgium_list_domains` (~155 tokens)

List the Belgian domains aggregated by this server, optionally filtered by topic or restricted to domains that are live and require no API key. Deprecated domains (whose upstream API has been retired) are hidden by default.

Input parameters:

- `includeDeprecated` (boolean): If true, also include domains whose upstream API has been retired and whose tools only return an upstream-unavailable error
- `includeTools` (boolean): If true, include the exact tool names exposed by each returned domain
- `onlyPublicNoKey` (boolean): If true, only return domains that are live and do not require an API key
- `query` (string): Optional keyword filter across domain names, summaries, available data, use cases, notes, and tool names

### `irail_search_stations` (~39 tokens)

Search Belgian railway stations by name. Returns station ID, name, and coordinates.

Input parameters:

- `query` (string, required): Station name or partial name

### `irail_get_connections` (~92 tokens)

Find train connections between two Belgian railway stations. Returns routes with departure/arrival times, platforms, delays, and transfers.

Input parameters:

- `datetime` (string): ISO datetime, e.g. 2026-04-11T14:30
- `from` (string, required): Departure station name
- `timeSel` (string): Search by departure or arrival time
- `to` (string, required): Arrival station name

### `irail_get_liveboard` (~60 tokens)

Get real-time departures (or arrivals) at a Belgian railway station. Shows train number, destination, platform, and delay.

Input parameters:

- `arrivals` (boolean): If true, show arrivals instead of departures
- `station` (string, required): Station name

### `irail_get_vehicle` (~56 tokens)

Get detailed stop information for a specific Belgian train. Shows all stops, arrival/departure times, delays, and platforms.

Input parameters:

- `vehicleId` (string, required): Vehicle ID, e.g. BE.NMBS.IC1832

### `irail_get_disturbances` (~24 tokens)

Get current Belgian railway disruptions, delays, and planned maintenance.

### `mobility_plan_trip` (~62 tokens)

Plan an intermodal trip across Belgian public transport operators.

Input parameters:

- `datetime` (string): ISO datetime, e.g. 2026-04-11T14:30
- `from` (string, required): Trip origin
- `to` (string, required): Trip destination

### `mobility_get_operators` (~21 tokens)

List Belgian public transport operators participating in the mobility ecosystem.

### `mobility_get_gtfs_feeds` (~29 tokens)

List GTFS static and GTFS-RT feed sources relevant to Belgian mobility planning.

### `stib_get_waiting_times` (~36 tokens)

Get real-time waiting times at a STIB stop.

Input parameters:

- `stopName` (string, required): Stop name or stop ID

### `stib_search_stops` (~28 tokens)

Search STIB stops by name.

Input parameters:

- `query` (string, required): Stop name query

### `stib_get_route` (~46 tokens)

Get details for a STIB metro, tram, or bus line.

Input parameters:

- `lineId` (string, required): Line number, e.g. 1, 81, 71

### `stib_get_messages` (~19 tokens)

Get current STIB service messages and disruptions.

### `infrabel_search_datasets` (~48 tokens)

Search Infrabel open datasets published on the public OpenDataSoft portal.

Input parameters:

- `query` (string, required): Search query
- `rows` (number): Maximum number of datasets to return

### `infrabel_get_dataset` (~34 tokens)

Get full metadata for an Infrabel open dataset.

Input parameters:

- `datasetId` (string, required): OpenDataSoft dataset identifier

### `infrabel_get_records` (~64 tokens)

Get records from an Infrabel dataset using the public ODS records endpoint.

Input parameters:

- `datasetId` (string, required): OpenDataSoft dataset identifier
- `limit` (number): Maximum number of records to return
- `where` (string): Optional ODS where clause

### `kbo_search_enterprise` (~47 tokens)

Search Belgian enterprises by enterprise name or BCE number.

Input parameters:

- `query` (string, required): Enterprise name or BCE number
- `type` (string): Search by enterprise name or BCE number

### `kbo_get_enterprise` (~43 tokens)

Get full details for a Belgian enterprise by BCE number.

Input parameters:

- `enterpriseNumber` (string, required): BCE number, e.g. 0123.456.789

### `kbo_search_by_activity` (~39 tokens)

Search Belgian enterprises by NACE activity code.

Input parameters:

- `naceCode` (string, required): NACE code, e.g. 62.010

### `best_search_addresses` (~152 tokens)

Search Belgian addresses using the official BeST public address API.

Input parameters:

- `boxNumber` (string): Optional box or apartment number
- `crs` (string): Coordinate reference system
- `houseNumber` (string): House number
- `limit` (number): Maximum number of addresses to return
- `municipalityName` (string): Municipality name, e.g. Bruxelles
- `page` (number): Result page number
- `postCode` (string): Belgian postal code
- `radius` (number): Radius in meters when searching by coordinates
- `streetName` (string): Street name
- `xLong` (number): Longitude or X coordinate
- `yLat` (number): Latitude or Y coordinate

### `best_get_address` (~34 tokens)

Get a single Belgian address object by its BeST identifier URI.

Input parameters:

- `id` (string, required): BeST address identifier URI

### `best_search_municipalities` (~78 tokens)

Search Belgian municipalities in the official BeST address registry.

Input parameters:

- `limit` (number): Maximum number of municipalities to return
- `name` (string): Municipality name
- `nisCode` (string): Municipality NIS code
- `page` (number): Result page number
- `postCode` (string): Belgian postal code

### `best_search_streets` (~99 tokens)

Search Belgian street records in the official BeST address registry.

Input parameters:

- `limit` (number): Maximum number of streets to return
- `municipalityId` (string): Municipality identifier URI
- `municipalityName` (string): Municipality name
- `name` (string): Street name
- `nisCode` (string): Municipality NIS code
- `page` (number): Result page number
- `postCode` (string): Belgian postal code

### `best_search_postal_infos` (~70 tokens)

Search Belgian postal information records in the official BeST address registry.

Input parameters:

- `limit` (number): Maximum number of postal info records to return
- `name` (string): Postal locality name
- `page` (number): Result page number
- `postCode` (string): Belgian postal code

### `statbel_search_datasets` (~27 tokens)

Search Statbel open data datasets.

Input parameters:

- `query` (string, required): Search query

### `statbel_get_population` (~42 tokens)

Get Belgian population statistics from Statbel.

Input parameters:

- `region` (string): Belgium, Brussels, Flanders, Wallonia
- `year` (number): Year

### `statbel_get_cpi` (~29 tokens)

Get Belgian consumer price index data from Statbel.

Input parameters:

- `year` (number): Year

### `statbel_get_employment` (~27 tokens)

Get Belgian employment statistics from Statbel.

Input parameters:

- `year` (number): Year

### `airquality_get_current` (~30 tokens)

Get latest air quality measurements for a monitoring station.

Input parameters:

- `stationId` (number, required): Station ID

### `airquality_search_stations` (~46 tokens)

Search air quality monitoring stations near a location.

Input parameters:

- `latitude` (number, required): Latitude
- `longitude` (number, required): Longitude
- `radius` (number): Radius in meters

### `airquality_get_belaqi` (~46 tokens)

Get the BelAQI air quality index for a location by using the nearest monitoring station.

Input parameters:

- `latitude` (number, required): Latitude
- `longitude` (number, required): Longitude

### `airquality_get_timeseries` (~52 tokens)

Get historical measurements for a specific air quality timeseries.

Input parameters:

- `from` (string, required): ISO date
- `timeseriesId` (number, required): Timeseries ID
- `to` (string, required): ISO date

### `datagov_search_datasets` (~68 tokens)

Search Belgian federal open datasets published on data.gov.be.

Input parameters:

- `organization` (string): Publishing organization name or identifier
- `query` (string, required): Search query
- `rows` (number): Maximum number of datasets to return
- `tags` (string): Comma-separated tags

### `datagov_get_dataset` (~38 tokens)

Get full metadata and resource listings for a Belgian federal open dataset.

Input parameters:

- `datasetId` (string, required): CKAN dataset ID or name

### `datagov_list_organizations` (~34 tokens)

List Belgian public organizations publishing federal open data.

Input parameters:

- `limit` (number): Maximum number of organizations to return

### `datagov_get_resource` (~38 tokens)

Get the download URL and metadata for a specific Belgian federal CKAN resource.

Input parameters:

- `resourceId` (string, required): CKAN resource ID

### `brussels_search_datasets` (~39 tokens)

Search Brussels Region open datasets.

Input parameters:

- `query` (string, required): Search query
- `rows` (number): Maximum number of datasets to return

### `brussels_get_dataset` (~29 tokens)

Get metadata for a Brussels Region open dataset.

Input parameters:

- `datasetId` (string, required): Dataset identifier

### `brussels_get_records` (~55 tokens)

Get records from a Brussels Region open dataset.

Input parameters:

- `datasetId` (string, required): Dataset identifier
- `limit` (number): Maximum number of records to return
- `where` (string): Optional OpenDataSoft where clause

### `flanders_search_datasets` (~68 tokens)

Search Flemish open datasets published on the CKAN platform.

Input parameters:

- `organization` (string): Publishing organization name or identifier
- `query` (string, required): Search query
- `rows` (number): Maximum number of datasets to return
- `tags` (string): Comma-separated tags

### `flanders_get_dataset` (~34 tokens)

Get full metadata for a Flemish open dataset.

Input parameters:

- `datasetId` (string, required): CKAN dataset ID or name

### `flanders_list_organizations` (~33 tokens)

List Flemish public organizations publishing open data.

Input parameters:

- `limit` (number): Maximum number of organizations to return

### `wallonia_search_datasets` (~39 tokens)

Search Walloon open datasets.

Input parameters:

- `query` (string, required): Search query
- `rows` (number): Maximum number of datasets to return

### `wallonia_get_dataset` (~29 tokens)

Get metadata for a Walloon open dataset.

Input parameters:

- `datasetId` (string, required): Dataset identifier

### `wallonia_get_records` (~55 tokens)

Get records from a Walloon open dataset.

Input parameters:

- `datasetId` (string, required): Dataset identifier
- `limit` (number): Maximum number of records to return
- `where` (string): Optional OpenDataSoft where clause

### `kmi_list_feature_types` (~59 tokens)

List public KMI/IRM WFS feature types available through the official GeoServer endpoint.

Input parameters:

- `limit` (number): Maximum number of feature types to return
- `query` (string): Optional text filter on feature type name or title

### `kmi_describe_feature_type` (~48 tokens)

Describe the schema of a KMI/IRM WFS feature type.

Input parameters:

- `typeName` (string, required): Exact WFS feature type name, e.g. aws:aws_station

### `kmi_get_features` (~95 tokens)

Fetch GeoJSON features from a KMI/IRM WFS layer.

Input parameters:

- `bbox` (string): Optional bounding box as minX,minY,maxX,maxY
- `count` (number): Maximum number of features to return
- `cqlFilter` (string): Optional GeoServer CQL filter
- `typeName` (string, required): Exact WFS feature type name, e.g. aws:aws_1hour

### `kmi_get_stations` (~40 tokens)

Get KMI/IRM automatic weather station features from the official WFS endpoint.

Input parameters:

- `count` (number): Maximum number of stations to return

### `kmi_get_hourly_observations` (~57 tokens)

Get hourly weather observation features from the KMI/IRM WFS endpoint.

Input parameters:

- `count` (number): Maximum number of observations to return
- `stationCode` (number): Optional numeric station code to filter observations

### `wallonia_geo_list_folders` (~23 tokens)

List top-level folders published by Wallonia GeoServices.

### `wallonia_geo_list_services` (~42 tokens)

List ArcGIS REST services published in a Wallonia GeoServices folder.

Input parameters:

- `folder` (string): Optional folder name, e.g. MOBILITE

### `wallonia_geo_get_service` (~48 tokens)

Get metadata for a specific Wallonia GeoServices ArcGIS MapServer service.

Input parameters:

- `servicePath` (string, required): Service path, e.g. MOBILITE/AOT_ARRETTEC

### `wallonia_geo_query_layer` (~112 tokens)

Query features from a Wallonia GeoServices ArcGIS feature layer.

Input parameters:

- `layerId` (number, required): Numeric ArcGIS layer identifier
- `limit` (number): Maximum number of records to return
- `outFields` (string): Comma-separated fields or *
- `returnGeometry` (boolean): Whether to include geometries in the response
- `servicePath` (string, required): Service path, e.g. MOBILITE/AOT_ARRETTEC
- `where` (string): ArcGIS where clause

### `urban_list_feature_types` (~50 tokens)

List public urban.brussels WFS feature types.

Input parameters:

- `limit` (number): Maximum number of feature types to return
- `query` (string): Optional text filter on feature type name or title

### `urban_describe_feature_type` (~38 tokens)

Describe the schema of an urban.brussels WFS feature type.

Input parameters:

- `typeName` (string, required): Exact WFS feature type name

### `urban_get_features` (~83 tokens)

Fetch GeoJSON features from an urban.brussels WFS layer.

Input parameters:

- `bbox` (string): Optional bounding box as minX,minY,maxX,maxY
- `count` (number): Maximum number of features to return
- `cqlFilter` (string): Optional GeoServer CQL filter
- `typeName` (string, required): Exact WFS feature type name

### `urban_get_municipalities_boundaries` (~42 tokens)

Fetch Brussels municipality boundaries from the urban.brussels public WFS endpoint.

Input parameters:

- `count` (number): Maximum number of municipality features to return

### `urbis_list_layers` (~70 tokens)

List public URBIS WMS layers for the vector or raster service.

Input parameters:

- `limit` (number): Maximum number of layers to return
- `query` (string): Optional text filter on layer name or title
- `service` (string, required): Which public URBIS WMS service to inspect

### `urbis_get_layer` (~53 tokens)

Get metadata for a specific public URBIS WMS layer.

Input parameters:

- `layerName` (string, required): Exact WMS layer name
- `service` (string, required): Which public URBIS WMS service to inspect

### `urbis_build_map_url` (~150 tokens)

Build a public URBIS WMS GetMap URL for a layer and bounding box.

Input parameters:

- `bbox` (string, required): Bounding box as minX,minY,maxX,maxY
- `crs` (string): Coordinate reference system
- `format` (string): Requested WMS image format
- `height` (number): Map image height in pixels
- `layerName` (string, required): Exact WMS layer name
- `service` (string, required): Which public URBIS WMS service to use
- `styles` (string): Optional WMS style name
- `transparent` (boolean): Whether the output image should be transparent
- `width` (number): Map image width in pixels

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/lacausecrypto-mcp-belgium/mcp-belgium#diagnostics

## Score history

- 2026-08-03: 71
- 2026-08-02: 71
- 2026-08-01: 31
- 2026-07-31: 26
- 2026-07-30: 53
- 2026-07-28: 53
- 2026-07-27: 53

## Links

- npm package: https://www.npmjs.com/package/mcp-belgium
- Socket report: https://socket.dev/npm/package/mcp-belgium
- Repository: https://github.com/lacausecrypto/mcp-belgium
- Changelog RSS feed: https://verifymcp.io/servers/lacausecrypto-mcp-belgium/mcp-belgium/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/lacausecrypto-mcp-belgium/mcp-belgium/changelog.json
- HTML version of this page: https://verifymcp.io/servers/lacausecrypto-mcp-belgium/mcp-belgium
