Skip to main content
Glama

mcp-sparql — MCP server exposing SPARQL query functionalities for LLMs.

PyPI Python Ruff

mcp-name: io.github.daedalus/mcp-sparql

Install

pip install mcp-sparql

Related MCP server: RDF Explorer

Usage

As an MCP Server

Add to your MCP configuration (e.g., ~/.config/claude/mcp.json):

{
  "mcpServers": {
    "mcp-sparql": {
      "command": "mcp-sparql"
    }
  }
}

Available Tools

Tool

Description

sparql_query

Execute SPARQL SELECT queries (table or JSON output)

sparql_ask

Execute SPARQL ASK queries (boolean result)

sparql_construct

Execute SPARQL CONSTRUCT queries (Turtle or JSON-LD)

sparql_describe

Execute SPARQL DESCRIBE queries (Turtle or JSON-LD)

sparql_validate

Validate SPARQL query syntax without executing

sparql_list_graphs

List named graphs on a SPARQL endpoint

sparql_get_prefixes

Get common prefixes for a SPARQL endpoint

Examples

Query Wikidata:

sparql_query:
  endpoint: "https://query.wikidata.org/sparql"
  query: "SELECT ?item ?itemLabel WHERE { ?item wdt:P31 wd:Q5 . ?item rdfs:label ?itemLabel . FILTER(LANG(?itemLabel) = 'en') } LIMIT 5"

Check if an entity exists:

sparql_ask:
  endpoint: "https://query.wikidata.org/sparql"
  query: "ASK { wd:Q42 wdt:P31 wd:Q5 }"

Validate a query:

sparql_validate:
  query: "SELECT ?s WHERE { ?s ?p ?o }"

List named graphs:

sparql_list_graphs:
  endpoint: "https://query.wikidata.org/sparql"

Get common prefixes:

sparql_get_prefixes:
  endpoint: "https://query.wikidata.org/sparql"

Resources

Resource

URI

Description

Common Prefixes

sparql://common-prefixes

Standard SPARQL namespace prefixes

API

sparql_query

Execute a SPARQL SELECT query.

Parameters:

  • endpoint (str): SPARQL endpoint URL

  • query (str): SPARQL SELECT query

  • timeout (int, default=30): Query timeout in seconds

  • output_format (str, default="table"): "table" for Markdown, "json" for JSON

  • headers (dict, optional): HTTP headers for authentication

  • max_rows (int, default=1000): Maximum result rows

sparql_ask

Execute a SPARQL ASK query. Returns "true" or "false".

sparql_construct

Execute a SPARQL CONSTRUCT query. Returns RDF triples.

Additional parameters:

  • output_format (str, default="turtle"): "turtle" or "json"

sparql_describe

Execute a SPARQL DESCRIBE query. Returns RDF description.

sparql_validate

Validate SPARQL query syntax without executing.

sparql_list_graphs

List available named graphs on a SPARQL endpoint.

sparql_get_prefixes

Get commonly used prefixes for a SPARQL endpoint.

Development

git clone https://github.com/daedalus/mcp-sparql.git
cd mcp-sparql
pip install -e ".[test]"

# run tests
pytest

# format
ruff format src/ tests/

# lint + type check
prospector --with-tool ruff --with-tool mypy --with-tool pylint src/

Available Tools

7 tools
sparql_askA
Read-onlyIdempotent

Execute a SPARQL ASK query and return a boolean result.

ASK queries test whether a pattern exists in the data, returning true or false.

Args: params: Query parameters including endpoint URL, SPARQL ASK query, timeout, and optional headers.

Returns: "true" if the pattern exists, "false" otherwise.

Examples: >>> # Check if a specific item exists >>> sparql_ask(SparqlAskInput( ... endpoint="https://query.wikidata.org/sparql", ... query="ASK { wd:Q42 wdt:P31 wd:Q5 }" ... )) "true"

>>> # Check if a relationship exists
>>> sparql_ask(SparqlAskInput(
...     endpoint="https://query.wikidata.org/sparql",
...     query="ASK { wd:Q42 wdt:P27 wd:Q142 }"
... ))
"true"
ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld hints. The description adds behavioral details: returns a string 'true'/'false', includes timeout parameter with default/max values, and provides examples that illustrate idempotent behavior. No contradiction with annotations.

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

Conciseness5/5

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

The description is concise, structured with Args/Returns/Examples, and uses a clean docstring format. Every sentence adds value, and the examples are relevant without redundancy.

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

Completeness4/5

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

Given the complexity of SPARQL and available sibling tools, the description adequately covers the tool's function, parameters, and return type. It lacks explicit differentiation from sibling tools but is sufficient for an ASK-specific tool. Output schema presence reduces burden.

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

