Claude Octopus

io.github.xiaolai由 GitHub 账号 xiaolai 发布v1.1.10更新于 Oct 24, 2026

Spawn multiple specialized Claude Code agents as MCP servers, each independently configured.

发布方自己的服务:Octopus.do

已验证STDIO仅桌面开发者工具AI 与机器学习

概览

AI 生成的概览

封装 Claude Agent SDK,让助手以 MCP 工具形式运行多个独立配置的 Claude Code 智能体,并提供时间线、会话记录和报告。

可以做什么
向已配置的 Claude Code 智能体发送任务,并按会话 ID 继续对话,可逐次覆盖模型、工作目录、工具限制、思考强度和预算。以不同模型、提示词和工具集运行多个实例,每个实例作为独立工具出现。把相关调用归入同一运行,并查询跨智能体时间线。读取完整会话记录,列出当前项目或全部项目的 Claude Code 会话历史。为运行生成自包含的 HTML 报告,也可只暴露一个用于生成新智能体配置的工厂向导。
适用场景
适合在同一个 MCP 客户端中使用多个专用 Claude Code 智能体(例如只读审查者、测试编写者和廉价的快速助手),或需要追踪并汇报多智能体工作流时使用。
运行要求
以 npm 包形式通过 stdio 在本机运行,需要 Node.js 18 或更高版本,以及可用的 Claude Code CLI 安装。认证使用 ANTHROPIC_API_KEY 中的 Anthropic API 密钥或 Claude Code OAuth 会话,未设置时从父进程继承。配置通过 CLAUDE_* 环境变量完成。
安装前请注意
智能体可在工作目录中读取和修改文件并执行工具;README 示例配置将 CLAUDE_PERMISSION_MODE 设为 bypassPermissions,会跳过审批提示,建议使用默认模式或收窄 CLAUDE_ALLOWED_TOOLS。智能体会产生 Anthropic API 费用,应设置 CLAUDE_MAX_BUDGET_USD 和 CLAUDE_MAX_TURNS。协调者模式会让智能体自主调用其他智能体。会话记录和时间线索引会写入用户主目录。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Claude Octopus,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[Claude Octopus]

Claude Octopus

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.

Why

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.

Prerequisites

  • Node.js >= 18
  • Claude Code — the Claude Agent SDK is bundled as a dependency, but it spawns Claude Code under the hood, so you need a working claude CLI installation
  • Anthropic API key (ANTHROPIC_API_KEY env var) or an active Claude Code OAuth session

Install

Three paths, pick whichever matches your MCP client.

npm (most direct)

bash
npm install claude-octopus

npx (no install needed)

Skip the install entirely — reference claude-octopus@latest in your .mcp.json and the client will fetch on demand (see Quick Start below).

MCP Registry

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.

Quick Start

The fastest way to get started:

bash
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:

json
{  "mcpServers": {    "claude": {      "command": "npx",      "args": ["claude-octopus@latest"],      "env": {        "CLAUDE_PERMISSION_MODE": "bypassPermissions"      }    }  }}

This gives you six tools:

ToolPurpose
claude_codeSend a task, get a result
claude_code_replyContinue a conversation
claude_code_timelineQuery the workflow timeline
claude_code_transcriptRead full session transcripts
claude_code_sessionsList Claude Code session history (this project, or all)
claude_code_reportGenerate HTML reports

That's it — you have Claude Code as a tool, with full workflow observability built in.

Multiple Agents

The real power is running several instances with different configurations:

