claude-augur-mcp

claude-augur-mcp

Enables users to extract and review Claude's plan reasoning in Claude Code by reading plan files and providing a structured template for decisions, tradeoffs, and assumptions.

Category
访问服务器

README

<img align="right" src="claude-augur.svg" alt="claude-augur-mcp" width="220">

claude-augur-mcp

A Model Context Protocol (MCP) server for plan reasoning summaries in Claude Code. Surfaces decisions, tradeoffs, and assumptions as scannable abstracts so you can correct Claude's reasoning at a glance.

<br clear="right">

claude-augur-mcp

npm version License: MIT TypeScript Node.js Claude GitHub stars


Claude's reasoning about plans is invisible. When Claude writes a plan, its decisions, assumptions, and tradeoffs are buried in the document. You have to read the entire thing to find them. If Claude assumed the wrong approach or made a bad tradeoff, you won't know until implementation is underway and something breaks.

Augur reads the plan structure and returns a template that Claude fills with its actual reasoning, inline in the response rather than hidden in a collapsed tool result. You see decisions, assumptions, and tradeoffs at a glance and can correct them before a single line of code is written.

install

Requirements:

Claude Code

From shell:

claude mcp add claude-augur-mcp -- npx claude-augur-mcp

From inside Claude (restart required):

Add this to our global mcp config: npx claude-augur-mcp

Install this mcp: https://github.com/Vvkmnn/claude-augur-mcp

From any manually configurable mcp.json: (Cursor, Windsurf, etc.)

{
  "mcpServers": {
    "claude-augur-mcp": {
      "command": "npx",
      "args": ["claude-augur-mcp"],
      "env": {}
    }
  }
}

There is no npm install required: no external databases, no indexing, only Node.js built-ins for filesystem access.

However, if npx resolves the wrong package, you can force resolution with:

npm install -g claude-augur-mcp

features

1 tool. Plan structure extraction. Template seeding. Inline rendering.

augur_explain

Read a plan file and return a structured template for Claude to fill with its reasoning. Claude renders the abstract inline in its response, not hidden in a collapsed tool result.

Call after writing or editing a plan file:

augur_explain plan_path="/Users/you/.claude/plans/your-plan.md"

MCP returns two content blocks:

Block 1: one-line summary, visible even when the tool result is collapsed.

your-plan.md · 10/18 done

Block 2: template with pre-rendered header, progress, and [FILL] markers.

┌ 📐 my-project · your-plan.md ────────────────────────────────────
│ Build a REST API with authentication, rate limiting,
│ and WebSocket support for real-time notifications.
│
├ Progress ───────────────────────────────────────────────────────
│ Done (10/18): Auth scaffold, Rate limiter + 1 more
│ Next: WebSocket layer + 1 more
│
├ Decisions ──────────────────────────────────────────────────────
│ [FILL: 2-4 decisions, format: "✓ choice — reason"]
│ [child decisions use: "  └ choice — reason"]
│
├ Assumptions ────────────────────────────────────────────────────
│ [FILL: 1-2 assumptions, format: "? statement"]
│
├ Tradeoffs ──────────────────────────────────────────────────────
│ [FILL: 1-2 lines, "+" for pro, "−" for con]
│
├ Reasoning ──────────────────────────────────────────────────────
│ [FILL: 2-3 lines explaining WHY]
└──────────────────────────────────────────────────────────────────

Claude fills the template inline:

┌ 📐 my-project · your-plan.md ────────────────────────────────────
│ Build a REST API with authentication, rate limiting,
│ and WebSocket support for real-time notifications.
│
├ Progress ───────────────────────────────────────────────────────
│ Done (10/18): Auth scaffold, Rate limiter + 1 more
│ Next: WebSocket layer + 1 more
│
├ Decisions ──────────────────────────────────────────────────────
│ ✓ Express over Fastify — team familiarity, middleware ecosystem
│   └ Passport.js for auth — proven, supports OAuth + JWT
│ ✓ Redis for rate limiting — atomic counters, TTL built-in
│ ✓ ws over Socket.io — lighter, no fallback polling needed
│
├ Assumptions ────────────────────────────────────────────────────
│ ? Single Redis instance sufficient for current scale
│ ? WebSocket clients handle reconnection gracefully
│
├ Tradeoffs ──────────────────────────────────────────────────────
│ + Redis rate limiting: sub-ms response, horizontal scaling
│ − Extra infrastructure dependency to operate
│
├ Reasoning ──────────────────────────────────────────────────────
│ Auth must be production-grade from day one — Passport.js
│ handles OAuth/JWT without custom crypto. Redis rate limiting
│ chosen over in-memory because the API will be multi-process.
│ ws chosen over Socket.io to avoid 200KB bundle overhead.
└──────────────────────────────────────────────────────────────────

What gets extracted from the plan file:

