MCP tool reference

Every tool the server registers, with its parameters and types. The tool descriptions and parameter tables on this page are generated directly from the server source, so they cannot drift from the code.

Conventions: most tools identify their session with a session_index — the 6-character token returned by start_session. Tools in the Bootstrap group work without one. The prose reference with usage guidance lives in docs/api-reference.md.

The server registers 17 MCP tools. Each entry shows a short summary; expand for the full description and advanced parameters.

Bootstrap

Callable without a session_index.

discover

Entry point for this server.

Full description

Call this first. Returns the server name, version, and the bootstrap steps for starting a workflow.

No session required. Use list_workflows to see what you can run.

No parameters.

list_workflows

List all available workflow definitions with their ID, title, version, and tags.

Full description

Lists every workflow the server can run, with id, title, version, and tags.

If some workflow files cannot be loaded, you still get the working entries plus a load_errors list for the failures.

No parameters.

health_check

Check server health and availability.

Full description

Quick ping to confirm the server is up. Returns status, name, version, workflow count, and uptime.

No session required.

No parameters.

Session

Create, inspect, and extend workflow sessions.

start_session

Start or resume a workflow session.

Full description

Opens a new workflow session or resumes an existing one.

Returns a session_index (six characters), basic workflow metadata, and planning_folder_path — the absolute path where the server stores session artifacts.

Pass planning_folder as any absolute path whose basename is your planning slug (for example, .../planning/2026-05-28-my-slug). Only the slug is used; the server resolves it under its own workspace. A stale or wrong path prefix is harmless.

If that slug already has session.json, the session resumes and workflow_id is ignored. Otherwise the server creates a fresh session and seeds variables from the workflow defaults.

Omit planning_folder to start a meta bootstrap session in a temp folder. Use dispatch_child later to promote it to a real planning folder.

Child workflows are started with dispatch_child, not start_session.

ParameterTypeRequiredDescription
workflow_idstringnoWorkflow id to run or dispatch (for example, work-package).
planning_folderstringnoAbsolute path whose basename is the planning slug. The server resolves the slug under its own workspace — the directory prefix is only a hint.
agent_idstringnoLabel for this agent in the session trace. Default: "orchestrator"
context_mode"persistent" | "fresh"nopersistent: reuse earlier deliveries when one agent keeps full context. fresh (default): always return full content.

get_workflow_status

Check the status of a workflow session.

Full description

Returns whether the session is active, blocked at a checkpoint, or completed, plus the current activity and completed steps.

If the session is nested under a parent, parent context is included too.

ParameterTypeRequiredDescription
session_indexstringyesSix-character token from start_session. Use the same value for every call in this session.

inspect_session

Read-only inspection of a workflow session's on-disk state.

Full description

Read-only look at a session's stored state. Pick a view: summary (everything), identity, variables, checkpoints, activities, history, or children.

Returns a compact, purpose-built projection — never the raw session file.

Pass child_index to look one level into a child session listed under triggeredWorkflows; pass variable with view: variables to read a single value.

It never changes anything and works even while the session is paused at a checkpoint — which is often exactly when you want to look.

ParameterTypeRequiredDescription
session_indexstringyesSix-character token from start_session. Use the same value for every call in this session.
view"summary" | "identity" | "variables" | "checkpoints" | "activities" | "history" | "children"noWhich projection to return. summary (default) is the composite of all views. identity = workflow/session/agent header + position; variables = the variable bag; checkpoints = checkpoint responses (option, timestamp, variables set); activities = completed/skipped/current; history = event count + per-type tally + milestone sub-sequence; children = one-line digest per triggeredWorkflows child. Default: "summary"
child_indexintegernoOptional positional index into the addressed session's triggeredWorkflows. When given, the tool descends one level to triggeredWorkflows[child_index].state and projects that child instead of the addressed session. Out of range yields the NOT_FOUND message. Deeper children are reached by passing that child's own session_index instead of stacking indices.
variablestringnoOptional single variable name. Only meaningful with view: variables — narrows the result to that one key's value instead of the whole bag.

dispatch_child

Start a child workflow inside the current session.

Full description

Starts a child workflow inside the parent session you are already in.

Returns the child's session_index and planning_folder_path. The child's variables are seeded from the child workflow's defaults; the parent is unchanged.

The child state is stored inside the parent's session.json under triggeredWorkflows.

When the parent is a temporary meta-bootstrap session, the server first promotes it to a real planning folder on disk, then embeds the child. You can keep using the parent's original session_index.

ParameterTypeRequiredDescription
session_indexstringyesSix-character token from start_session. Use the same value for every call in this session.
workflow_idstringyesWorkflow id to run or dispatch (for example, work-package).
agent_idstringnoLabel for this agent in the session trace. Default: "worker"
planning_slugstringnoSlug for the promoted planning folder when dispatching from a meta bootstrap session. Ignored if the parent already has a persistent folder.
context_mode"persistent" | "fresh"nopersistent: reuse earlier deliveries when one agent keeps full context. fresh (default): always return full content.

Workflow and activity navigation

Load workflow structure and advance through activities.

get_workflow

Load the workflow definition for the current session.

Full description

Loads the workflow definition for the current session.

The response starts with the orchestrator technique, then a separator, then metadata: rules, variables, initialActivity (the first activity to run), and a short list of all activities.

Use initialActivity for your first next_activity call — this is the only tool that returns it.

Also returns planning_folder_path. Treat this as the one true artifact location; do not build paths relative to your own working directory.

If some activity files failed to load, activity_load_errors lists them and those activities are omitted from the list.

ParameterTypeRequiredDescription
session_indexstringyesSix-character token from start_session. Use the same value for every call in this session.

next_activity

Transition to the specified activity.

Full description

Moves the session to a new activity. This is the orchestrator's advance call — it updates state and records the trace but does not return the activity body.

After next_activity, the worker should call get_activity to load steps, checkpoints, transitions, and technique references.

For the first transition, use initialActivity from get_workflow. After that, use ids from the current activity's transitions.

Optional step_manifest and transition_condition help the server validate what you completed. Manifest checks are advisory — mismatches produce warnings, not hard errors.

ParameterTypeRequiredDescription
session_indexstringyesSix-character token from start_session. Use the same value for every call in this session.
activity_idstringyesActivity to move to. First call: use initialActivity from get_workflow. Later: use an id from transitions.
transition_conditionstringnoThe condition name that led to this transition, from the previous activity.
step_manifestobject[]noSteps completed in the previous activity, for example [{ "step_id": "detect-review-mode", "output": "is_review_mode=false" }]. Omit if no steps ran.
activity_manifestobject[]noHistory of completed activities with outcomes and transition conditions.
Nested fields

Each item in these arrays is an object with the fields below.

InFieldTypeRequiredDescription
step_manifest[]step_idstringyesStep id from the activity definition (field name is step_id, not id).
outputstringyesShort summary of what the step produced. Use a JSON object when the step has multiple outputs.
activity_manifest[]activity_idstringyesCompleted activity id.
outcomestringyesShort outcome summary for that activity.
transition_conditionstringnoCondition that led out of that activity, if any.

get_activity

Load the current activity definition, including steps and transitions.

Full description

Loads the full definition for whatever activity the session is currently on. No activity_id parameter — the server reads it from session state.

You must pass context_tokens: your worker's context window size in tokens. The server uses this to decide how many step techniques to bundle inline.

Ungated techniques that fit the budget are included in the response under step_techniques — the same content you would get from get_technique for that step. Gated steps and overflow techniques still need a separate get_technique call.

If the session uses persistent context mode (or you pass bundle: "reference"), content you already received may come back as short unchanged markers instead of full text. Pass bundle: "full" to force full delivery.

ParameterTypeRequiredDescription
session_indexstringyesSix-character token from start_session. Use the same value for every call in this session.
context_tokensintegeryesYour worker context window in tokens. Required so the server can size inline technique bundling.
bundle"reference" | "full"noreference: return unchanged markers for content already delivered. full: always return complete text.

Checkpoint flow

