Skip to main content
Glama
malkreide

lindas-mcp

by malkreide

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_cubesA

Find statistical data cubes in LINDAS by topic.

The entry point. Returns cube URIs you then pass to get_cube_structure. By default only the newest published version of each cube is returned; set latest_only=False to see every version.

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 list_publishers). limit: Maximum cubes to return (1-100). latest_only: Collapse versions to the newest per cube.

get_cube_structureA

Read a cube's dimensions and measures — always call this before data.

This is phase 1 of the two-phase access pattern. It tells you which dimensions you can filter on (KeyDimension), which values are measured (MeasureDimension), and which dimensions carry code lists. It also returns the licence, which is frequently a Fedlex URI you can resolve with fedlex-mcp.

Args: cube_uri: A cube URI from search_cubes. language: Language for dimension names and description.

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 limit observations. LINDAS has no cheap way to filter observations server-side by arbitrary dimension value, so heavy analytical slicing belongs in run_sparql.

Args: cube_uri: A cube URI from search_cubes. language: Language for labels. limit: Maximum observations to return (1-500). resolve_labels: Replace coded values with human labels.

list_publishersA

List the federal bodies that publish cubes, with cube counts.

Returns creator URIs you can pass to search_cubes to restrict a search to one authority.

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 ?x a <https://cube.link/Cube>. A bare SELECT * WHERE { ?s ?p ?o } will time out. This tool caps the result at 500 rows and the runtime at 30 seconds.

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

NameDescription

No prompts

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/malkreide/lindas-mcp'

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