Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Spawn multiple specialized Claude Code agents as MCP servers, each independently configured.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
ANTHROPIC_API_KEY, CLAUDE_TOOL_NAME, CLAUDE_MODEL, CLAUDE_PERMISSION_MODE, CLAUDE_ALLOWED_TOOLS, CLAUDE_APPEND_PROMPT, CLAUDE_FACTORY_ONLY标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"claude-octopus": {
"command": "npx",
"args": [
"-y",
"claude-octopus"
],
"env": {
"ANTHROPIC_API_KEY": "your-value",
"CLAUDE_TOOL_NAME": "your-value",
"CLAUDE_MODEL": "your-value",
"CLAUDE_PERMISSION_MODE": "your-value",
"CLAUDE_ALLOWED_TOOLS": "your-value",
"CLAUDE_APPEND_PROMPT": "your-value",
"CLAUDE_FACTORY_ONLY": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add claude-octopus --env ANTHROPIC_API_KEY=your-value --env CLAUDE_TOOL_NAME=your-value --env CLAUDE_MODEL=your-value --env CLAUDE_PERMISSION_MODE=your-value --env CLAUDE_ALLOWED_TOOLS=your-value --env CLAUDE_APPEND_PROMPT=your-value --env CLAUDE_FACTORY_ONLY=your-value -- npx -y claude-octopus运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"claude-octopus": {
"command": "npx",
"args": [
"-y",
"claude-octopus"
],
"env": {
"ANTHROPIC_API_KEY": "your-value",
"CLAUDE_TOOL_NAME": "your-value",
"CLAUDE_MODEL": "your-value",
"CLAUDE_PERMISSION_MODE": "your-value",
"CLAUDE_ALLOWED_TOOLS": "your-value",
"CLAUDE_APPEND_PROMPT": "your-value",
"CLAUDE_FACTORY_ONLY": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"claude-octopus": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"claude-octopus"
],
"env": {
"ANTHROPIC_API_KEY": "your-value",
"CLAUDE_TOOL_NAME": "your-value",
"CLAUDE_MODEL": "your-value",
"CLAUDE_PERMISSION_MODE": "your-value",
"CLAUDE_ALLOWED_TOOLS": "your-value",
"CLAUDE_APPEND_PROMPT": "your-value",
"CLAUDE_FACTORY_ONLY": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
CLAUDE_TOOL_NAME envCLAUDE_MODEL envCLAUDE_PERMISSION_MODE envCLAUDE_ALLOWED_TOOLS envCLAUDE_APPEND_PROMPT envCLAUDE_FACTORY_ONLY env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 xiaolai 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:ANTHROPIC_API_KEY
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.1.10)于6个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Aiterm MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Persistent terminals and one launcher for Claude, Codex, Grok, Cursor, and Antigravity harnesses.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
One brain, many arms.
An MCP server that wraps the Claude Agent SDK, letting you run multiple specialized Claude Code agents — each with its own model, tools, system prompt, and personality — from any MCP client.
Claude Code is powerful. But one instance does everything the same way. Sometimes you want a strict code reviewer that only reads files. A test writer that defaults to TDD. A cheap quick helper on Haiku. A deep thinker on Opus.
Claude Octopus lets you spin up as many of these as you need. Same binary, different configurations. Each one shows up as a separate tool in your MCP client.
claude CLI installationANTHROPIC_API_KEY env var) or an active Claude Code OAuth sessionThree paths, pick whichever matches your MCP client.
npm install claude-octopus
Skip the install entirely — reference claude-octopus@latest in your .mcp.json and the client will fetch on demand (see Quick Start below).
The server is published to the MCP Registry under the name `io.github.xiaolai/claude-octopus`. Registry-aware MCP clients can resolve and install it by that name without touching npm directly.
The fastest way to get started:
npx claude-octopus init
This interactive wizard lets you pick a template, detects your MCP client, and writes the config for you.
Or add to your .mcp.json manually:
{
"mcpServers": { "claude": { "command": "npx", "args": ["claude-octopus@latest"], "env": { "CLAUDE_PERMISSION_MODE": "bypassPermissions" } } } }
This gives you six tools:
| Tool | Purpose |
|---|---|
claude_code | Send a task, get a result |
claude_code_reply | Continue a conversation |
claude_code_timeline | Query the workflow timeline |
claude_code_transcript | Read full session transcripts |
claude_code_sessions | List Claude Code session history (this project, or all) |
claude_code_report | Generate HTML reports |
That's it — you have Claude Code as a tool, with full workflow observability built in.
The real power is running several instances with different configurations:
{
"mcpServers": { "code-reviewer": { "command": "npx", "args": ["claude-octopus@latest"], "env": { "CLAUDE_TOOL_NAME": "code_reviewer", "CLAUDE_SERVER_NAME": "code-reviewer", "CLAUDE_DESCRIPTION": "Strict code reviewer. Finds bugs and security issues. Read-only.", "CLAUDE_MODEL": "opus", "CLAUDE_ALLOWED_TOOLS": "Read,Grep,Glob", "CLAUDE_APPEND_PROMPT": "You are a strict code reviewer. Report real bugs, not style preferences.", "CLAUDE_EFFORT": "high" } }, "test-writer": { "command": "npx", "args": ["claude-octopus@latest"], "env": { "CLAUDE_TOOL_NAME": "test_writer", "CLAUDE_SERVER_NAME": "test-writer", "CLAUDE_DESCRIPTION": "Writes thorough tests with edge case coverage.", "CLAUDE_MODEL": "sonnet", "CLAUDE_APPEND_PROMPT": "Write tests first. Cover edge cases. TDD." } }, "quick-qa": { "command": "npx", "args": ["claude-octopus@latest"], "env": { "CLAUDE_TOOL_NAME": "quick_qa", "CLAUDE_SERVER_NAME": "quick-qa", "CLAUDE_DESCRIPTION": "Fast answers to quick coding questions.", "CLAUDE_MODEL": "haiku", "CLAUDE_MAX_BUDGET_USD": "0.02", "CLAUDE_EFFORT": "low" } } } }
Your MCP client now sees distinct tools for each agent — code_reviewer, test_writer, quick_qa — each purpose-built.
Agents can coordinate through a coordinator pattern: one agent has the others as inner MCP tools via CLAUDE_MCP_SERVERS, and its system prompt drives the pipeline.
{
"mcpServers": { "publishing-house": { "command": "npx", "args": ["claude-octopus@latest"], "env": { "CLAUDE_TOOL_NAME": "publishing_house", "CLAUDE_SERVER_NAME": "publishing-house", "CLAUDE_MODEL": "opus", "CLAUDE_PERMISSION_MODE": "bypassPermissions", "CLAUDE_APPEND_PROMPT": "You are a publishing house coordinator. Dispatch tasks to your specialist agents and drive the pipeline to completion.", "CLAUDE_MCP_SERVERS": "{\"researcher\":{\"command\":\"npx\",\"args\":[\"claude-octopus@latest\"],\"env\":{\"CLAUDE_TOOL_NAME\":\"researcher\",\"CLAUDE_SERVER_NAME\":\"researcher\",\"CLAUDE_MODEL\":\"sonnet\",\"CLAUDE_PERMISSION_MODE\":\"bypassPermissions\"}},\"architect\":{\"command\":\"npx\",\"args\":[\"claude-octopus@latest\"],\"env\":{\"CLAUDE_TOOL_NAME\":\"architect\",\"CLAUDE_SERVER_NAME\":\"architect\",\"CLAUDE_MODEL\":\"opus\",\"CLAUDE_PERMISSION_MODE\":\"bypassPermissions\"}}}" } } } }
The coordinator agent autonomously calls researcher, architect, etc. as MCP tools — fully autonomous, no human in the loop until it finishes. Every invocation is tracked in the shared timeline.
Don't want to write configs by hand? Add a factory instance:
{
"mcpServers": { "agent-factory": { "command": "npx", "args": ["claude-octopus@latest"], "env": { "CLAUDE_FACTORY_ONLY": "true", "CLAUDE_SERVER_NAME": "agent-factory" } } } }
This exposes a single create_claude_code_mcp tool — an interactive wizard. Tell it what you want ("a strict code reviewer that only reads files") and it generates the .mcp.json entry for you, listing all available options you can customize.
In factory-only mode, no query tools are registered — just the wizard. This keeps routing clean: the factory creates agents, the agents do work.
Don't want to edit JSON by hand? The init wizard gets you from zero to working in 30 seconds:
npx claude-octopus init
Claude Octopus — init wizard
One brain, many arms. Let's set up your agents.
Pick a template (or build your own):
Choice [1-6]:
It auto-detects installed MCP clients (Claude Desktop, Claude Code, Cursor, Windsurf), merges with existing config, and warns before overwriting.
npx claude-octopus init --template code-review-team
npx claude-octopus init --template tiered-models npx claude-octopus init --template publishing-house
Five built-in templates, battle-tested and ready to use:
| Template | Agents | Purpose |
|---|---|---|
code-review-team | code-reviewer (opus), test-writer (sonnet), security-auditor (opus) | Thorough code review pipeline |
publishing-house | researcher (sonnet), architect (opus), editor (sonnet), proofreader (haiku) | Multi-stage content/code pipeline |
tiered-models | quick-qa (haiku), coder (sonnet), deep-thinker (opus) | Right model for the job |
solo-agent | claude (default) | Single agent, quick setup |
factory | agent-factory | Generates configs on demand |
Each agent comes pre-tuned with appropriate model, tools, effort level, and system prompt.
Monitor your agents in real time:
npx claude-octopus dashboard
Opens a local web dashboard at http://localhost:3456 with:
# Custom port
npx claude-octopus dashboard --port 8080
The dashboard reads the same timeline index used by the _timeline and _report tools. No additional configuration needed.
Each non-factory instance exposes:
| Tool | Purpose |
|---|---|
| Send a task to the agent, get a response + session_id + run_id |
_reply | Continue a previous conversation by session_id |
_timeline | Query the cross-agent workflow timeline |
_transcript | Retrieve full session transcript from Claude Code's storage |
_sessions | List Claude Code session history — this project by default, or all projects with all_projects: true |
_report | Generate a self-contained HTML report for a run or all runs |
| Parameter | Description |
|---|---|
prompt | The task or question (required) |
run_id | Workflow run ID — groups related agent calls into one timeline. Auto-generated if omitted; returned in every response for propagation. |
cwd | Working directory override |
model | Model override (sonnet, opus, haiku, or full ID) |
tools | Restrict available tools (intersects with server restriction) |
disallowedTools | Block additional tools (unions with server blacklist) |
additionalDirs | Extra directories the agent can access |
plugins | Additional plugin paths to load |
effort | Thinking effort (low, medium, high, max) |
permissionMode | Permission mode (can only tighten, never loosen) |
maxTurns | Max agent-loop round trips (see effort counters) |
maxBudgetUsd | Max spend in USD |
systemPrompt | Additional prompt (appended to server default) |
Every agent invocation is recorded in a lightweight JSONL index at ~/.claude-octopus/timelines/timeline.jsonl. This solves the multi-agent correlation problem: when several agents participate in a workflow, the timeline tracks which sessions belong to the same run, in what order they executed, and what role each played.
Full session transcripts stay in Claude Code's own storage (~/.claude/projects/). The timeline is just the table of contents — ~200 bytes per entry — that cross-references via session_id.
graph TB
subgraph "Timeline Index (~200 bytes/entry)" TL["~/.claude-octopus/timelines/timeline.jsonl"] end
subgraph "Claude Code Session Storage (full transcripts)" S1["~/.claude/projects/.../ses-aaa.jsonl"] S2["~/.claude/projects/.../ses-bbb.jsonl"] S3["~/.claude/projects/.../ses-ccc.jsonl"] end
TL -->|"session_id cross-ref"| S1 TL -->|"session_id cross-ref"| S2 TL -->|"session_id cross-ref"| S3
and _reply call appends one line to the timelinerun_id, all agents sharing the same run_id are grouped into one runrun_id, one is auto-generated and returned in the response — pass it to subsequent agents to keep them grouped# List all runs
_timeline({})
_timeline({ run_id: "abc-123" })
_timeline({ session_id: "ses-xyz" })
_transcript({ session_id: "ses-xyz" })
Host: r只显示了开头部分;其余内容请在仓库中阅读