Yield to the orchestrator, present decisions to the user, and resume.

yield_checkpoint

Yield execution to the orchestrator at a checkpoint.

Full description

Call when a checkpoint step tells you to stop and hand control to the orchestrator.

Records the checkpoint as active and returns the session_index for a <checkpoint_yield> block in your output.

ParameterTypeRequiredDescription
session_indexstringyesSix-character token from start_session. Use the same value for every call in this session.
checkpoint_idstringyesId of the checkpoint step you are yielding.

resume_checkpoint

Resume execution after the orchestrator resolves a checkpoint.

Full description

Call after the orchestrator resolves a checkpoint and resumes you.

Verifies the checkpoint is cleared and returns any variable updates to apply before continuing the activity.

ParameterTypeRequiredDescription
session_indexstringyesSix-character token from start_session. Use the same value for every call in this session.

present_checkpoint

Load the full details of the currently-active checkpoint for the session.

Full description

Loads the active checkpoint's message, options, and effects so you can show it to the user.

Reads from state.activeCheckpoint — no separate checkpoint handle is needed.

ParameterTypeRequiredDescription
session_indexstringyesSix-character token from start_session. Use the same value for every call in this session.

respond_checkpoint

Submit a checkpoint response to clear the active-checkpoint gate.

Full description

Submits the user's checkpoint decision and clears the active checkpoint.

Present the checkpoint to the user and wait for input before calling this.

Provide exactly one of: option_id (user picked an option), auto_advance (timer elapsed on a checkpoint with a default), or condition_not_met (conditional checkpoint whose condition was false).

Variable effects from the chosen option are applied; type mismatches produce warnings in _meta.validation but do not block the response.

ParameterTypeRequiredDescription
session_indexstringyesSix-character token from start_session. Use the same value for every call in this session.
option_idstringnoOption the user selected. Must match one of the checkpoint's defined options.
auto_advancebooleannoSet true to use the checkpoint's default option after its timer elapses.
condition_not_metbooleannoSet true to dismiss a conditional checkpoint whose condition evaluated to false.

Techniques and resources

Fetch technique definitions and lazy-loaded reference material.

get_technique

Load one fully composed technique.

Full description

Fetches one technique for the current workflow or activity.

Before any activity is active, returns the workflow's first technique. During an activity, use step_id to fetch a specific step's technique, or omit step_id for the activity's first technique.

The response is fully composed: inherited inputs/outputs and merged rules from ancestor techniques, plus binding annotations when fetched via a step.

Techniques load one at a time. In persistent context mode, an identical refetch may return a short unchanged marker; pass full: true to get the full payload again.

Every fetch is recorded for trace and advisory manifest checks on the next next_activity call.

ParameterTypeRequiredDescription
session_indexstringyesSix-character token from start_session. Use the same value for every call in this session.
step_idstringnoStep within the current activity. Omit to get the first technique for the activity or workflow.
fullbooleannoForce full technique content even when persistent mode would return an unchanged marker.

get_resource

Load a resource by its id, optionally narrowed to a single section.

Full description

Loads reference material by id — templates, guides, or other markdown resources linked from techniques.

Bare ids (review-mode) resolve within the current workflow. Prefixed ids (meta/bootstrap-protocol) load from another workflow.

Add #section to fetch one heading slice instead of the whole file.

Each fetch is logged for observability only; nothing validates that you called it.

ParameterTypeRequiredDescription
session_indexstringyesSix-character token from start_session. Use the same value for every call in this session.
resource_idstringyesResource slug, optionally workflow-prefixed (meta/bootstrap-protocol), optionally with #section anchor.

Trace

Execution history for debugging and audit.

get_trace

Retrieve the execution trace for the current workflow session.

Full description

Returns the tool-call history for debugging or audit.

Pass accumulated trace_tokens from next_activity responses to reconstruct a specific segment. Omit them to read the live in-memory trace for the session.

ParameterTypeRequiredDescription
session_indexstringyesSix-character token from start_session. Use the same value for every call in this session.
trace_tokensstring[]noTokens collected from next_activity _meta.trace_token responses.