Parameters3/5

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

Schema coverage is 0% (top-level params object lacks description), but each sub-parameter has schema descriptions. The tool description lists parameter names (endpoint, query, timeout, headers) but provides no additional semantics beyond what the schema already covers. Baseline 3 is appropriate.

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 it executes a SPARQL ASK query returning a boolean result, with specific examples. It distinguishes from sibling tools (e.g., sparql_query) by focusing on ASK semantics, making its purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies usage for pattern existence checks but does not explicitly compare to alternatives like sparql_query or provide when-to-use/when-not-to-use guidance. No exclusion criteria or sibling reference is given.

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

sparql_constructA
Read-onlyIdempotent

Execute a SPARQL CONSTRUCT query and return RDF triples.

CONSTRUCT queries build an RDF graph from a template pattern. Results are returned as Turtle RDF or JSON-LD. For large-scale graph construction, increase the timeout parameter — default is 30s, maximum is 3600s (1 hour).

Args: params: Query parameters including endpoint URL, SPARQL CONSTRUCT query, timeout, output format, optional headers, and max rows limit.

Returns: RDF triples formatted as Turtle or JSON.

Examples: >>> # Construct a subgraph >>> sparql_construct(SparqlConstructInput( ... endpoint="https://query.wikidata.org/sparql", ... query="CONSTRUCT { wd:Q42 rdfs:label ?name } WHERE { wd:Q42 rdfs:label ?name . FILTER(LANG(?name) = 'en') }" ... )) "@prefix rdfs: http://www.w3.org/2000/01/rdf-schema# .\n..."

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds context: it explains the CONSTRUCT query nature, mentions default and maximum timeout, and specifies output formats (Turtle or JSON). No contradictions with 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 well-structured: purpose, explanation, argument list, return, and example. It is reasonably concise with no redundant sentences, though the example could be shortened.

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

Completeness3/5

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

Given the complexity of SPARQL CONSTRUCT and the presence of six sibling tools, the description covers the main output but does not explain how it differs from sparql_describe (another RDF graph tool). The example is helpful, but a brief comparison would improve completeness.

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?

Despite the schema coverage being 0% (per context), the description lists the included parameters (endpoint, query, timeout, output format, headers, max rows) and provides a concrete example. This adds meaning beyond the bare schema structure, which lacks parameter descriptions.

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

Purpose4/5

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

The description clearly states 'Execute a SPARQL CONSTRUCT query and return RDF triples' and explains that CONSTRUCT queries build an RDF graph. It implicitly distinguishes from siblings like sparql_query (returns tabular) and sparql_ask (boolean) by focusing on graph construction, but does not explicitly name alternatives.

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

Usage Guidelines2/5

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

The description provides no when-to-use or when-not-to-use guidance relative to sibling tools. It only gives a performance tip ('increase timeout for large-scale graph construction'), but fails to advise when to prefer this tool over sparql_describe or sparql_query.

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

sparql_describeA
Read-onlyIdempotent

Execute a SPARQL DESCRIBE query and return an RDF resource description.

DESCRIBE queries return an RDF graph describing the specified resource(s). For resources with many properties, increase the timeout parameter — default is 30s, maximum is 3600s (1 hour).

Args: params: Query parameters including endpoint URL, SPARQL DESCRIBE query, timeout, output format, optional headers, and max rows limit.

Returns: RDF description formatted as Turtle or JSON.

Examples: >>> # Describe a Wikidata entity >>> sparql_describe(SparqlDescribeInput( ... endpoint="https://query.wikidata.org/sparql", ... query="DESCRIBE wd:Q42" ... )) "@prefix ...> .\n<...> ..."

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already mark the tool as readOnlyHint, idempotentHint, and destructiveHint. The description adds useful behavioral context about timeout limits (30s default, 1h max) and scalability concerns for resources with many properties.

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 well-structured with a clear purpose, a list of arguments, return value, and an example. It is efficient but the example adds length; still it earns its place.

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

Completeness4/5

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

The description covers the core behavior, return format, and timeout considerations. With annotations indicating read-only and idempotent nature, the description is fairly complete, though it lacks error handling details.

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

Parameters3/5

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

The input schema includes descriptions for each property, so the description does not need to repeat them. The description summarizes the parameters but adds little beyond the schema, achieving the baseline score.

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 it executes a SPARQL DESCRIBE query and returns an RDF resource description, distinguishing it from sibling tools that handle other SPARQL operations like ASK, CONSTRUCT, or SELECT.

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

Usage Guidelines3/5

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

