Skip to main content
Glama
malkreide

lindas-mcp

by malkreide

run_sparql

Read-onlyIdempotent

Run raw SPARQL SELECT queries for advanced analyses standard tools can't handle: cross-cube joins, aggregations, custom filters. Caps rows at 500 and runtime at 30 seconds.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteYes
rowsYes
sourceNoData: LINDAS Linked Data Service, Swiss Federal Archives — https://lindas.admin.ch. Each cube declares its own licence; check the `licence` field before reuse.
row_countYes
provenanceNolive_sparql
retrieved_atYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, idempotentHint), the description discloses result caps (500 rows), runtime limit (30 seconds), and timeout behavior on unanchored scans. This is valuable behavioral context that annotations do not provide, and it does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat lengthy but well-structured: it starts with purpose, then usage guidance, guardrails, and parameter details. Each sentence adds value, though the guardrails paragraph could be slightly more compact without losing important information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema, the description fully addresses purpose, usage rules, parameter requirements, and operational pitfalls (timeouts, caps). No significant gaps remain for a raw query tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only defines 'query' as a string, but the description adds critical requirements: 'a complete SPARQL SELECT query, including its own PREFIX lines.' This clarifies what the parameter must contain, though it stops short of providing a full example or specifying SPARQL dialect details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Run a raw SPARQL SELECT query' and distinguishes this from sibling structured tools by positioning it as an 'advanced escape hatch' for analytical queries they cannot express, such as cross-cube joins and aggregations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to 'Prefer the structured tools' and specifies when this tool is appropriate: analytical queries the guarded tools cannot express (cross-cube joins, aggregations, custom filters). It also provides concrete implementation guidance, such as always anchoring on a known class to avoid timeouts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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