lindas-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | Host to bind when using SSE or streamable-http transport. Defaults to 127.0.0.1; set to 0.0.0.0 to expose externally. | 127.0.0.1 |
| PORT | No | Port to bind when using SSE or streamable-http transport. | |
| LOG_LEVEL | No | Log level for the JSON stderr logs. | |
| ALLOWED_ORIGINS | No | Comma-separated list of browser origins allowed for HTTP deployments. Unset means no browser client is permitted. | |
| LINDAS_MCP_TRANSPORT | No | Transport mode. Accepts 'stdio' (default), 'sse' or 'streamable-http'. | stdio |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_cubesA | Find statistical data cubes in LINDAS by topic. The entry point. Returns cube URIs you then pass to Check
On
Args:
query: Topic term, e.g. "Wald", "Abfluss", "Energie". Matched against
cube names and descriptions in the chosen language.
language: Language for names and descriptions.
creator_uri: Restrict to one publishing body (from |
| get_cube_structureA | Read a cube's dimensions and measures — what the cube contains. Tells you which dimensions you can filter on ( Call this to understand a cube before reading it, and to write a
Args:
cube_uri: A cube URI from |
| query_cube_observationsA | Read the actual data points of a cube, with codes resolved to labels. This is phase 2. Values are returned keyed by human-readable dimension names, and coded dimension values (e.g. region "1805") are replaced by their labels (e.g. "Alpennordhang") unless you turn that off. For large cubes this reads only the first Args:
cube_uri: A cube URI from |
| list_publishersA | List the federal bodies that publish cubes, with cube counts. Returns creator URIs you can pass to |
| resolve_municipalityA | Resolve a Swiss municipality to its LINDAS URI and BFS number. The BFS commune number is the join key across the whole portfolio: the same number identifies the municipality in swiss-statistics-mcp, zurich-opendata-mcp and any cube that references a place. In LINDAS the URI is literally ld.admin.ch/municipality/. Args: name_or_bfs: A municipality name ("Zürich") or a BFS number ("261"). language: Language for the name. |
| run_sparqlA | Run a raw SPARQL SELECT query. Advanced escape hatch — use sparingly. Prefer the structured tools. This exists for analytical queries the guarded tools cannot express (cross-cube joins, aggregations, custom filters). Guardrails, learned from probing: LINDAS times out on unanchored scans, so
always anchor on a known class such as Args: query: A complete SPARQL SELECT query, including its own PREFIX lines. |
| api_statusA | Check whether the LINDAS SPARQL endpoint is reachable. Returns an evaluable status even on failure, so an agent can tell "no data matched" apart from "the endpoint is down". |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool owns a clearly distinct step in the workflow: discover cubes, list publishers, inspect structure, read observations, resolve municipalities, check status, or run raw SPARQL. Even the structurally related tools are easy to tell apart because their responsibilities are explicitly separated.
Six of seven tool names follow a clear verb_noun snake_case pattern like search_cubes, list_publishers, and get_cube_structure. api_status is the only outlier, being a noun phrase rather than a verb-led name, but the overall style remains predictable.
Seven tools is well-scoped for a read-only statistical data cube server: discovery, structure inspection, data reading, publisher filtering, municipality resolution, status checking, and a raw SPARQL escape hatch. Each tool earns its place without redundancy.
The set covers the core cube workflow well: search, publisher filtering, structure inspection, observation reading, and key resolution. Minor gaps like first-class code-list entry enumeration or direct version-history browsing are not offered as dedicated tools, though run_sparql and search flags provide workarounds.