Skip to main content
Glama

Safety-first context & orchestration engine for AI coding agents.

npm license: MIT node: >=18

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-kuma
  • Antigravity CLI (AGY):

    agy plugin add https://github.com/plumpslabs/kuma
  • Via 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

init

Lean project brief + restore session + branch tracking

🔴 Required first

research

5-step pipeline: cache → graph → scan → impact → decision

🔴 Required before edits

map

Monorepo package topology & workspace boundary mapping

🔴 High

cluster

Concept-level subsystem clusters with typed relationship verbs

🔴 High

skeleton

Compressed AST code outline (85-93% token reduction)

🔴 High

reuse

Anti-duplication helper discovery before writing new code

🔴 High

impact

Blast radius analysis with PageRank centrality scoring

🔴 High

history

Why is this file written this way (cross-session trace)

🔴 High

flow

Read a recorded architecture flow

🔴 High

💾 kuma_memory — Decision & Knowledge

Action

Purpose

Impact

gotcha

Record bugs/quirks + lifecycle (active → resolved → deprecated)

🔴 Exponential

arch_flow

Record architecture flow (max 5 core files)

🔴 Exponential

decision

Record ADR-style decision with rationale

🔴 Exponential

research_save

Save research findings to cache

🟡 Linear

search

Quick lookup of memory + knowledge graph

🟡 Linear

🛡️ kuma_safety — Safety & Verification

Action

Purpose

Impact

guard

Detect anti-patterns, drift, runaway loops

🔴 Required

verify

Post-edit blast radius & affected test targeting (<50ms static resolution)

🔴 High

checkpoint

Labeled snapshot before risky work

🟡 Linear

rollback_label

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

kuma_context

init, research, map, cluster, skeleton, reuse, impact, history, flow

Load project context, understand unfamiliar code

kuma_memory

gotcha, decision, arch_flow, research_save, search

Persistent knowledge that saves future sessions

kuma_safety

guard, verify, checkpoint, rollback_label

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 studio

Studio 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

feature

High-level module (e.g., Auth, Billing)

arch_flow

Architecture flow between files

gotcha

Known bug or quirk

decision

ADR-style decision with rationale

function

Function or method

class

Class definition

component

UI component

file

Source file

api_route

API endpoint

test

Test file

research

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 needed

Per-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_cache table inside kuma.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/kuma

Requirements

  • 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 --help

Configuration

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

KUMA_DB_PATH

Custom database path

.kuma/kuma.db

KUMA_POLICY_PATH

Custom policy file

.kuma/policy.yml

KUMA_STUDIO_PORT

Studio server port

3322


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:dev

Power Curve: What to Record

What to Record

When

Why

Impact

arch_flow

After tracing a complete flow

Saves 5-10 files next session

🔴 Exponential

gotcha

IMMEDIATELY when finding bugs

Prevents re-discovery

🔴 Exponential

decision

When choosing between options

Preserves rationale

🔴 Exponential

feature

When identifying a module

Creates owns edges to files

🔴 Exponential

research_save

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


Available Tools

6 tools
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).

NameRequiredDescriptionDefault
goalNoCurrent goal (for init)
scopeNoResearch scope or target for impact/skeleton/reuse
actionYesinit=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
targetNoTarget symbol/file for history/flow/impact/skeleton/reuse

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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).

NameRequiredDescriptionDefault
goalNoCurrent goal (for init)
scopeNoResearch scope or target for impact/skeleton/reuse
actionYesinit=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
targetNoTarget symbol/file for history/flow/impact/skeleton/reuse

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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).

NameRequiredDescriptionDefault
idNoGotcha ID for resolution or deprecation
limitNoResult limit for search
queryNoSearch query for search action
scopeNoFile path for gotcha — or scope for research_save/search
titleNoDecision title (optional if content/target provided)
actionYesgotcha=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
recordNoJSON record string for research_save
statusNoGotcha severity (low|medium|high|critical) or status (resolved|deprecated)
targetNoTarget file, gotcha ID, or component
contentNoContent/notes for research_save / gotcha description / arch_flow record
contextNoDecision context
outcomeNoDecision outcome (default: implemented)
severityNoGotcha severity (low|medium|high|critical)
rationaleNoDecision rationale (optional if content provided)
confidenceNoConfidence for research_save (0-1)
descriptionNoGotcha workaround / rationale
trigger_commandNoGotcha trigger: shell command that hits this gotcha

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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).

NameRequiredDescriptionDefault
forceNoForce re-run even if cache is fresh or rate limited (verify)
labelNoCheckpoint label for checkpoint/rollback_label
scopeNoScope for verify (e.g. 'auth', file path)
actionYesguard=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
targetNoTarget test file or scope for verify
commandNoCustom test command to run during verify
timeoutNoCustom timeout in seconds for verify
guardGoalNoGoal for guard check
timeoutMsNoCustom timeout in milliseconds for verify (default: 60000)
guardCheckNoGuard check type
descriptionNoDescription for checkpoint

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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).

NameRequiredDescriptionDefault
idNoGotcha ID for resolution or deprecation
limitNoResult limit for search
queryNoSearch query for search action
scopeNoFile path for gotcha — or scope for research_save/search
titleNoDecision title (optional if content/target provided)
actionYesgotcha=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
recordNoJSON record string for research_save
statusNoGotcha severity (low|medium|high|critical) or status (resolved|deprecated)
targetNoTarget file, gotcha ID, or component
contentNoContent/notes for research_save / gotcha description / arch_flow record
contextNoDecision context
outcomeNoDecision outcome (default: implemented)
severityNoGotcha severity (low|medium|high|critical)
rationaleNoDecision rationale (optional if content provided)
confidenceNoConfidence for research_save (0-1)
descriptionNoGotcha workaround / rationale
trigger_commandNoGotcha trigger: shell command that hits this gotcha

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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).

NameRequiredDescriptionDefault
forceNoForce re-run even if cache is fresh or rate limited (verify)
labelNoCheckpoint label for checkpoint/rollback_label
scopeNoScope for verify (e.g. 'auth', file path)
actionYesguard=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
targetNoTarget test file or scope for verify
commandNoCustom test command to run during verify
timeoutNoCustom timeout in seconds for verify
guardGoalNoGoal for guard check
timeoutMsNoCustom timeout in milliseconds for verify (default: 60000)
guardCheckNoGuard check type
descriptionNoDescription for checkpoint

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines5/5

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.

  1. 6 tool updatesv2.4.25
    • First observedkuma_context
    • First observedkuma_kuma_context
    • First observedkuma_kuma_memory
    • First observedkuma_kuma_safety
    • First observedkuma_memory
    • First observedkuma_safety

TDQS

B3.4/5.0

Scored across 6 tools

Disambiguation2/5

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.

Naming Consistency3/5

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.

Tool Count3/5

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.

Completeness4/5

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

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers