kuma
Integrates ESLint for linting via the static_analysis tool, parsing output into structured results.
Provides tools for viewing commit history and diffs, and includes safety measures like blocking dangerous git commands such as git push --force.
Integrates with npm for package management detection in project conventions and blocks dangerous npm publish commands.
Supports pnpm via workspace detection in monorepo awareness features.
Integrates Prettier for code formatting checks via the static_analysis tool.
Integrates Ruff for Python linting via the static_analysis tool.
Runs TypeScript static analysis (type checking) via the static_analysis tool and provides LSP-based queries with regex fallback.
Supports Yarn via workspace detection in monorepo awareness features.
Safety-first context & orchestration engine for AI coding agents.
Works with any MCP-compatible agent: Claude Code, Cursor, Windsurf, Zed, and more.
What is Kuma?
Kuma is an MCP (Model Context Protocol) server that acts as a pre-modification safety layer for AI coding agents. Before an agent touches your code, Kuma enforces a research and safety pipeline — like a pre-flight checklist for code changes.
The Problem: AI agents often modify code without understanding the full context — missing dependencies, breaking related features, or repeating past mistakes.
The Solution: Kuma is a shadow memory that injects "where is this file fragile and why is it written this way" right before the agent touches it:
🪄 Auto-inject hooks — gotchas/decisions/history injected before every edit, zero extra steps
🧠 Knowledge graph — SQLite-based derived cache (hash-verified, never stale)
📝 Decision memory — ADR-style decision tracking across sessions
📊 Kuma Studio — Visual dashboard for gotchas, decisions, and shadow-memory metrics
Related MCP server: repo-seatbelt
Quick Start
⚡ Universal 1-Liner (Auto-detects your IDE/Agent)
curl -fsSL https://raw.githubusercontent.com/plumpslabs/kuma/main/install.sh | bash🧩 Or Install as a Native Plugin
Claude Code Marketplace:
/plugin marketplace add plumpslabs/kuma /plugin install kuma@plumpslabs-kumaAntigravity CLI (AGY):
agy plugin add https://github.com/plumpslabs/kumaVia NPX (Zero Install):
npx @plumpslabs/kuma init --all
📖 See INSTALL.md for the complete provider matrix (Cursor, Windsurf, OpenCode, Copilot, Zed, Cline, Aider, etc.).
Core Architecture: 3 Pipeline-Driven Tools
Kuma exposes 3 coarse-grained tools with 15 core actions — the full agent surface. Anything else (impact, navigate, changes, digest, drift, resume, mine, session, delete_node, clear, goal_progress, check, audit, security, gc, ast, validate, gotcha_staleness) was removed — not hidden, gone — so the agent never has to choose from 30+ options and there is no dead surface to maintain.
🧠 kuma_context — Context & Research
Action | Purpose | Impact |
| Lean project brief + restore session + branch tracking | 🔴 Required first |
| 5-step pipeline: cache → graph → scan → impact → decision | 🔴 Required before edits |
| Monorepo package topology & workspace boundary mapping | 🔴 High |
| Concept-level subsystem clusters with typed relationship verbs | 🔴 High |
| Compressed AST code outline (85-93% token reduction) | 🔴 High |
| Anti-duplication helper discovery before writing new code | 🔴 High |
| Blast radius analysis with PageRank centrality scoring | 🔴 High |
| Why is this file written this way (cross-session trace) | 🔴 High |
| Read a recorded architecture flow | 🔴 High |
💾 kuma_memory — Decision & Knowledge
Action | Purpose | Impact |
| Record bugs/quirks + lifecycle ( | 🔴 Exponential |
| Record architecture flow (max 5 core files) | 🔴 Exponential |
| Record ADR-style decision with rationale | 🔴 Exponential |
| Save research findings to cache | 🟡 Linear |
| Quick lookup of memory + knowledge graph | 🟡 Linear |
🛡️ kuma_safety — Safety & Verification
Action | Purpose | Impact |
| Detect anti-patterns, drift, runaway loops | 🔴 Required |
| Post-edit blast radius & affected test targeting (<50ms static resolution) | 🔴 High |
| Labeled snapshot before risky work | 🟡 Linear |
| Restore a labeled snapshot | 🟡 Linear |
Architecture
Kuma exposes exactly 3 coarse-grained tools — the agent picks an action, Kuma runs the internal workflow:
Tool | Core Actions | Purpose |
|
| Load project context, understand unfamiliar code |
|
| Persistent knowledge that saves future sessions |
|
| Pre-risk guard, post-edit blast radius verification, snapshot/restore |
Everything else is an internal action — not exposed to the agent. The agent uses its own native tools for editing, searching, and execution — Kuma is memory & safety, not a code manager.
What Kuma Provides
Knowledge Graph — SQLite + FTS5 full-text search (derived cache)
Session Memory — track tool calls, recordings, and efficiency per session
Guard System — real-time monitoring with blocking warnings for anti-patterns
Shadow Injection — gotchas injected before edits via hooks (zero token waste when clean)
Kuma Studio — visual dashboard with graph, gotchas, and injection metrics
Checkpoint/Rollback — atomic snapshots before major refactors
Kuma Studio
Kuma Studio is a streamlined, modular web dashboard for visualizing your codebase intelligence, gotchas shield, and workspace topology without visual clutter.
Features
🛡️ Gotcha Shield — Filter gotchas by status (
active,verified,resolved), severity, and copy workarounds in 1 click🔀 Domain Sequence Flows — Linear architecture hops and execution sequences
📦 Workspace & Blast Radius — Monorepo package dependency matrix and real-time blast radius impact simulator
⚡ Health & Efficiency — Session metrics, estimated hours saved, verification pass rates, and injection statistics
🕸️ Calm Knowledge Graph — Clean node-link visualization with optional physics simulation and depth controls
Usage
# Start Kuma Studio
kuma studio
# Or via npx
npx -y @plumpslabs/kuma studioStudio runs at http://localhost:3322 and provides:
Real-time graph visualization
Copy report functionality for activity analysis
Node detail modals with relations and gotchas
Search and filter capabilities
Physics-based graph layout with depth controls
Knowledge Graph Schema
Kuma builds a comprehensive knowledge graph with these node types:
Node Type | Description |
| High-level module (e.g., Auth, Billing) |
| Architecture flow between files |
| Known bug or quirk |
| ADR-style decision with rationale |
| Function or method |
| Class definition |
| UI component |
| Source file |
| API endpoint |
| Test file |
| Research cache entry |
Edge types include: contains, flows_through, owns, explains.
Safety Layer
Audit Trail
Every safety check is logged to the audit trail:
Tool name and parameters
Risk level (low/medium/high/critical)
Allowed/blocked decision
Duration and metadata
Workflow
A typical Kuma-powered session follows this flow:
1. INIT → kuma_context({ action: 'init' })
Load project brief, restore session context
2. RESEARCH → kuma_context({ action: 'research', scope: '<area>' })
5-step pipeline: cache → graph → impact → decision → safety
3. GUARD → kuma_safety({ action: 'guard' })
Check for anti-patterns, drift, runaway loops
4. EDIT → Agent modifies code (native tools)
5. RECORD → kuma_memory({ action: 'gotcha' | 'arch_flow' | 'decision' })
Record what was learned for future sessions
6. VERIFY → kuma_safety({ action: 'verify' })
Auto-run scoped tests + validation
7. CHECKPOINT → kuma_safety({ action: 'checkpoint', label: 'post-<feature>' })
Snapshot once stable — restore with rollback_label if neededPer-Project Context Model
Kuma stores all context locally in .kuma/:
.kuma/
├── kuma.db # SQLite knowledge graph (WASM) — nodes, edges, research cache, changes
├── init.md # Project behavioral rules (generated by `kuma init`)
├── memory.json # Session state + metrics (auto)
├── auto-gotcha.json # Self-learning loop state (auto)
├── policy.yml # OPTIONAL safety policy — only read if you create it
├── memories/ # Decision log markdown (decisions.md)
├── checkpoints/ # Atomic snapshots (label/ with kuma.db + files/)Hooks are registered in
.claude/settings.json(PreToolUse) — not stored under.kuma/.
Research cache is not a folder — it lives in the
research_cachetable insidekuma.db.
Key principle: Context is per-project, per-agent. No shared state between projects.
Why Kuma?
Problem | Without Kuma | With Kuma |
Context | Agent forgets project-specific patterns | Knowledge graph persists across sessions |
Safety | Agent may break critical code | Policy engine blocks risky operations |
Impact | Agent doesn't know what's affected | Impact analysis traces dependencies |
Coordination | Multiple agents conflict | Per-agent session state + audit trail avoid collisions |
Memory | Agent repeats past mistakes | Decision memory + gotchas prevent loops |
Reversibility | Hard to undo changes | Checkpoint snapshots + rollback_label |
Staleness | Knowledge becomes outdated | Drift detection + gotcha staleness checks flag stale data |
Installation
# Global install
npm install -g @plumpslabs/kuma
# Or use npx (no install needed)
npx -y @plumpslabs/kuma
# With pnpm
pnpm add -g @plumpslabs/kumaRequirements
Node.js >= 18.0.0
No native dependencies (uses WASM for SQLite)
CLI Commands
# Start MCP server (default)
kuma
# Start Kuma Studio dashboard
kuma studio
# Initialize a project
kuma init
# Show version
kuma --version
# Show help
kuma --helpConfiguration
MCP Client Configuration
Add to your MCP client config (e.g., Claude Desktop):
{
"mcpServers": {
"kuma": {
"command": "npx",
"args": ["-y", "@plumpslabs/kuma"]
}
}
}Environment Variables
Variable | Description | Default |
| Custom database path |
|
| Custom policy file |
|
| Studio server port |
|
Development
# Clone the repo
git clone https://github.com/plumpslabs/kuma.git
cd kuma
# Install dependencies
pnpm install
# Build
pnpm run build:all
# Run tests
pnpm test
# Start studio in dev mode
pnpm run studio:devPower Curve: What to Record
What to Record | When | Why | Impact |
| After tracing a complete flow | Saves 5-10 files next session | 🔴 Exponential |
| IMMEDIATELY when finding bugs | Prevents re-discovery | 🔴 Exponential |
| When choosing between options | Preserves rationale | 🔴 Exponential |
| When identifying a module | Creates owns edges to files | 🔴 Exponential |
| After exploring an area | Creates search cache | 🔴 Exponential |
Function/class nodes | Skip | Agent can grep/glob | 🟢 Skip |
Import edges | Skip | Agent can read imports | 🟢 Skip |
Visual graph | Skip | For humans, not AI | 🟢 Skip |
License
MIT — use freely in personal and commercial projects.
Community
GitHub: github.com/plumpslabs/kuma
Available Tools
6 toolskuma_contextA
Context & memory recall. Call FIRST each session. Lean — each call returns only what you need.
CORE ACTIONS (use these): init (start of session: project brief + session state), research (before editing unfamiliar code), history (why is this file written this way), flow (read a recorded architecture flow), map (repository topology), impact (blast radius analysis), cluster (concept-level subsystem nodes), skeleton (compressed AST outline omitting bodies), reuse (discover existing helpers before writing duplicate code).
| Name | Required | Description | Default |
|---|---|---|---|
| goal | No | Current goal (for init) | |
| scope | No | Research scope or target for impact/skeleton/reuse | |
| action | Yes | init=project brief + session restore, research=research pipeline, history=file rationale + fresh gotchas, flow=read recorded domain flow, map=repo topology, impact=blast radius, cluster=concept subsystem architecture, skeleton=compressed AST outline, reuse=discover existing helpers | |
| target | No | Target symbol/file for history/flow/impact/skeleton/reuse |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It adds one useful behavioral trait ('Lean — each call returns only what you need'), but says nothing about whether 'init' mutates/persists session state, permission requirements, or rate limits, which is thin for an unannotated multi-action tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the single most important instruction ('Call FIRST each session'), then lists actions in a scannable parenthetical format. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, it covers the action surface well and hints at output size ('lean'). It is slightly incomplete on the mutation/return-behavior side and on how the goal/scope/target parameters pair with specific actions, though the schema covers those parameters fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the action enum already documents every action value, so the schema does the heavy lifting. The description's action list largely restates the enum description rather than adding syntax, format, or interaction detail (e.g. how scope and target relate to a given action).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Context & memory recall') and enumerates all nine concrete actions, so the agent knows exactly what the tool provides. It does not, however, distinguish itself from the sibling tools kuma_memory / kuma_safety, which overlap on 'memory recall'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives strong sequencing guidance ('Call FIRST each session') plus per-action context such as research 'before editing unfamiliar code', history 'why is this file written this way', and reuse 'before writing duplicate code'. It stops short of naming alternatives or when-not-to-use conditions against the sibling memory/safety tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kuma_kuma_contextA
Context & memory recall. Call FIRST each session. Lean — each call returns only what you need.
CORE ACTIONS (use these): init (start of session: project brief + session state), research (before editing unfamiliar code), history (why is this file written this way), flow (read a recorded architecture flow), map (repository topology), impact (blast radius analysis), cluster (concept-level subsystem nodes), skeleton (compressed AST outline omitting bodies), reuse (discover existing helpers before writing duplicate code).
| Name | Required | Description | Default |
|---|---|---|---|
| goal | No | Current goal (for init) | |
| scope | No | Research scope or target for impact/skeleton/reuse | |
| action | Yes | init=project brief + session restore, research=research pipeline, history=file rationale + fresh gotchas, flow=read recorded domain flow, map=repo topology, impact=blast radius, cluster=concept subsystem architecture, skeleton=compressed AST outline, reuse=discover existing helpers | |
| target | No | Target symbol/file for history/flow/impact/skeleton/reuse |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that output is lean ('each call returns only what you need') and that init restores session state, but says nothing about read-only vs mutating behavior, permissions, or side effects across the nine actions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the identity and the session-first directive before the action list, and the bracketed action glosses are compact. Slightly verbose in restating all nine actions, but each line earns its place as a routing hint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nine-action multiplexed tool with no output schema, the description covers every action and key parameters adequately; the schema supplies the enum detail. It is nearly complete, missing only the behavioral/side-effect profile that annotations would otherwise carry.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the action enum values are already documented in the schema, so the description largely restates them. It adds marginal value ('skeleton = compressed AST outline omitting bodies') but no new semantics for goal, scope, or target beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('context & memory recall') and enumerates nine concrete actions, so an agent knows the tool's domain. It does not differentiate itself from the near-identically named sibling kuma_context, which leaves ambiguity about which context tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit timing cue ('Call FIRST each session') and embeds when-to-use hints per action, e.g. research 'before editing unfamiliar code', history for file rationale, and reuse 'before writing duplicate code'. It never names an alternative tool or states when NOT to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kuma_kuma_memoryA
Persistent knowledge. Record what matters, skip what doesn't. This is what saves time in future sessions. Don't record what grep/glob answers faster (functions, imports, types, components).
CORE ACTIONS (use these): gotcha (IMMEDIATELY when you find a bug/quirk), decision (when choosing between options), arch_flow (after tracing a complete flow, max 5 core files), research_save (after exploring an area), search (quick lookup of memory + knowledge graph), gotcha_resolve (archive fixed bugs), test_outcome (record changed files + failed tests to train test selection).
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Gotcha ID for resolution or deprecation | |
| limit | No | Result limit for search | |
| query | No | Search query for search action | |
| scope | No | File path for gotcha — or scope for research_save/search | |
| title | No | Decision title (optional if content/target provided) | |
| action | Yes | gotcha=record bug/quirk, decision=ADR, arch_flow=record architecture flow, research_save=save findings, search=quick memory+graph lookup, gotcha_resolve=archive fixed bug, test_outcome=record test results for predictive selection | |
| record | No | JSON record string for research_save | |
| status | No | Gotcha severity (low|medium|high|critical) or status (resolved|deprecated) | |
| target | No | Target file, gotcha ID, or component | |
| content | No | Content/notes for research_save / gotcha description / arch_flow record | |
| context | No | Decision context | |
| outcome | No | Decision outcome (default: implemented) | |
| severity | No | Gotcha severity (low|medium|high|critical) | |
| rationale | No | Decision rationale (optional if content provided) | |
| confidence | No | Confidence for research_save (0-1) | |
| description | No | Gotcha workaround / rationale | |
| trigger_command | No | Gotcha trigger: shell command that hits this gotcha |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose useful traits that go beyond the schema: records persist across sessions, arch_flow is scoped to a max of 5 core files, and gotcha_resolve archives rather than deletes. It says nothing about permission needs, overwrite/dedupe behavior, or failure modes, which is a real gap for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the value proposition, then a tight action list with parenthetical triggers; every sentence earns its place. Slight redundancy in restating the action semantics that the enum already defines, but no padding overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 17-parameter, 7-action tool with no annotations and no output schema, the description covers action selection well but leaves important holes: the format of the 'record' JSON string for research_save, which parameters are required per action, and what any action returns. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the action enum already documents each mode, so the schema does the heavy lifting — baseline 3. The description adds action-level intent but no parameter linkage (e.g., which params pair with gotcha_resolve or research_save's 'record' JSON string).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (persistent knowledge/memory store) and enumerates the seven core actions, so an agent understands it is a write/read memory tool with per-action intent. It does not, however, distinguish itself from the confusingly similar siblings kuma_memory and kuma_kuma_context, which matters a lot when names differ by one token.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Strong per-action triggers are given ('IMMEDIATELY when you find a bug/quirk', 'when choosing between options', 'after tracing a complete flow, max 5 core files'), and there is an explicit exclusion: don't record what grep/glob answers faster. What is missing is routing against alternatives — there is no mention of when to use a sibling such as kuma_memory or kuma_context instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kuma_kuma_safetyA
Safety & verification. Use at task boundaries, not on every edit.
CORE ACTIONS (use these): guard (before risky work: anti-patterns, drift, loops), verify (after edits: scoped tests + validation), checkpoint + rollback_label (the one rollback mechanism: snapshot before risky work, restore after), cost (cost-per-tool ledger).
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Force re-run even if cache is fresh or rate limited (verify) | |
| label | No | Checkpoint label for checkpoint/rollback_label | |
| scope | No | Scope for verify (e.g. 'auth', file path) | |
| action | Yes | guard=anti-patterns/drift/loops before risky work, verify=scoped tests after edits, checkpoint=labeled snapshot before risky work, rollback_label=restore a labeled snapshot, cost=cost-per-tool ledger | |
| target | No | Target test file or scope for verify | |
| command | No | Custom test command to run during verify | |
| timeout | No | Custom timeout in seconds for verify | |
| guardGoal | No | Goal for guard check | |
| timeoutMs | No | Custom timeout in milliseconds for verify (default: 60000) | |
| guardCheck | No | Guard check type | |
| description | No | Description for checkpoint |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses meaningful traits such as the pairing of checkpoint+rollback_label as 'the one rollback mechanism' and implies state mutation/restore, but it never states permissions required, whether rollback destroys uncommitted work, or that guard/verify involve caching and rate limiting (only hinted at in the schema's 'force' description).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The critical scoping rule ('task boundaries, not on every edit') is front-loaded, and the action list is compact and scannable. It is slightly redundant with the action enum descriptions in the schema, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter, multi-action tool with no annotations and no output schema, the description covers the action semantics adequately but says nothing about what verify, cost, or guard return, nor about the snapshot/restore lifecycle details an agent would need. It is minimum-viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the action enum descriptions already spell out each action, so the baseline is 3. The description restates the action meanings largely in parallel with the schema and adds only the workflow relationship (checkpoint pairs with rollback_label); it does not clarify the other nine parameters beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line names the domain ('Safety & verification') and the CORE ACTIONS block enumerates five concrete operations with their roles, so an agent knows this is a safety/verification toolkit. It is clear on what the tool does, but it never distinguishes itself from the sibling 'kuma_safety' or explains why two near-identically-named safety tools exist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit timing guidance is given ('Use at task boundaries, not on every edit') plus per-action triggers ('before risky work', 'after edits', 'snapshot before risky work'). It also implicitly excludes overuse. What is missing is any routing advice versus the sibling tools, but the when-to-use guidance itself is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kuma_memoryB
Persistent knowledge. Record what matters, skip what doesn't. This is what saves time in future sessions. Don't record what grep/glob answers faster (functions, imports, types, components).
CORE ACTIONS (use these): gotcha (IMMEDIATELY when you find a bug/quirk), decision (when choosing between options), arch_flow (after tracing a complete flow, max 5 core files), research_save (after exploring an area), search (quick lookup of memory + knowledge graph), gotcha_resolve (archive fixed bugs), test_outcome (record changed files + failed tests to train test selection).
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Gotcha ID for resolution or deprecation | |
| limit | No | Result limit for search | |
| query | No | Search query for search action | |
| scope | No | File path for gotcha — or scope for research_save/search | |
| title | No | Decision title (optional if content/target provided) | |
| action | Yes | gotcha=record bug/quirk, decision=ADR, arch_flow=record architecture flow, research_save=save findings, search=quick memory+graph lookup, gotcha_resolve=archive fixed bug, test_outcome=record test results for predictive selection | |
| record | No | JSON record string for research_save | |
| status | No | Gotcha severity (low|medium|high|critical) or status (resolved|deprecated) | |
| target | No | Target file, gotcha ID, or component | |
| content | No | Content/notes for research_save / gotcha description / arch_flow record | |
| context | No | Decision context | |
| outcome | No | Decision outcome (default: implemented) | |
| severity | No | Gotcha severity (low|medium|high|critical) | |
| rationale | No | Decision rationale (optional if content provided) | |
| confidence | No | Confidence for research_save (0-1) | |
| description | No | Gotcha workaround / rationale | |
| trigger_command | No | Gotcha trigger: shell command that hits this gotcha |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It discloses that the store is persistent and saves time in future sessions, but it omits critical details such as mutation semantics, permissions, side effects, or write safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise but includes vague, motivational phrases ('Record what matters, skip what doesn't', 'This is what saves time in future sessions') that do not add actionable information. The action list is structured with a header, but the overall text is not as front-loaded as it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 actions, 17 parameters, no output schema, no annotations), the description adequately covers action usage but leaves significant gaps in behavioral context and return value expectations. It is sufficient to guide action selection but not to fully understand the tool's operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description adds usage triggers for each action but does not clarify parameter formats or syntax beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description defines the tool as a persistent knowledge store and enumerates its core actions, making the tool's purpose reasonably clear. However, it does not differentiate this tool from its siblings (e.g., kuma_context, kuma_safety), so an agent has no explicit guidance on when to choose this tool over others.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit triggers for each action (e.g., 'gotcha' immediately when you find a bug/quirk, 'decision' when choosing between options) and a when-not rule for what to skip ('Don't record what grep/glob answers faster'). It does not address when to use this tool versus sibling tools, but the action-level guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kuma_safetyA
Safety & verification. Use at task boundaries, not on every edit.
CORE ACTIONS (use these): guard (before risky work: anti-patterns, drift, loops), verify (after edits: scoped tests + validation), checkpoint + rollback_label (the one rollback mechanism: snapshot before risky work, restore after), cost (cost-per-tool ledger).
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Force re-run even if cache is fresh or rate limited (verify) | |
| label | No | Checkpoint label for checkpoint/rollback_label | |
| scope | No | Scope for verify (e.g. 'auth', file path) | |
| action | Yes | guard=anti-patterns/drift/loops before risky work, verify=scoped tests after edits, checkpoint=labeled snapshot before risky work, rollback_label=restore a labeled snapshot, cost=cost-per-tool ledger | |
| target | No | Target test file or scope for verify | |
| command | No | Custom test command to run during verify | |
| timeout | No | Custom timeout in seconds for verify | |
| guardGoal | No | Goal for guard check | |
| timeoutMs | No | Custom timeout in milliseconds for verify (default: 60000) | |
| guardCheck | No | Guard check type | |
| description | No | Description for checkpoint |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does reasonably well: it discloses that guard checks anti-patterns/drift/loops, verify runs scoped tests plus validation, and checkpoint/rollback is 'the one rollback mechanism' that snapshots and restores. It stops short of stating side effects (filesystem snapshots), persistence, or permission/caching behavior — the cache/rate-limit hint only surfaces in the schema's force param.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, then a compact action list where each parenthetical earns its place by adding timing or output context. Slightly dense but no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter, no-annotation, no-output-schema dispatcher, the description supplies the action routing and timing that the schema cannot. It omits any mention of what the actions return or of side effects such as snapshot creation, which leaves a small but real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including a per-value description on the action enum, so the structured data already documents every parameter. The description's action glosses largely restate the schema's enum description, adding little new syntax or format meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific domain (safety & verification) and enumerates the five core actions with a one-phrase purpose each, so an agent knows exactly what this dispatcher does. It does not explicitly differentiate itself from siblings like kuma_context or kuma_memory, though the safety/verification framing implies the split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit when ('use at task boundaries') and an explicit when-not ('not on every edit'), plus per-action timing: guard before risky work, verify after edits, checkpoint before risky work, rollback after. This is exactly the routing guidance a multi-action tool needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v2.4.25- First observed
kuma_context - First observed
kuma_kuma_context - First observed
kuma_kuma_memory - First observed
kuma_kuma_safety - First observed
kuma_memory - First observed
kuma_safety
TDQS
Scored across 6 tools
The three functional groups (context, memory, safety) are reasonably distinct from each other, but each one is duplicated as an identical twin with a byte-for-byte identical description (kuma_context vs kuma_kuma_context, etc.). An agent has no basis to choose between a tool and its clone, guaranteeing arbitrary misselection in half the available surface.
Names follow a readable kuma_verb/noun snake_case pattern, but the redundant 'kuma_kuma_' prefix on three tools breaks the convention and looks like an accidental double-registration rather than a deliberate scheme. Consistent enough to parse, inconsistent enough to mislead.
Six tools would be a fine scope for this workflow, but three of them are exact duplicates, leaving only three effective tools covering context, memory, and safety. The apparent count overstates the real surface, though three genuine umbrellas is acceptable for the stated purpose.
Each umbrella tool exposes a rich action set (init/research/history/map/impact, gotcha/decision/search, guard/verify/checkpoint/rollback), covering the session lifecycle from recall through record to verification and rollback. Coverage looks solid; the main gap is that the duplicate twins add no capability, only noise.
Maintenance
Related MCP Connectors
AgentGuard — 20-tool AI safety MCP: policy preflight, risk scoring, audit logging, rate limits.
DeFi safety for AI agents: signature + tx checks, sanctions, rug checks, launch feed. 26 tools.
Memory, reflection and safety for AI agents. Hosted or local, no vector database.
Deterministic runtime safety for AI agents: scan PII, gate tool actions, verify LLM output.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides sandboxed code execution for AI agents with support for Python, JavaScript, and shell commands. Includes comprehensive safety features like destructive pattern blocking, timeout protection, and restricted file access for secure production use.10 npm43 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceRuntime safety guardrails for AI coding agents. Checks file access, validates shell commands, and scores your repo's AI safety — all via MCP.5 npm8MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI agents with 25 security analysis tools including vulnerability scanning, package hallucination detection, prompt injection firewall, and CI/CD integration.1MIT
- AlicenseAqualityDmaintenanceAn MCP server that gives AI agents geometric spatial awareness of web page layouts using Playwright, enabling detection of visual occlusion, layout shifts, and spatial relationships.644 npmMIT