An MCP server that implements approval-first governance for agent task execution, evaluating proposed actions against risk levels and blast radius, with dry-run staging, audit logging, and rollback capabilities.
Critical failures across all dimensions. The single tool 'execute_skill_action' has a description (good), but the input schema is severely underspecified: 'proposed_agent_action' is typed as a generic object with no field constraints, and 'risk_level' lacks an enum constraint despite the description explicitly listing valid values (LOW, MEDIUM, HIGH, CRITICAL). No output schema is documented anywhere. The tool definition is inferred from client.py and example_usage.py rather than explicit MCP server registration, the mcp_server.py file is a stub that prints JSON but does not actually implement the MCP protocol. No error handling, no recovery guidance, no parameter validation rules documented. The server does not implement MCP at all, it's a mock that prints a status message and exits.
Execute a skill action with approval-first governance, evaluating proposed agent actions against risk levels and blast radius with dry-run staging, audit logging, and rollback capabilities.
Input schema critically incomplete: 'proposed_agent_action' is a bare object type with no field definitions, constraints, or examples. 'risk_level' is a free-form string despite the description listing exactly four valid values (LOW, MEDIUM, HIGH, CRITICAL), should be an enum.
No output schema documented. The tool description and client code suggest a response with fields like 'approval_required', 'risk_assessment', 'safe_execution_plan', and 'rollback_plan', but the MCP server does not declare or validate this structure.
MCP server is not implemented. mcp_server.py prints a static JSON message and exits, it does not implement the MCP protocol, handle requests, or invoke the tool logic. The actual tool logic exists only in client.py, which is not an MCP server.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 34 | 2026-07-28+ | v2 |
No error handling or recovery guidance. The tool description mentions 'rollback capabilities' and 'audit logging', but there is no documented error response format, no guidance on retryability, and no actionable error messages for the LLM.
Parameter 'proposed_agent_action' is too generic. The description does not specify what fields are required, what types they should be, or what constraints apply. An LLM cannot construct a valid action without explicit field documentation.