MCP server for jhcontext — exposes PAC-AI (Protocol for Auditable Context in AI) protocol operations as MCP tools for envelope management, provenance tracking, and audit verification
Five tools with complete input schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. Tool names follow verb_noun convention (submit_*, get_*, query_*, run_audit). Descriptions are present (avg 95 chars) but lack actionable context for LLM selection. Critical issue: parameters lack descriptions (e.g., 'entity_id' in query_provenance has no description; 'checks' array in run_audit has no item description). Output schemas are not documented, LLMs cannot plan downstream calls. Error handling is minimal (bare JSON error strings). No parameter constraints beyond one enum. Composition is reasonable (single responsibility per tool), but missing chaining IDs and pagination guidance.
Retrieve envelope by context_id. Verifies integrity hash.
Query PROV graph. Types: causal_chain, used_entities, temporal_sequence.
Run audit checks on an envelope. Checks: temporal_oversight, negative_proof, integrity.
Submit a PAC-AI envelope. Returns context_id.
Submit a W3C PROV graph (Turtle format) linked to an envelope.
Parameter descriptions missing or incomplete. 'entity_id' in query_provenance has no description; 'checks' array in run_audit lacks item-level description of valid check types (only mentioned in tool description, not schema).
Output schemas not documented. LLMs cannot infer what fields to expect from responses (e.g., does get_envelope return all envelope fields? What structure does query_provenance return?). Blocks downstream tool chaining.
Error handling returns bare JSON strings ('not found', 'PROV graph not found') without recovery guidance. LLMs cannot determine if error is retryable or what to do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Parameter 'checks' in run_audit accepts array of strings with no enum constraint. Valid values (temporal_oversight, negative_proof, integrity) are only mentioned in description, not enforced in schema. LLMs may hallucinate invalid check names.
Tool descriptions lack WHEN-to-use context. 'Submit a PAC-AI envelope' does not explain when an agent should call this vs get_envelope, or what prerequisites exist. Descriptions average 95 chars but lack actionable guidance for LLM selection.