No session token required.
| Tool | Parameters | Description |
|---|---|---|
discover |
- | Entry point. Returns server name, version, available workflows, and the bootstrap procedure |
list_workflows |
- | List all available workflow definitions with full metadata |
health_check |
- | Server health, version, workflow count, and uptime |
| Tool | Parameters | Description |
|---|---|---|
start_session |
workflow_id, session_token?, agent_id? |
Start a new session or inherit an existing one. For fresh sessions, provide only workflow_id. For worker dispatch or resume, also provide session_token — the returned token inherits all state (sid, act, pcp, pcpt, cond, v) with agent_id stamped into the signed aid field. workflow_id is validated against the token's workflow. |
All require session_token. The workflow is determined from the session token (set at start_session). Each response includes an updated token and validation result in _meta.
| Tool | Parameters | Description |
|---|---|---|
get_workflow |
session_token, summary? |
Load the workflow definition for the current session. summary=true (default) returns rules, variables, execution model, initialActivity, and activity stubs. summary=false returns the full definition |
next_activity |
session_token, activity_id, transition_condition?, step_manifest?, activity_manifest? |
Load and transition to an activity. Returns the complete activity definition (steps, checkpoints, transitions, mode overrides, rules, skill references). Also returns a trace token in _meta.trace_token. Embeds required checkpoint IDs in the token — hard-rejects transition to a different activity until all are resolved via respond_checkpoint |
get_checkpoint |
session_token, activity_id, checkpoint_id |
Load full checkpoint details (message, options with effects, blocking/auto-advance config) for presentation |
respond_checkpoint |
session_token, checkpoint_id, option_id?, auto_advance?, condition_not_met? |
Resolve a pending checkpoint. Exactly one of: option_id (user's selection), auto_advance (use defaultOption after autoAdvanceMs elapses, non-blocking only), or condition_not_met (dismiss conditional checkpoint). Returns effects and updated token with the checkpoint removed from pcp |
All require session_token. The workflow is determined from the session token.
| Tool | Parameters | Description |
|---|---|---|
get_skills |
session_token |
Load all workflow-level skills (behavioral protocols). Returns a map of skill objects with _resources containing lightweight references (index, id, version — no content) |
get_skill |
session_token, step_id |
Load the skill for a specific step within the current activity. Requires next_activity to have been called first |
get_resource |
session_token, resource_index |
Load a resource's full content by index. Bare indices resolve within the session workflow; prefixed refs (e.g., meta/04) resolve from the named workflow |
| Tool | Parameters | Description |
|---|---|---|
get_trace |
session_token, trace_tokens? |
Resolve accumulated trace tokens into full event data. Without tokens, returns the in-memory trace for the current session |
The session token is an opaque string returned by start_session. It captures the context of each call (workflow, activity, skill) so the server can validate subsequent calls for consistency.
The token payload carries: wf (workflow ID), act (current activity), skill (last loaded skill), cond (last transition condition), v (workflow version), seq (sequence counter), ts (creation timestamp), sid (session UUID), aid (agent ID — set via start_session(agent_id)), pcp (pending checkpoint IDs), and pcpt (checkpoint issuance timestamp). When start_session is called with an existing session_token, all fields are inherited (including sid, pcp, act) and aid is stamped with the new agent identity.
- Call
discoverto learn the bootstrap procedure and available workflows - Call
list_workflowsto match the user's goal to a workflow - Call
start_session(workflow_id)to get a session token (workflow is bound to the session from this point) - Call
get_skillsto load behavioral protocols - Call
get_workflow(summary=true)to get the activity list andinitialActivity - Call
next_activity(initialActivity)to load the first activity - For each step with a skill, call
get_skill(step_id)thenget_resourcefor each_resourcesentry - Call
respond_checkpointfor each required checkpoint before transitioning - Read
transitionsfrom the activity response; callnext_activitywith astep_manifestto advance - Accumulate
_meta.trace_tokenfrom eachnext_activitycall for post-execution trace resolution
The server validates each call against the token's recorded state. Validation results are returned in _meta.validation:
{
"_meta": {
"session_token": "<updated-token>",
"trace_token": "<trace-token (on next_activity only)>",
"validation": {
"status": "valid",
"warnings": []
}
}
}Validation checks:
- Activity transition — the requested activity is a valid transition from the token's last activity
- Version drift — the workflow version hasn't changed since the session started
- Step completion — when
step_manifestis provided, validates all steps present, in order, with outputs - Activity manifest — when
activity_manifestis provided, validates activity IDs exist in the workflow (advisory) - HMAC integrity — token signature is verified on every call (rejects fabricated/tampered tokens)
Warnings do not block execution — the tool still returns its result. They enable agent self-correction. All validation warnings are captured in the execution trace.
When next_activity loads an activity with required checkpoints, those checkpoint IDs are embedded in the token's pcp field. Calling next_activity for a different activity while pcp is non-empty produces a hard error (not a warning).
To clear the gate, call respond_checkpoint for each pending checkpoint:
{ "session_token": "...", "checkpoint_id": "confirm-implementation", "option_id": "proceed" }Three resolution modes:
option_id— the user's selected option. Validated against the checkpoint definition. Minimum response time enforced (default 3s since checkpoint issuance).auto_advance: true— use the checkpoint'sdefaultOption. Only valid for non-blocking checkpoints (blocking: false). The server enforces the fullautoAdvanceMstimer.condition_not_met: true— dismiss a conditional checkpoint whose condition evaluated to false. Only valid when the checkpoint has aconditionfield.
The response includes any effects from the selected option (setVariable, transitionTo, skipActivities), the remaining pending checkpoints, and an updated token.
When transitioning between activities via next_activity, agents include a step_manifest parameter — a structured summary of completed steps from the previous activity:
{
"step_manifest": [
{ "step_id": "resolve-target", "output": "Target verified at /path" },
{ "step_id": "initialize-target", "output": "Checked out main, pulled latest" }
]
}The server validates: all required steps present, correct order, non-empty outputs. Missing manifest triggers a warning. All steps within an activity are required — optionality is handled at the activity level.
When transitioning between activities via next_activity, agents can include an activity_manifest parameter — a structured summary of activities completed so far:
{
"activity_manifest": [
{ "activity_id": "start-work-package", "outcome": "completed", "transition_condition": "default" },
{ "activity_id": "design-philosophy", "outcome": "completed", "transition_condition": "skip_optional_activities == true" }
]
}Validation is advisory — the server warns on unknown activity IDs or empty outcomes but does not reject the call.
Each next_activity call returns an HMAC-signed trace token in _meta.trace_token. The token contains the mechanical trace (tool calls, timing, validation warnings) for the activity just completed. Agents accumulate these opaque tokens and resolve them via get_trace for post-execution analysis. See Workflow Fidelity for details.
discover,list_workflows,start_session,health_check
Skills provide structured guidance for agents to consistently execute workflows.
When calling get_skill { step_id }:
- First checks
{workflow}/skills/{NN}-{skill_id}.toon(using the session's workflow) - Falls back to
meta/skills/{NN}-{skill_id}.toon(universal)
Session lifecycle protocol:
- Bootstrap:
start_session(workflow_id)→get_skills→get_workflow→next_activity(initialActivity) - Per-step:
get_skill(step_id)→get_resource(resource_index)for each_resourcesentry - Transitions: Read
transitionsfrom activity response →next_activity(activity_id)withstep_manifest
Activity execution protocol for workers:
- Goal resolution:
discover→list_workflows→ match user goal - Bootstrap:
start_session→get_skills→next_activity - Execution: Steps → checkpoints (yield to orchestrator) → artifacts → structured result
Consolidated role-based skills for the orchestrator (top-level agent) and worker (sub-agent). The orchestrator manages workflow lifecycle, dispatches workers, and presents checkpoints. The worker self-bootstraps, executes steps, and reports structured results.