mcp-sparql
Provides tools for executing SPARQL queries (SELECT, ASK, CONSTRUCT, DESCRIBE) on Wikidata's SPARQL endpoint, enabling AI agents to retrieve structured data, validate queries, list graphs, and get common prefixes.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-sparqlquery Wikidata for cities in France"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-sparql — MCP server exposing SPARQL query functionalities for LLMs.
mcp-name: io.github.daedalus/mcp-sparql
Install
pip install mcp-sparqlRelated 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 |
| Execute SPARQL SELECT queries (table or JSON output) |
| Execute SPARQL ASK queries (boolean result) |
| Execute SPARQL CONSTRUCT queries (Turtle or JSON-LD) |
| Execute SPARQL DESCRIBE queries (Turtle or JSON-LD) |
| Validate SPARQL query syntax without executing |
| List named graphs on a SPARQL endpoint |
| 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 |
| Standard SPARQL namespace prefixes |
API
sparql_query
Execute a SPARQL SELECT query.
Parameters:
endpoint(str): SPARQL endpoint URLquery(str): SPARQL SELECT querytimeout(int, default=30): Query timeout in secondsoutput_format(str, default="table"): "table" for Markdown, "json" for JSONheaders(dict, optional): HTTP headers for authenticationmax_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 toolssparql_askARead-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"
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_constructARead-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..."
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_describeARead-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<...> ..."
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_prefixesARead-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..."
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_graphsARead-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..."
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_queryARead-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"}
... ))
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_validateARead-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: ..."
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
7 tool updates
v0.1.0- First observed
sparql_ask - First observed
sparql_construct - First observed
sparql_describe - First observed
sparql_get_prefixes - First observed
sparql_list_graphs - First observed
sparql_query - First observed
sparql_validate
TDQS
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.
All tools follow a consistent 'sparql_<verb_or_noun>' pattern, using snake_case throughout. This makes the tool set predictable and easy to navigate.
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.
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
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
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
MCP server for querying BrainKB, a knowledge base for neuroscience knowledge graphs.
MCP server for AI dialogue using various LLM models via AceDataCloud
Related MCP Servers
- AlicenseBqualityCmaintenanceA Model Context Protocol server that provides read-only access to Ontotext GraphDB, enabling LLMs to explore RDF graphs and execute SPARQL queries.21816GPL 3.0
- AlicenseNot gradedqualityFmaintenanceThe 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.54MIT
- AlicenseAqualityDmaintenanceAn 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.131MIT
- AlicenseAqualityAmaintenanceAI-native ontology engineering MCP server for OWL/RDF/SPARQL. Validate, query, diff, lint, version, and govern knowledge graphs via Oxigraph triple store.42476MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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