The description provides basic context on when to use (to describe resources) and suggests increasing timeout for large datasets, but does not explicitly compare to alternatives or state when not to use this tool.

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

sparql_get_prefixesA
Read-onlyIdempotent

Get commonly used prefixes for a SPARQL endpoint.

Returns a combination of well-known standard prefixes (rdf, rdfs, owl, xsd, etc.) and any endpoint-specific prefixes discovered via the data.

Args: params: Parameters including endpoint URL, timeout, and optional headers.

Returns: Formatted list of prefix declarations for use in SPARQL queries.

Examples: >>> sparql_get_prefixes(SparqlGetPrefixesInput( ... endpoint="https://query.wikidata.org/sparql" ... )) "PREFIX rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#\n..."

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent behavior. The description adds that it returns a mix of well-known and endpoint-specific prefixes discovered via data, providing useful context beyond annotations.

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

Conciseness5/5

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

The description is concise, front-loaded with purpose, and efficiently includes Args, Returns, and an example without unnecessary verbosity.

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 an output schema exists, the description covers what prefixes are returned, includes a concrete example, and provides sufficient context for a simple, read-only tool.

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

Parameters3/5

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

Schema description coverage is 0% per context, but the schema itself includes descriptions for each parameter. The tool description merely reiterates 'Parameters including endpoint URL, timeout, and optional headers', adding minimal extra meaning beyond the schema.

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 it retrieves commonly used prefixes for a SPARQL endpoint, which is specific and distinct from sibling tools that perform queries or validation.

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

Usage Guidelines3/5

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

The description implies usage for obtaining prefixes before writing SPARQL queries, but does not provide explicit when-to-use or when-not-to-use guidance, nor mentions alternatives among sibling tools.

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

sparql_list_graphsA
Read-onlyIdempotent

List available named graphs on a SPARQL endpoint.

Queries the endpoint for all named graphs (contexts) available for querying.

Args: params: Parameters including endpoint URL, timeout, and optional headers.

Returns: List of named graph URIs.

Examples: >>> sparql_list_graphs(SparqlListGraphsInput( ... endpoint="https://query.wikidata.org/sparql" ... )) "Found 3 named graphs:\n1. http://example.org/graph1\n..."

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, covering safety. Description adds that it queries the endpoint and returns URIs. No contradictions, but adds little beyond annotations.

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

Conciseness5/5

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

Concise, front-loaded purpose, includes example. No wasted sentences or redundant 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 simple tool, existing annotations, and output schema implied, the description covers purpose, parameters, return value, and provides an example. Complete for its complexity.

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

Parameters2/5

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

Context indicates 0% schema description coverage, so description must compensate. It lists parameters (endpoint, timeout, headers) at a high level but omits constraints like timeout range and that endpoint is required. Inadequate for a tool with one parameter that has nested fields.

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?

Clear verb and resource: 'List available named graphs'. Distinguishes from sibling SPARQL query tools like sparql_query and sparql_construct.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this vs alternatives, such as when to list graphs vs query or get prefixes. The purpose is distinct, but lacking contextual recommendations. Adequate but minimal.

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

sparql_queryA
Read-onlyIdempotent

Execute a SPARQL SELECT query against a SPARQL endpoint.

Runs a SELECT query and returns results as a Markdown table or JSON array.
Supports custom HTTP headers for authenticated endpoints.
For long-running queries (large datasets, complex joins), increase the
timeout parameter — default is 30s, maximum is 3600s (1 hour).

Args:
    params: Query parameters including endpoint URL, SPARQL query, timeout,
        output format, optional headers, and max rows limit.

Returns:
    Query results formatted as a Markdown table or JSON string.

Examples:
    >>> # Query Wikidata for items
    >>> sparql_query(SparqlQueryInput(
    ...     endpoint="https://query.wikidata.org/sparql",
    ...     query="SELECT ?item ?itemLabel WHERE { ?item wdt:P31 wd:Q5 . ?item rdfs:label ?itemLabel . FILTER(LANG(?itemLabel) = 'en') } LIMIT 5"
    ... ))
    "| `item` | `itemLabel` |

| --- | --- | | http://www.wikidata.org/entity/Q5 | human | ..."

    >>> # Query with authentication
    >>> sparql_query(SparqlQueryInput(
    ...     endpoint="https://my-endpoint.example.com/sparql",
    ...     query="SELECT ?s ?p ?o WHERE { ?s ?p ?o } LIMIT 10",
    ...     headers={"Authorization": "Bearer my-token"}
    ... ))
ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds behavioral details: the tool runs SELECT queries, supports custom headers for authenticated endpoints, and allows timeout up to 3600 seconds. This adds value beyond annotations without contradiction.

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 well-structured with a clear purpose statement, followed by details and examples. It is slightly long due to the included code blocks, but each sentence adds value. The front-loading is appropriate.

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

