mcp-sparql
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
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
| 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 |
|---|---|
| sparql_queryA | Execute a SPARQL SELECT query against a SPARQL endpoint. | --- | --- |
| |
| sparql_askA | 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" |
| sparql_constructA | 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..." |
| sparql_describeA | 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<...> ..." |
| sparql_validateA | 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." |
| sparql_list_graphsA | 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..." |
| sparql_get_prefixesA | 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..." |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_common_prefixes | Common SPARQL namespace prefixes. Returns a dictionary of standard namespace prefixes used in SPARQL queries, including RDF, RDFS, OWL, XSD, FOAF, Dublin Core, SKOS, Schema.org, Wikidata, and DBpedia. Returns: JSON string mapping prefix names to namespace URIs. |
TDQS
Scored across 7 tools
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.