Field Source Example
Project name H1 title before : my-project
Purpose First **Primary goal**: line, or first prose paragraph Full text, word-wrapped
Sections H2 headings (excluding Detail: sections) Context, Architecture, ...
Progress ### Step N: headings with - [x] / - [ ] counts Done (10/18): Auth, Rate limiter
Done steps Steps where all items are [x] Capped at 2 names + N more
Next steps Steps with pending items First name + N more

methodology

How claude-augur-mcp reads plans:

                    📐 claude-augur-mcp
                    ━━━━━━━━━━━━━━━━━━━

              Claude writes a plan
                augur_explain
                    │
                    ▼
              ┌─────────────────┐
              │  read plan file │  from disk (read-only)
              │  (session.ts)   │
              └────────┬────────┘
                       │
                       ├── title → project name (before ":")
                       ├── purpose → **Primary goal**: or first prose
                       ├── sections → H2 headings
                       └── progress → ### Step N: with [x]/[ ] counts
                       │
              ┌────────▼────────┐
              │ render template │  left-gutter format
              │ (render.ts)     │  [FILL] markers for Claude
              └────────┬────────┘
                       │
          ┌────────────┴────────────┐
          ▼                         ▼
     block 1                   block 2
     summary                   template
     (visible collapsed)       (Claude renders inline)
          │                         │
          ▼                         ▼
     plan.md · 10/18 done      ┌ 📐 project · plan.md ──
                               │ purpose...
                               ├ Progress ────────────
                               │ Done (10/18): Auth + 1
                               ├ Decisions ───────────
                               │ [FILL]
                               ├ Assumptions ─────────
                               │ [FILL]
                               └──────────────────────


     TEMPLATE SEEDING:

     Regex extraction of Claude's thinking blocks produces garbage:
     free-form prose has no structured patterns to match.

     Augur takes a different approach: extract plan structure (the
     deterministic part), seed a template, let Claude fill reasoning
     (the part only Claude knows). Structure from MCP, content from
     Claude. Consistent format, accurate reasoning.

     MCP pre-renders              Claude fills
     ──────────────               ────────────
     header + purpose             decisions
     progress counts              assumptions
     section labels               tradeoffs
     formatting rules             reasoning

Two-block return: MCP tool results get collapsed in Claude Code UI. Block 1 is a one-line summary visible even when collapsed. Block 2 is the full template that Claude renders inline in its response, visible to the user without expanding.

Read-only: augur_explain only reads the plan file. No disk writes, no state, no side effects. Works in plan mode.

Architecture:

claude-augur-mcp/
├── package.json
├── tsconfig.json
├── src/
│   ├── index.ts       # MCP server, 1 tool
│   ├── types.ts       # PlanStructure interface
│   ├── session.ts     # Plan file parser + step progress extractor
│   └── render.ts      # Template generator with left-gutter format
└── demo/
    ├── demo.cast      # asciinema recording
    └── demo.gif       # animated demo

Design principles:

  • Template seeding over regex extraction: regex on thinking blocks produced garbage; template seeding lets Claude fill its own reasoning accurately
  • Inline over collapsed: tool results get collapsed in Claude Code UI; inline rendering keeps the abstract visible
  • Read-only: no disk writes, no state, works in plan mode
  • Single tool: augur_explain does one thing well; no CRUD, no storage, no insight management
  • Left-gutter format: ┌│├└ vertical bar with no right border; can't misalign, renders cleanly in any terminal width
  • Never truncate: purpose and header always render in full; word-wrapped, never cut

Design influences:

  • Architecture Decision Records: structured format for capturing decisions with context and consequences
  • Y-Statement ADR variant: concise decision format: "In context X, facing Y, we decided Z, accepting C"
  • Roman Augurs: priests who interpreted signs and patterns to reveal meaning hidden from ordinary observation

development

git clone https://github.com/Vvkmnn/claude-augur-mcp && cd claude-augur-mcp
npm install && npm run build

Scripts:

Command Description
npm run build TypeScript compilation (tsc && chmod +x dist/index.js)
npm run dev Watch mode (tsc --watch)
npm start Run MCP server (node dist/index.js)
npm run clean Remove build artifacts (rm -rf dist)
npm run typecheck TypeScript validation without emit
npm test Type-check

Contributing:

  • Fork the repository and create feature branches
  • Follow TypeScript strict mode and MCP protocol standards

Learn from examples:

license

MIT

<hr>

<a href="https://en.wikipedia.org/wiki/Tomb_of_the_Augurs"><img src="logo/tomb-of-the-augurs.jpg" alt="Tomb of the Augurs" width="100%"></a>

<p align="center">

Tomb of the Augurs, fresco (Tarquinia, ~530 BCE). Claudius, emperor, scholar, and member of the Augural College, wrote Tyrrenika, a lost 20-volume history of Etruscan civilization and their methods of divination. The augurs' role was not to predict the future, but to interpret the signs and reveal whether a proposed course of action had merit.

</p>

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选