SnapKitty sovereign MCP server — WORM chain, agent builder, Ada contracts, digital twin bridge
SnapKitty MCP server has well-structured tool definitions with complete JSON schemas and descriptions, but suffers from critical naming and composition issues. Tool names lack action verbs (worm_seal, worm_read, twin_chat are acceptable; agent_build, ada_contract_generate, injection_spec_generate are vague). Descriptions are present but generic, they explain WHAT without guiding WHEN to use each tool. Parameters have types and descriptions, but several lack constraints (e.g., 'label' in worm_seal accepts any string; 'capabilities' array has no item constraints). Error handling is minimal, no recovery guidance, no retryability classification. The server conflates multiple concerns: worm_seal both writes AND seals (two operations); agent_build creates AND seals; ada_contract_generate generates AND seals. This violates single-responsibility and forces agents to reason about side effects. Output schemas are partially documented but lack pagination, result limits, or chaining IDs. Security: no mention of permission gates, audit trails, or input sanitization for untrusted agent payloads.
Generate an Ada-syntax sovereign governance contract for an agent. Defines permitted capabilities, trust level, and WORM-seals the contract.
Create a sovereign agent manifest with class, capabilities, model binding, and WORM seal. Classes: SENTINEL, ORACLE, BUILDER, ARCHIVIST, BERSERKER.
Generate a BOB Mamba injection specification for sovereign orchestrator. Combines Lean 4 proof and Ada contract into a structured vector for SSM state injection.
Query a digital twin via Ollama. Sends a prompt to a local or remote Ollama instance and returns the model's reply, sealed into WORM.
Read and optionally verify the SnapKitty WORM chain. Returns recent events and chain validity.
Seal any payload into the SnapKitty WORM chain with SHA-256. Every event is chained to the previous seal — tamper-evident, append-only.
Tool names lack clear action verbs. 'agent_build' is vague (build what? manifest? config?); 'ada_contract_generate' and 'injection_spec_generate' bury the action in a compound noun. LLMs cannot infer intent from these names alone.
Multiple tools combine write + seal operations (worm_seal, agent_build, ada_contract_generate). This violates single-responsibility and forces agents to reason about implicit side effects. Each tool should do one thing; let agents compose them.
Descriptions lack WHEN-to-use guidance. 'Seal any payload into the SnapKitty WORM chain' explains WHAT but not WHEN an agent should call this vs. another tool. No dependency hints or prerequisites stated.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
No error handling or recovery guidance. Tools do not document what happens on failure (e.g., Ollama unreachable, invalid model, WORM file corruption). No retryability classification or actionable error messages.
Parameter constraints are weak. 'label' in worm_seal accepts any string (no enum, no length limit); 'capabilities' array has no item type or constraint; 'model' defaults to 'nemotron' but no validation that the model exists. LLMs will pass invalid values.