json
{  "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.

Multi-Agent Orchestration

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.

json
{  "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.

Agent Factory

Don't want to write configs by hand? Add a factory instance:

json
{  "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.

Init Wizard

Don't want to edit JSON by hand? The init wizard gets you from zero to working in 30 seconds:

bash
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):
  1. Code Review Team — Reviewer + test writer + security auditor  2. Publishing House — Researcher + architect + editor + proofreader  3. Tiered Models — Haiku for quick Q&A, Sonnet for coding, Opus for hard problems  4. Solo Agent — Single Claude Code agent with sensible defaults  5. Agent Factory — Interactive wizard that generates agent configs on demand  6. Custom — describe your own agent(s)
Choice [1-6]:

It auto-detects installed MCP clients (Claude Desktop, Claude Code, Cursor, Windsurf), merges with existing config, and warns before overwriting.

Skip the menu

bash
npx claude-octopus init --template code-review-teamnpx claude-octopus init --template tiered-modelsnpx claude-octopus init --template publishing-house

Templates

Five built-in templates, battle-tested and ready to use:

TemplateAgentsPurpose
code-review-teamcode-reviewer (opus), test-writer (sonnet), security-auditor (opus)Thorough code review pipeline
publishing-houseresearcher (sonnet), architect (opus), editor (sonnet), proofreader (haiku)Multi-stage content/code pipeline
tiered-modelsquick-qa (haiku), coder (sonnet), deep-thinker (opus)Right model for the job
solo-agentclaude (default)Single agent, quick setup
factoryagent-factoryGenerates configs on demand

Each agent comes pre-tuned with appropriate model, tools, effort level, and system prompt.

Dashboard

Monitor your agents in real time:

bash
npx claude-octopus dashboard

Opens a local web dashboard at http://localhost:3456 with:

  • Live stats — total runs, invocations, cost, SDK turns, responses, errors
  • Recent activity — agent cards for the latest run
  • Run table — all runs with cost, duration, and status
  • Auto-refresh — SSE connection pushes updates as agents run
bash
# Custom portnpx claude-octopus dashboard --port 8080

The dashboard reads the same timeline index used by the _timeline and _report tools. No additional configuration needed.

Tools

Each non-factory instance exposes:

ToolPurpose
<name>Send a task to the agent, get a response + session_id + run_id
<name>_replyContinue a previous conversation by session_id
<name>_timelineQuery the cross-agent workflow timeline
<name>_transcriptRetrieve full session transcript from Claude Code's storage
<name>_sessionsList Claude Code session history — this project by default, or all projects with all_projects: true
<name>_reportGenerate a self-contained HTML report for a run or all runs

Query and reply parameters

ParameterDescription
promptThe task or question (required)
run_idWorkflow run ID — groups related agent calls into one timeline. Auto-generated if omitted; returned in every response for propagation.
cwdWorking directory override
modelModel override (sonnet, opus, haiku, or full ID)
toolsRestrict available tools (intersects with server restriction)
disallowedToolsBlock additional tools (unions with server blacklist)
additionalDirsExtra directories the agent can access
pluginsAdditional plugin paths to load
effortThinking effort (low, medium, high, max)
permissionModePermission mode (can only tighten, never loosen)
maxTurnsMax agent-loop round trips (see effort counters)
maxBudgetUsdMax spend in USD
systemPromptAdditional prompt (appended to server default)

Timeline

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.

mermaid
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

How it works

  1. Every <name> and <name>_reply call appends one line to the timeline
  2. If you pass run_id, all agents sharing the same run_id are grouped into one run
  3. If you omit run_id, one is auto-generated and returned in the response — pass it to subsequent agents to keep them grouped

Querying the timeline

# List all runs<name>_timeline({})
# Show one run's agent sequence<name>_timeline({ run_id: "abc-123" })
# Look up a specific session<name>_timeline({ session_id: "ses-xyz" })
# Retrieve full transcript (separate tool)<name>_transcript({ session_id: "ses-xyz" })

Multi-agent workflow example

Host:  researcher({ prompt: "Research X", run_id: "pub-001" })       → { run_id: "pub-001", session_id: "ses-aaa", result: "..." }
Host:  architect({ prompt: "Structure based on...", run_id: "pub-001" })       → { run_id: "pub-001", session_id: "ses-bbb", result: "..." }
Host:  verifier({ prompt: "Check this plan", run_id: "pub-001" })       → { run_id: "pub-001", session_id: "ses-ccc", result: "..." }
Later: researcher_timeline({ run_id: "pub-001" })       → [           { agent: "researcher", session_id: "ses-aaa", cost: 0.05, turns: 4, tool_calls: 3, response_groups: 2 },           { agent: "architect",  session_id: "ses-bbb", cost: 0.08, turns: 6, tool_calls: 5, response_groups: 3 },           { agent: "verifier",   session_id: "ses-ccc", cost: 0.03, turns: 3, tool_calls: 2, response_groups: 2 },         ]
Later: researcher_transcript({ session_id: "ses-aaa" })       → full conversation transcript from Claude Code's storage

HTML Reports

Generate self-contained HTML reports with agent sequence visualization, cost breakdown, and collapsible transcripts. Dark theme, no external dependencies — one file, open in any browser.

Via MCP tool

<name>_report({})                        # index of all runs<name>_report({ run_id: "pub-001" })     # detailed report for one run

Via CLI

bash
# Index of all runsnpx claude-octopus report --out index.html
# Detailed report for one runnpx claude-octopus report pub-001 --out report.htmlopen report.html
# Without transcripts (faster, smaller file)npx claude-octopus report pub-001 --no-transcripts --out report.html
# To stdout (pipe-friendly)npx claude-octopus report pub-001 > report.html

What's in the report

  • Run summary — agent count, total cost, duration, SDK turns, responses, tool calls
  • Timeline bar — numbered dots for each agent (green = success, red = error)
  • Agent cards — timing, cost, effort counters, session ID, prompt excerpt
  • Collapsible transcripts — full tool calls, reasoning, and results per agent

Reading the effort counters

Three numbers describe how much work an invocation took. They are not interchangeable, and the first one is the one that surprises people:

MetricWhat it counts
num_turns (shown as SDK turns)Raw value from the Agent SDK. Measured against the runtime it tracks tool_use blocks plus the final response — not API round trips.
response_groups (responses)Distinct assistant responses in the main agent loop — one per API round trip, no matter how many tools that response called in parallel.
tool_calls (tool calls)tool_use blocks issued across the main agent loop.

When an agent calls several tools in parallel, num_turns climbs faster than the number of visible responses. A run with 3 assistant responses issuing 4 tool calls reports num_turns: 5, response_groups: 3, tool_calls: 4. maxTurns, meanwhile, is enforced against round trips: that same run completes under maxTurns: 3 and aborts under maxTurns: 2. So size maxTurns against responses, not against SDK turns.

Both new counters cover the main agent loop only — work inside a sub-agent (Task) belongs to its own loop and is excluded. Timeline entries written by older versions have neither, and render as — rather than as a false zero.

Configuration

All configuration is via environment variables in .mcp.json. Every env var is optional.

Identity

Env VarDescriptionDefault
CLAUDE_TOOL_NAMETool name prefix (generates <name>, <name>_reply, <name>_timeline, <name>_transcript, <name>_report)claude_code
CLAUDE_DESCRIPTIONTool description shown to the host AIgeneric
CLAUDE_SERVER_NAMEMCP server name in protocol handshakeclaude-octopus
CLAUDE_FACTORY_ONLYOnly expose the factory wizard toolfalse

Agent

Env VarDescriptionDefault
CLAUDE_MODELModel (sonnet, opus, haiku, or full ID)SDK default
CLAUDE_CWDWorking directoryprocess.cwd()
CLAUDE_PERMISSION_MODEdefault, acceptEdits, bypassPermissions, plandefault
CLAUDE_ALLOWED_TOOLSComma-separated tool restriction (available tools)all
CLAUDE_DISALLOWED_TOOLSComma-separated tool blacklistnone
CLAUDE_MAX_TURNSMax agent-loop round trips per invocationunlimited
CLAUDE_MAX_BUDGET_USDMax spend per invocationunlimited
CLAUDE_EFFORTlow, medium, high, maxSDK default

Prompts

Env VarDescription
CLAUDE_SYSTEM_PROMPTReplaces the default Claude Code system prompt
CLAUDE_APPEND_PROMPTAppended to the default prompt (usually what you want)

Advanced

Env VarDescription
CLAUDE_ADDITIONAL_DIRSExtra directories to grant access (comma-separated)
CLAUDE_PLUGINSLocal plugin paths (comma-separated)
CLAUDE_MCP_SERVERSMCP servers for the inner agent (JSON)
CLAUDE_PERSIST_SESSIONtrue/false — enable session resume (default: true)
CLAUDE_SETTING_SOURCESSettings to load: user, project, local
CLAUDE_SETTINGSPath to settings JSON or inline JSON
CLAUDE_BETASBeta features (comma-separated)

Timeline

Env VarDescriptionDefault
CLAUDE_TIMELINE_DIRDirectory for the cross-agent timeline index~/.claude-octopus/timelines

Authentication

Env VarDescriptionDefault
ANTHROPIC_API_KEYAnthropic API key for this agentinherited from parent
CLAUDE_CODE_OAUTH_TOKENClaude Code OAuth token for this agentinherited from parent

Leave both unset to inherit auth from the parent process. Set one per agent to use a different account or billing source.

Lists accept JSON arrays when values contain commas: ["path,with,comma", "/normal"]

Security

  • Permission mode defaults to default — tool executions prompt for approval unless you explicitly set bypassPermissions.
  • cwd overrides preserve agent knowledge — when the host overrides cwd, the agent's configured base directory is automatically added to additionalDirectories so it retains access to its own context.
  • Tool restrictions narrow, never widen — per-invocation tools intersects with the server restriction (can only remove tools, not add). disallowedTools unions (can only block more).
  • _reply and _transcript tools respect persistence — not registered when CLAUDE_PERSIST_SESSION=false.
  • Timeline writes are best-effort — a failed timeline append never blocks or fails the primary query.

Architecture

mermaid
graph TB    subgraph "MCP Client (Claude Desktop, Cursor, etc.)"        C["Sees: code_reviewer, test_writer, quick_qa"]    end
    C -->|"JSON-RPC / stdio"| O1    C -->|"JSON-RPC / stdio"| O2    C -->|"JSON-RPC / stdio"| O3
    subgraph "Claude Octopus Instances"        O1["code-reviewer<br/>model=opus, tools=Read,Grep,Glob"]        O2["test-writer<br/>model=sonnet"]        O3["quick-qa<br/>model=haiku, budget=$0.02"]    end
    O1 -->|"Agent SDK query()"| SDK["Claude Agent SDK"]    O2 -->|"Agent SDK query()"| SDK    O3 -->|"Agent SDK query()"| SDK
    O1 -->|"append"| TL["Timeline Index<br/>~/.claude-octopus/timelines/"]    O2 -->|"append"| TL    O3 -->|"append"| TL
    SDK -->|"persist"| SS["Session Storage<br/>~/.claude/projects/"]    TL -.->|"cross-ref"| SS

How It Compares

FeatureBuilt-in claudeclaude-code-mcpClaude Octopus
ApproachBuilt-inCLI wrappingAgent SDK
Tools per instance16 raw tools1 prompt tool5 (prompt, reply, timeline, transcript, report)
Multi-instanceNoNoYes
Per-instance configNoNoYes (20 env vars)
Init wizardNoNoYes (init + 5 templates)
Factory wizardNoNoYes
Session continuityNoNoYes
Cross-agent timelineNoNoYes
Web dashboardNoNoYes (live, SSE)
HTML reportsNoNoYes

Development

bash
pnpm installpnpm build       # compile TypeScriptpnpm test        # run tests (vitest)pnpm test:coverage  # coverage report

License

ISC - Xiaolai Li

来源:README.md,提交 af84244

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.1.10最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Octopus 集成