MCP SERVER

MARIONETTE

Campaign orchestration with dependency graphs and self-reporting missions.

8
Tools
7
Mission States
3
Plan-Time Guardrails
3
Max Retries
TOOLS
ToolPurposeReturns
planDefine a campaign — items with optional deps, shared context, per-mission flows. Validates the DAG, prunes transitive deps, detects file conflicts and duplicates.Campaign ID, ready count, warnings
attackDispatch ready missions as stub prompts. Stubs are ~50 tokens telling the subagent to call brief. Optional limit for batched dispatch.Stub array with mission IDs and prompts
briefClaim a mission (ready → launched) and receive full instructions — item context, shared context, upstream results, answered questions, flow protocol.Full mission prompt
completeSelf-report result, surface a question (→ eddied), or report failure (→ retry or permanent fail). Propagates readiness to downstream missions.Status, newly ready missions, campaign completion
statusCampaign progress overview — mission states, flow phases, blockers, questions. Omit campaign ID to list all campaigns.Formatted progress report
reclaimRecover stuck missions — return launched or eddied missions to ready. Provide an answer to resolve a surfaced question. Omit mission ID for bulk reclaim.Reclaimed mission IDs, ready-to-deploy list
addDynamic fan-out — append missions to a running campaign. New missions can depend on existing missions or other new missions. File conflict detection runs across all.Added count, ready count, warnings
abandonCancel a campaign. Marks all non-terminal missions as abandoned. Preserves completed results.Abandoned mission count
CAMPAIGN DAG
Dependency Graph

Missions form a directed acyclic graph. Dependencies declared at plan time control execution order — a mission stays pending until all its deps complete. When a mission completes, marionette propagates readiness to its dependents, making them available for the next attack wave. Kahn's algorithm validates the graph at plan time, rejecting cycles before any work begins.

Transitive Pruning

If A→B→C and A→C are both declared, the direct A→C edge is redundant — marionette removes it automatically. Less serialization, same correctness. The pruning runs at plan time and reports what was removed so the orchestrator knows the effective graph.

File Conflict Detection

Items can declare a files field listing paths they'll touch. If two missions share a file with no dependency between them, marionette warns at plan time. The orchestrator can add a dep or restructure before any work starts.

Duplicate Work Detection

Items with ≥80% overlapping field values (excluding id, name, flow, files) trigger a warning. Catches accidental duplicates in large item lists before wasting compute on redundant missions.

Dynamic Fan-Out

The add tool appends missions to a running campaign mid-flight. New missions can depend on existing completed missions or other new missions. All guardrails — file conflicts, duplicate detection — run across the combined set.

MISSION LIFECYCLE
pending ready launched complete
The Eddy Mechanism

When a subagent gets stuck, it calls complete with a question field. The mission enters eddied status — paused, not failed. The orchestrator sees the question via status, gets the answer from a human or another system, then calls reclaim with the answer. The mission returns to ready with the Q&A baked into its next brief. Multiple questions accumulate across attempts.

Interrupt Recovery

If a subagent dies mid-mission, the mission stays in launched status forever. The orchestrator calls reclaim to return it to ready for redeployment. Bulk reclaim handles session crashes — one call resets all launched missions. Failed missions retry up to 3 times before entering permanent failure.

INTEGRATION
flowbot
Downstream

Each mission drives a flowbot flow instance. The campaign specifies a default flow; individual items can override with their own. Marionette manages the DAG, flowbot channels each agent's cognition through phases.

roost
Coordination

Parallel missions touching the same repo benefit from roost's advisory claims. File conflict detection at plan time catches overlaps; roost's runtime claims prevent collisions during execution.

Task tool
Dispatch

Attack returns stub prompts designed for the Task tool — ~50 tokens each. The orchestrator passes stubs to Task for parallel subagent dispatch, or drives missions sequentially without Task for simpler campaigns.

This page was produced by a marionette campaign.