mcp jena
A Model Context Protocol server that connects AI agents to Apache Jena, enabling them to execute SPARQL queries and updates against RDF data stored in Jena Fuseki.
A Model Context Protocol server that connects AI agents to Apache Jena, enabling them to execute SPARQL queries and updates against RDF data stored in Jena Fuseki.
A Model Context Protocol (MCP) server that connects AI agents to Apache Jena for SPARQL query capabilities.
This project implements an MCP server that allows AI agents (such as Cursor, Claude for Cline, or Claude Desktop) to access and query RDF data stored in Apache Jena. The server provides tools for executing SPARQL queries and updates against a Jena Fuseki server.
Clone this repository:
git clone https://github.com/ramuzes/mcp-jena.git
cd mcp-jena
Install dependencies:
npm install
Build the TypeScript code:
npm run build
Run the server with default settings (localhost:3030 for Jena, 'ds' for dataset):
npm start
Or specify custom Jena endpoint, dataset, and authentication credentials:
npm start -- --endpoint http://your-jena-server:3030 --dataset your_dataset --username your_username --password your_password
You can also use short flags:
npm start -- -e http://your-jena-server:3030 -d your_dataset -u your_username -p your_password
For development mode with automatic transpilation:
npm run dev:transpile -- -e http://your-jena-server:3030 -d your_dataset -u your_username -p your_password
This MCP server provides the following tools:
execute_sparql_query
- Execute a SPARQL query against the Jena datasetexecute_sparql_update
- Execute a SPARQL update query to modify the datasetlist_graphs
- List all available named graphs in the datasetYou can also configure the server using environment variables:
JENA_FUSEKI_URL
: URL of your Jena Fuseki server (default: http://localhost:3030)DEFAULT_DATASET
: Default dataset name (default: ds)JENA_USERNAME
: Username for HTTP Basic authentication to Jena FusekiJENA_PASSWORD
: Password for HTTP Basic authentication to Jena FusekiPORT
: Port for the MCP server (for HTTP transport, default: 8080)API_KEY
: API key for MCP server authenticationSELECT ?subject ?predicate ?object
WHERE {
?subject ?predicate ?object
}
LIMIT 10
PREFIX ex: <http://example.org/>
INSERT DATA {
ex:subject1 ex:predicate1 "object1" .
ex:subject2 ex:predicate2 42 .
}
SELECT ?subject ?predicate ?object
FROM NAMED <http://example.org/graph1>
WHERE {
GRAPH <http://example.org/graph1> {
?subject ?predicate ?object
}
}
LIMIT 10