Overview — jena-mcp¶
jena-mcp is the API + MCP server + A2A agent for an Apache Jena Fuseki
server. It exposes three protocols through one connector: the SPARQL Protocol, the
Graph Store Protocol (GSP), and the Fuseki administration API.
Tool surface¶
The MCP server registers three action-dispatch tools:
| Tool | Tag | Actions |
|---|---|---|
jena_sparql |
sparql |
query, update |
jena_graph |
data |
get, put, post, delete |
jena_admin |
admin |
ping, server_info, stats, metrics, list_datasets, dataset_info, create_dataset, delete_dataset, set_dataset_state, list_tasks, task_info, backup, compact |
Each tool dispatches to a method on the JenaApi client. All business logic
lives in the API layer; the MCP wrappers add none.
Components¶
JenaApi(jena_mcp/api/api_client_jena.py) — arequests-based REST facade over a Fuseki endpoint, organized by protocol. Exported asApi(jena_mcp/api_client.py).- MCP tools (
jena_mcp/mcp/mcp_jena.py) — thin FastMCP wrappers registered byregister_jena_tools. - Agent server (
jena_mcp/agent_server.py) — a Pydantic-AI A2A agent (jena-agent) that runs graph-orchestrated workflows over the tool surface. get_client(jena_mcp/auth.py) — builds aJenaApifromJENA_*environment variables.
Endpoints exercised¶
| Protocol | Path | Used by |
|---|---|---|
| SPARQL query | POST {dataset}/sparql |
jena_sparql (query) |
| SPARQL update | POST {dataset}/update |
jena_sparql (update) |
| Graph Store | {dataset}/data |
jena_graph |
| Administration | /$/datasets, /$/stats, /$/ping, /$/tasks, … |
jena_admin |
See Usage for examples and Deployment for the environment configuration.