Open standard for internal accountability in multi-agent AI systems. Provides consent engine, audit chain, and arbitration protocol for managing agent permissions, decision logging, and conflict resolution.
ATAP is a protocol library, not an MCP server. It exposes 19 tools with inconsistent quality. Most tools have descriptions (good), but schemas are incomplete or missing entirely. Many parameters lack type definitions or descriptions. No input validation guidance, error recovery patterns, or output schema documentation. Tool naming is reasonable (verb_noun style) but compositions are unclear. This reads as a reference implementation rather than a production-grade MCP server.
Escalate an unresolvable conflict to a human. Calls the configured escalation handler with full context for a decision in under 30 seconds.
Get the priority of an agent. Returns 0 if not registered.
Configure how escalations reach humans. Sets an async handler function that receives escalation events.
Resolve a conflict between two agents. Compares priority scores; higher priority wins. Equal priority escalates to human. Records result in Audit Chain.
Set the priority of an agent. Higher priority agents win conflicts.
Configure a storage adapter for audit chain persistence. The adapter must implement async append() and async query() methods.
Retrieve decision history from the audit chain. Can filter by agent and limit results.
No MCP server implementation detected. ATAP is a Node.js library, not an MCP server. No tool registration via MCP protocol, no transport layer, no _meta handling, no capabilities negotiation.
Output schemas completely undocumented. Tools like status(), audit.report(), arbitration.resolve() return objects but no schema is provided. LLMs cannot plan downstream calls or extract fields reliably.
Parameter type definitions incomplete or missing. audit.configure expects 'adapter' as object but no schema for adapter methods. arbitration.onEscalate expects 'handler' as function, not a valid JSON Schema type. No validation guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Record an agent decision in the audit chain. Reason must be written in plain language understandable by non-technical system owners.
Generate a human-readable report of the audit chain. Returns formatted text with timestamps, actions, and reasons.
Configure the auth module with API key verification settings. Keys are never hardcoded.
Get auth module status summary. Safe to expose publicly.
Verify an API key. Returns ok status, reason, and key metadata if valid.
Check if an agent is allowed to perform an action based on configured policies. Evaluates limits and approval requirements.
Configure a policy for an agent-action pair. Defines limits and approval requirements.
Unified check before any agent action. Combines Consent Engine check + Audit Chain log in one call.
Check if an agent-action pair is within rate limits. Returns allowed status and remaining quota.
Configure rate limiting rules for agent-action pairs. Rules specify limit and windowMs for each combination.
Get rate limiting module status.
Summary of the Trust Layer state. Returns version, consent policies count, audit backend type, and arbitration agents count.
No error handling or recovery guidance. Tools provide no error codes, retryability hints, or actionable error messages. E.g., consent.check() blocks an action but does not explain how to get approval or what changed.
Tool composition unclear. guard() calls consent.check() + audit.log() internally, but agents cannot see or control this composition. If audit.log() fails, guard() may silently succeed. No idempotency guarantees or transaction semantics.