Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Decision State

FreeNot checked

A small MCP server that stores and retrieves compact decision-relevant state (goals, constraints, facts, decisions) outside the chat context, enabling easy retr

GitHubEmbed

About

A small MCP server that stores and retrieves compact decision-relevant state (goals, constraints, facts, decisions) outside the chat context, enabling easy retrieval for Claude Code or Codex.

README

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.

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

from github.com/Koolercat/mcp-state

Installing Decision State

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/Koolercat/mcp-state

FAQ

Is Decision State MCP free?

Yes, Decision State MCP is free — one-click install via Unyly at no cost.

Does Decision State need an API key?

No, Decision State runs without API keys or environment variables.

Is Decision State hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Decision State in Claude Desktop, Claude Code or Cursor?

Open Decision State on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Decision State with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All communication MCPs