MCP server exposing SPARQL query functionalities for LLMs
SaferSkills independently audited mcp-sparql (MCP Server) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
mcp-sparql — MCP server exposing SPARQL query functionalities for LLMs.
mcp-name: io.github.daedalus/mcp-sparql
pip install mcp-sparqlAdd to your MCP configuration (e.g., ~/.config/claude/mcp.json):
{
"mcpServers": {
"mcp-sparql": {
"command": "mcp-sparql"
}
}
}| 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 |
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"| Resource | URI | Description |
|---|---|---|
| Common Prefixes | sparql://common-prefixes | Standard SPARQL namespace prefixes |
sparql_queryExecute 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 rowssparql_askExecute a SPARQL ASK query. Returns "true" or "false".
sparql_constructExecute a SPARQL CONSTRUCT query. Returns RDF triples.
Additional parameters:
output_format (str, default="turtle"): "turtle" or "json"sparql_describeExecute a SPARQL DESCRIBE query. Returns RDF description.
sparql_validateValidate SPARQL query syntax without executing.
sparql_list_graphsList available named graphs on a SPARQL endpoint.
sparql_get_prefixesGet commonly used prefixes for a SPARQL endpoint.
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/~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.