Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Data Bs

FreeNot checked

MCP server for querying Huwise/Opendatasoft data portals. Enables dataset search, metadata retrieval, record filtering with ODSQL, and data export.

GitHubEmbed

About

MCP server for querying Huwise/Opendatasoft data portals. Enables dataset search, metadata retrieval, record filtering with ODSQL, and data export.

README

MCP server for any Huwise/Opendatasoft data portal.

Installation

uv sync

Usage

uv run main.py

Debug

npx @modelcontextprotocol/inspector uv run main.py

Install with uvx

uvx --from git+https://github.com/DCC-BS/mcp-data-bs data-bs-mcp

Selecting a catalog

The catalog is chosen by whoever deploys the server via the .env file next to main.py. All Huwise/Opendatasoft portals share the same API path, so you only set the domain:

# .env
DATA_PORTAL_DOMAIN=data.bl.ch

The full API base URL is built as https://<domain>/api/explore/v2.1.

The .env file is committed, so a fork carries its catalog choice through uvx installs as well.

Configuration

OpenCode

Add to your OpenCode config:

{
  "mcpServers": {
    "data-bs": {
      "command": "uv",
      "args": [
        "--directory",
        "/ABSOLUTE/PATH/TO/data-bs-mcp",
        "run",
        "main.py"
      ]
    }
  }
}

Cursor

Add to your Cursor config (~/.cursor/mcp.json):

{
  "mcpServers": {
    "data-bs": {
      "command": "uv",
      "args": [
        "--directory",
        "/ABSOLUTE/PATH/TO/data-bs-mcp",
        "run",
        "main.py"
      ]
    }
  }
}

Tools

get_datasets

Search and list available datasets.

Two search modes:

  • semantic (default): ranks the catalog by meaning using the vector_similarity explore endpoint from Huwise. Best for natural-language / conceptual queries. Matches synonyms and other languages.
  • lexical: classic full-text match on the exact terms.
# semantic (default) — natural language, ranked by relevance
get_datasets(search="air quality measurements")

# lexical — exact full-text match
get_datasets(search="luft", search_mode="lexical")

# combine with facet filters
get_datasets(search="bevölkerung", refine="publisher:Statistisches Amt")

get_dataset

Get detailed metadata for a specific dataset.

get_dataset(dataset_id="100113")

get_records

Query records from a dataset with ODSQL filtering.

get_records(dataset_id="100113", where="pm25 > 10", limit=100, order_by="time DESC")

get_facets

Get available facet values for filtering.

get_facets(facet="publisher")  # Options: publisher, keyword, theme, features, modified, language

export_dataset_url

Get download URL for dataset export.

export_dataset_url(dataset_id="100113", format="csv", where="sensornr=240")

Formats: csv, json, geojson, xlsx, shp, parquet, gpx, kml, rdfxml, jsonld, turtle

from github.com/DCC-BS/mcp-data-bs

Install Data Bs in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install data-bs-mcp

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add data-bs-mcp -- uvx --from git+https://github.com/DCC-BS/mcp-data-bs data-bs-mcp

FAQ

Is Data Bs MCP free?

Yes, Data Bs MCP is free — one-click install via Unyly at no cost.

Does Data Bs need an API key?

No, Data Bs runs without API keys or environment variables.

Is Data Bs hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install Data Bs in Claude Desktop, Claude Code or Cursor?

Open Data Bs on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Data Bs with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs