manifestation-mcp

manifestation-mcp

Enables coding agents to design first by interviewing users, refining specs in digestible chunks, producing bite-sized TDD plans, and autonomously executing them through subagents with a server-verified red/green testing gate.

Category
访问服务器

README

manifestation-mcp

An MCP server that makes a coding agent design-first. The moment you want to build something, it doesn't lunge into code — it steps back and interviews you, teases out a spec and shows it back in digestible chunks, turns your sign-off into a bite-sized red/green TDD plan, and then runs a subagent-driven development loop (implementer → reviewer → quality gate) that can grind through the plan on its own.

It's a portable Python MCP server: the server is the brain (a five-phase state machine + your spec/plan + a skills library) and it runs its own subagents internally via the Claude Agent SDK — so one run call can work autonomously for a long stretch without drifting from the plan.

The five phases

DISCOVERY  → interview you; do NOT write code
SPEC       → draft a spec; sign off chunk-by-chunk
PLAN       → bite-sized red/green TDD task list (YAGNI, DRY)
EXECUTE    → per task: implementer subagent → reviewer subagent → gate
DONE       → artifacts left under .manifestation/ in your repo

State lives as inspectable files in the target repo: <repo>/.manifestation/<project-id>/{state.json, spec.md, plan.md}.

Requirements

  • Python 3.10+
  • uv (brew install uv)
  • For live execution (run): the Claude Code CLI on your PATH and Claude credentials (ANTHROPIC_API_KEY or an existing Claude Code login). The Agent SDK drives it to run the implementer/reviewer subagents.
  • git in the target repo — the TDD gate uses git worktree to verify that a real failing test preceded the implementation.

Setup

cd manifestation-mcp
uv sync
uv run pytest        # 96 tests, no network required (1 live smoke skipped)

Run it

Recommended local launcher (robust against uv's editable-install quirk):

uv run python run_server.py

Register it with Claude Code:

claude mcp add manifestation -- uv run --project /ABS/PATH/TO/manifestation-mcp python /ABS/PATH/TO/manifestation-mcp/run_server.py

(For a packaged install via uvx/pipx, the manifestation-mcp console script works directly.)

Auto-trigger (optional)

Copy skill-shim/SKILL.md into your Claude Code skills (e.g. ~/.claude/skills/manifestation/SKILL.md). Its description fires on "build / implement / add a feature", so the workflow starts itself — you don't have to invoke anything. Without it, kick off manually with the /manifestation prompt or by calling the start_project tool.

The tools

Tool What it does
start_project(brief, repo_path) Create a project (validates the repo path); returns interview questions.
submit_answers(project_id, answers) Feed answers; asks more or advances to SPEC.
next_spec_chunk(project_id) Next digestible spec chunk to review (bounded in size).
review_spec_chunk(project_id, decision, feedback?) approve / revise a chunk.
make_plan(project_id) Generate the repo-aware TDD plan; returns full task bodies. Does not start execution.
approve_plan(project_id) Record the user's sign-off and advance to EXECUTE.
run(project_id, until?, max_agent_calls?, max_budget_usd?) Subagent-driven loop with a server-verified TDD gate; checkpoints per step; streams progress; reports agent_calls/cost_usd.
reset_task(project_id, task_id) Unblock a BLOCKED task so run can retry it.
status(project_id) / list_projects() Inspect progress (per-task attempts, findings, approval state).

Prompt: /manifestation <brief>. Resources: skills://all, skill://<name>.

Model selection

Nothing is hard-coded to a dated model. By default the server inherits the model the Claude Code CLI is configured with. Override globally with the MANIFESTATION_MODEL env var (e.g. MANIFESTATION_MODEL=claude-opus-5), or per-invocation in code via AgentSDKClient(model=...).

Safety model (read before using run)

run executes real subagents in your repo, so understand the trust boundary:

  • The implementer gets write + Bash. That is arbitrary code execution in the target repo by design — run it only against repos you trust, and prefer a container/VM for untrusted work. There is no sandbox.
  • The reviewer and planner are read-only two ways: mutating tools are in the SDK's disallowed_tools, and a can_use_tool permission callback denies every tool not on their allowlist — covering tools we didn't enumerate (WebFetch, Task, MCP tools). Safe even in an untrusted repo.
  • TDD is verified server-side, not trusted from prose. After the implementer runs, the server runs the task's declared test command itself: it must pass at HEAD (real GREEN), and it must fail when re-run against the implementer's test-only commit (HEAD~1) in a throwaway git worktree (real RED). Fabricated or reordered evidence is caught; fail-closed if git/test can't confirm it.
  • A PASS verdict with any trailing findings is treated as a contradiction and fails the task.
  • run requires an approved plan, checkpoints after every step (and resumes a crashed attempt at the review step rather than re-running the implementer, so edits aren't duplicated), keeps a full audit trail, and is always bounded — max_agent_calls / max_budget_usd (both exposed via MCP), or a built-in default cap.
  • Mutating tool calls are serialized per project by an in-process lock and a cross-process file lock.
  • Prompt injection via the brief/answers/spec still flows into subagent prompts — treat project inputs as untrusted.

How it stays honest (and testable)

Every LLM interaction goes through one injectable seam (LLMClient). Unit tests inject a FakeLLMClient, so the whole state machine — discovery, spec chunking, plan generation, and the execute loop with its retries and review gates — is verified with zero network calls. The real AgentSDKClient sits behind that seam and is only exercised by the opt-in live smoke test.

Architecture

src/manifestation_mcp/
  server.py     # MCP tools/prompts/resources (thin wiring)
  state.py      # Project/Phase/Task model + file persistence + registry
  llm.py        # LLMClient seam: FakeLLMClient (tests) + AgentSDKClient (real)
  agents.py     # implementer / reviewer / planner subagent presets
  runner.py     # CommandRunner seam: SubprocessRunner (real) + FakeCommandRunner
  phases/       # discovery, spec, plan, execute, verify (server-side TDD check)
  skills/       # bundled Markdown skills, injected into subagent prompts
run_server.py   # bulletproof local launcher
skill-shim/     # optional Claude Code auto-trigger skill

推荐服务器

Baidu Map

Baidu Map

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

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

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

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

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

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

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

官方
精选
本地
TypeScript
VeyraX

VeyraX

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

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

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

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

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

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

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

官方
精选