Data Bs
FreeNot checkedMCP server for querying Huwise/Opendatasoft data portals. Enables dataset search, metadata retrieval, record filtering with ODSQL, and data export.
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 thevector_similarityexplore 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
Install Data Bs in Claude Desktop, Claude Code & Cursor
unyly install data-bs-mcpInstalls 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-mcpFAQ
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
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare 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