Completeness4/5

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

Given the complexity of the tool (SPARQL query, multiple parameters, optional headers), the description covers essential aspects: endpoint, query, timeout, output format, headers, and max rows. It does not explain error handling or rate limits, but the annotations and output schema (not shown) likely cover expected outcomes. Overall, it is sufficiently complete for an AI agent to use correctly.

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

Parameters3/5

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

The input schema has detailed descriptions for each nested property, so the description's summary ('endpoint URL, SPARQL query, timeout, output format, optional headers, and max rows limit') adds little new meaning. The examples provide practical context but are not strictly parameter semantics. With schema coverage at 0% (as per context signal), the description could have compensated more, but the schema descriptions are present in the input_schema provided.

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 'Execute a SPARQL SELECT query against a SPARQL endpoint,' specifying the verb, resource, and differentiating from sibling tools (sparql_ask, sparql_construct, etc.). It also mentions output formats (Markdown table or JSON), leaving no ambiguity about the tool's function.

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

Usage Guidelines4/5

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

The description provides usage context such as support for custom headers and timeout adjustment for long-running queries. However, it does not explicitly state when not to use this tool versus alternatives (e.g., sparql_ask for boolean queries), which would be helpful. The guidance on timeout and headers is clear.

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

sparql_validateA
Read-onlyIdempotent

Validate SPARQL query syntax without executing it.

Parses the query and reports whether it is syntactically valid. Useful for debugging query errors before running them against an endpoint.

Args: params: Validation parameters containing the SPARQL query string.

Returns: Validation result with status and error details if invalid.

Examples: >>> # Valid query >>> sparql_validate(SparqlValidateInput(query="SELECT ?s WHERE { ?s ?p ?o }")) "Valid SPARQL query."

>>> # Invalid query
>>> sparql_validate(SparqlValidateInput(query="SELECT WHERE { }"))
"Invalid SPARQL query: ..."
ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false. Description adds the explicit behavior 'without executing it', which is consistent and adds value beyond 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?

Description is well-structured with purpose, args, returns, and examples. While examples add length, they are valuable. Could be slightly more concise.

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 simple tool (1 param, output schema exists), the description fully covers purpose, usage, parameter semantics, and return format with examples. No gaps.

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?

Schema coverage is 0% for the params parameter, but the description explains 'params: Validation parameters containing the SPARQL query string' and provides examples showing the query field, adding meaning beyond the schema.

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?

Description clearly states the tool validates SPARQL query syntax without executing it, using specific verbs 'validate' and 'parses'. It distinguishes from siblings like sparql_query which execute queries.

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

Usage Guidelines4/5

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

Description says it's 'useful for debugging query errors before running them against an endpoint', implying when to use. However, it does not explicitly state when not to use or name alternative tools.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updatesv0.1.0
    • First observedsparql_ask
    • First observedsparql_construct
    • First observedsparql_describe
    • First observedsparql_get_prefixes
    • First observedsparql_list_graphs
    • First observedsparql_query
    • First observedsparql_validate

TDQS

A4.1/5.0
Disambiguation5/5

Each tool targets a distinct SPARQL operation (ASK, CONSTRUCT, DESCRIBE, SELECT, validate, get prefixes, list graphs) with no overlap. An agent can easily distinguish between them.

Naming Consistency5/5

All tools follow a consistent 'sparql_<verb_or_noun>' pattern, using snake_case throughout. This makes the tool set predictable and easy to navigate.

Tool Count5/5

7 tools is well-scoped for a SPARQL server, covering all major query forms and common utilities without overloading. Each tool serves a clear purpose.

Completeness4/5

The set covers the four main SPARQL query types (SELECT, CONSTRUCT, ASK, DESCRIBE) plus validation, prefix retrieval, and graph listing. Missing SPARQL UPDATE operations, but read-only coverage is strong for typical use.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    A Model Context Protocol server that provides read-only access to Ontotext GraphDB, enabling LLMs to explore RDF graphs and execute SPARQL queries.
    2
    18
    16
    GPL 3.0
  • A
    license
    Not graded
    quality
    F
    maintenance
    The Model Context Protocol (MCP) server provides a conversational interface for the exploration and analysis of RDF Turtle Knowledge Graph in Local File mode or SPARQL Endpoint.
    54
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that enables AI-powered exploration of RDF data and SPARQL querying via RDF4J. It provides tools for executing queries, searching knowledge graph resources, and retrieving schema summaries.
    13
    1
    MIT

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/daedalus/mcp-sparql'

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