Skip to main content
Glama
Decision State MCP

Decision State MCP

by Koolercat

Decision State MCP

Decision State is a small MCP server for keeping project decisions outside the chat context while still making them easy for Claude Code or Codex to retrieve.

It is intentionally not a planner or executor. It only stores compact, decision-relevant state: goals, constraints, facts, assumptions, risks, decisions, and reflections.

Tools

  • get_state: return the current state summary and record counts.

  • update_state: apply a JSON merge patch to .claude-state/state.json.

  • record_evidence: save normalized evidence sources, findings, limitations, and confidence.

  • record_decision: save a structured decision under .claude-state/decisions/.

  • get_task_context: return compact state and matching prior records for a task.

  • search_state: search prior decisions, evidence, reflections, and sessions.

  • get_session: return the active decision session.

  • reflect_outcome: record what happened after a decision or implementation.

Related MCP server: dev-memory-mcp

Local Use

Install dependencies:

npm install

Run the server over stdio:

npm start -- --state-dir .claude-state

The default state directory is .claude-state relative to the process working directory. You can also set DECISION_STATE_DIR.

Claude Code MCP

From a project where you want the state to live:

claude mcp add --transport stdio decision-state -- node C:\Users\ZCX\Documents\mcp-state\server\index.js --state-dir .claude-state

State Layout

.claude-state/
  state.json
  decisions/
  evidence/
  sessions/
  briefs/
  reflections/
  updates/

Keep this state compact. Do not store raw conversation dumps, private secrets, or full source files.

Evidence Shape

Evidence is normalized into a compact structure inspired by Spice:

{
  "summary": "Why this evidence matters",
  "sources": [
    {
      "source_id": "file:src/auth.ts",
      "source_type": "file",
      "title": "auth module",
      "path": "src/auth.ts",
      "verification_status": "verified_by_agent"
    }
  ],
  "findings": [
    {
      "text": "Auth token validation is centralized in src/auth.ts.",
      "source_refs": ["file:src/auth.ts"],
      "confidence": "high"
    }
  ],
  "limitations": ["Only inspected auth files"],
  "confidence": "medium"
}

record_decision accepts either legacy evidence findings or an evidence_context object. When evidence is present, the server writes a separate evidence artifact, links it to the decision, updates the active session, and creates a markdown brief under .claude-state/briefs/.

Available Tools

8 tools
get_sessionGet Decision SessionA

Return the active session or a requested session record.

Inputs: session_id.

get_stateGet Decision StateB

Return the current project state summary and record counts.

Inputs: no named parameters.

get_task_contextGet Task ContextC

Return compact decision-relevant state for a specific task.

Inputs: task (required), limit.

record_decisionRecord DecisionC

Persist a structured decision and update recent_decisions.

Inputs: problem (required), options (required), selected (required), rationale (required), +6 more.

record_evidenceRecord EvidenceC

Persist normalized evidence sources, findings, limitations, and confidence.

Inputs: summary, sources, findings, limitations, +3 more.

reflect_outcomeReflect OutcomeC

Record the outcome of a previous decision or implementation.

Inputs: status (required), summary (required), outcome (required), decision_id, +3 more.

search_stateSearch Decision StateC

Search prior decisions and reflections by query text.

Inputs: query, limit.

update_stateUpdate Decision StateB

Apply a JSON merge patch to state.json and record why the state changed.

Inputs: patch (required), reason (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

    TDQS

    B3.2/5.0

    Scored across 8 tools

    Disambiguation5/5

    Each tool targets a distinct operation or entity: session, state, task context, decision, evidence, outcome, search, and state update. No two tools have overlapping purposes, ensuring clear differentiation for an agent.

    Naming Consistency4/5

    Most tools follow a verb_noun pattern with 'get_' for retrieval and 'record_' for persistence, but 'reflect_outcome' deviates from the 'record_' convention. Overall, the naming is predictable and readable.

    Tool Count5/5

    With 8 tools, the set is well-scoped for a decision state management server. Each tool serves a clear purpose without excess or deficiency.

    Completeness4/5

    The tools cover the core lifecycle: reading state, adding decisions/evidence/outcomes, searching, and updating. Minor gaps exist (e.g., no explicit get_decision or update/delete for decisions), but the surface is largely complete for the domain.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Persistent memory MCP server for Claude Code that captures and recalls project context across sessions, eliminating the need to re-explain architecture and decisions daily.
      98 npm
      1
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      MCP server providing structured continuity memory for AI coding agents, tracking decisions, open loops, and session state in local SQLite. Enables agents to resume work from verified state across sessions without replaying transcripts.
      17
      Apache 2.0
    • A
      license
      A
      quality
      D
      maintenance
      A zero-dependency MCP server for cross-session memory recall in Claude Code. Provides lexical search, listing, and retrieval of past session memories to avoid re-explaining context.
      3
      8 npm
      MIT