Apache Jena (Fuseki) API + MCP Server + A2A Server for Agentic AI. Provides SPARQL query/update, Graph Store Protocol, and server administration tools.
Four tools with schemas present but significant quality gaps. Tool names lack clear action verbs (jena_sparql, jena_source_records, jena_graph, jena_admin are vague about intent). Descriptions exist but are brief (34-194 chars) and lack LLM-optimized guidance on WHEN to use each tool vs. alternatives. Parameters have types and defaults but many lack descriptions or constraints. jena_admin's 'params_json' is a red flag, free-form JSON forces LLMs to construct complex payloads without schema validation. No output schemas documented. Error handling and recovery guidance absent. Security concerns: jena_sparql and jena_graph expose WRITE/DESTRUCTIVE operations without confirmation or dry-run patterns.
Administer the Fuseki server: datasets, stats, tasks, backup, compact.
Read or modify RDF graphs via the Graph Store Protocol.
List normalized, read-only SPARQL bindings for governed ingestion.
Execute a SPARQL query or update against a Fuseki dataset.
jena_admin uses free-form 'params_json' string instead of typed parameters. LLMs cannot validate payloads; hallucinated JSON causes silent failures. Violates constrained-input pattern.
Tool names lack action verbs. 'jena_sparql' does not indicate query vs. update; 'jena_graph' does not clarify get/put/post/delete intent. LLMs cannot infer tool purpose from names alone.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., dataset IDs, graph URIs). Violates response-shaper pattern.
Destructive operations (jena_sparql UPDATE, jena_graph DELETE, jena_admin delete_dataset) lack confirmation or dry-run support. Agents can irreversibly delete data without safeguards.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Parameter descriptions missing or generic. 'accept' header in jena_sparql lacks format guidance; 'params_json' in jena_admin has no schema. LLMs cannot validate inputs.