Skip to content

MCP Tools Reference

All MCP tools exposed by animus mcp serve. These tools allow AI agents to interact with the Animus orchestrator over the Model Context Protocol. Each tool wraps an animus CLI command, accepting JSON input and returning structured results.

Most project-scoped tools accept an optional project_root parameter to override the server default. Marketplace tools may omit project_root because they operate on the public registry. Plugin mutation tools that touch installed binaries can still accept project_root so project-local .animus/plugins.lock participates in integrity tracking when present.

v0.4.4 note — subject surface is now mandatory for tasks and requirements. The legacy animus.task.* / animus.requirements.* / animus.cloud.* / animus.errors.* MCP tool families were removed. Use the unified animus.subject.* tools with kind=task or kind=requirement; they route through installed subject_backend plugins, including the default task/requirement plugins that own Animus-managed local state. External subject_backend plugins (Linear, Jira, GitHub Issues, etc.) plug into the same surface and can claim their own kind.


Agent Control (10 tools)

ToolDescriptionKey Parameters
animus.agent.listList configured project agent profilesproject_root
animus.agent.getGet a configured agent profileid, project_root
animus.agent.runLaunch an AI agent to execute worktool, model, prompt, cwd, timeout_secs, context_json, runtime_contract_json, detach, run_id, runner_scope, project_root
animus.agent.controlControl a running agent (pause/resume/terminate)run_id, action (pause, resume, terminate), runner_scope
animus.agent.statusGet status of an agent runrun_id, runner_scope
animus.agent.memory.getRead project-scoped agent memoryagent, project_root
animus.agent.memory.appendAppend project-scoped agent memoryagent, text, source, project_root
animus.agent.memory.clearClear project-scoped agent memoryagent, project_root
animus.agent.message.sendSend a message on a configured agent channelchannel, from, to, text, workflow_id, phase_id, project_root
animus.agent.message.listList project-scoped agent messageschannel, agent, limit, project_root

Daemon Management (11 tools)

ToolDescriptionKey Parameters
animus.daemon.startStart the Animus daemon for task scheduling and agent managementpool_size (alias: max_agents), interval_secs, auto_run_ready, auto_merge, auto_pr, auto_commit_before_merge, auto_prune_worktrees_after_merge, startup_cleanup, resume_interrupted, reconcile_stale, stale_threshold_hours, max_tasks_per_tick, phase_timeout_secs, idle_timeout_secs, skip_runner, autonomous, runner_scope, project_root
animus.daemon.stopStop the daemon gracefullyproject_root
animus.daemon.statusCheck if daemon is running and view basic stateproject_root
animus.daemon.healthGet detailed health metrics (active agents, queue, capacity)project_root
animus.daemon.pausePause the scheduler without stopping the daemonproject_root
animus.daemon.resumeResume the scheduler after a pauseproject_root
animus.daemon.eventsList recent daemon events for debugging and monitoringlimit, project_root
animus.daemon.agentsList currently running agent tasks and their statusproject_root
animus.daemon.logsRead recent daemon log entrieslimit, search, project_root
animus.daemon.configRead current daemon automation settingsproject_root
animus.daemon.config-setUpdate daemon automation settings and notification configauto_merge, auto_pr, auto_commit_before_merge, auto_prune_worktrees_after_merge, auto_run_ready, pool_size (alias: max_agents), interval_secs, max_tasks_per_tick, stale_threshold_hours, phase_timeout_secs, idle_timeout_secs, notification_config_json, notification_config_file, clear_notification_config, project_root

Subject Operations (6 tools)

The subject surface replaces the per-domain animus.task.* and animus.requirements.* tool families removed in v0.4.4. Set kind to task, requirement, or any other kind claimed by an installed subject_backend plugin (e.g. linear, jira, github-issue).

ToolDescriptionKey Parameters
animus.subject.listList subjects for a kind via the active subject_backend pluginkind, status, limit, project_root
animus.subject.getFetch a subject by wire id (<kind>:<native_id>)kind, id, project_root
animus.subject.createCreate a subject through the active subject_backend pluginkind, title, priority, status, labels[], body, project_root
animus.subject.updateUpdate a subject through the active subject_backend pluginkind, id, priority, status, labels[], project_root
animus.subject.nextReturn the highest-priority Ready subject for the given kindkind, project_root
animus.subject.statusSet the status of a subject by id through the active subject_backendkind, id, status, project_root

Log Operations (1 tool)

Surfaces the CLI's animus logs tail to MCP callers. Routes through the daemon control wire when the daemon is running, otherwise reads the in-tree events.jsonl fallback directly.

Unlike the CLI, the MCP surface does not expose --follow; this tool is a bounded fetch for recent entries, not a live stream.

ToolDescriptionKey Parameters
animus.logs.tailTail recent log entries from the active log_storage_backendplugin, level, since, limit, project_root

Workflow Operations (16 tools)

Runtime Tools (9)

ToolDescriptionKey Parameters
animus.workflow.runStart a workflow for a task (async, via daemon)task_id, requirement_id, title, description, workflow_ref, input_json, project_root
animus.workflow.run-multipleBatch-run workflows for multiple tasksruns[] (each: task_id, workflow_ref, input_json), on_error, project_root
animus.workflow.executeExecute a workflow synchronously (no daemon)task_id, workflow_ref, phase, model, tool, phase_timeout_secs, input_json, project_root
animus.workflow.getGet full workflow state by IDid, project_root
animus.workflow.listList workflow executionsstatus, workflow_ref, task_id, phase_id, search, sort, limit, offset, max_tokens, project_root
animus.workflow.pausePause a running workflowid, confirm, dry_run, project_root
animus.workflow.cancelCancel a running workflow permanentlyid, confirm, dry_run, project_root
animus.workflow.resumeResume a paused workflowid, project_root
animus.workflow.phase.approveApprove a gated workflow phaseworkflow_id, phase_id (alias: phase), feedback (alias: note), project_root

animus workflow phase reject exists in the CLI, but there is currently no matching built-in MCP tool. MCP callers can approve pending gates, but gate rejection remains a CLI-only action.

Decision & Checkpoint Tools (2)

ToolDescriptionKey Parameters
animus.workflow.decisionsList decisions made during workflow executionid, limit, offset, max_tokens, project_root
animus.workflow.checkpoints.listList saved workflow state checkpointsid, limit, offset, max_tokens, project_root

Definition Tools (5)

ToolDescriptionKey Parameters
animus.workflow.phases.listList workflow phase definitionsproject_root
animus.workflow.phases.getGet a workflow phase definitionphase, project_root
animus.workflow.definitions.listList workflow definitionsproject_root
animus.workflow.config.getRead effective workflow configurationproject_root
animus.workflow.config.validateValidate workflow config for shape errors and broken referencesproject_root

Queue Operations (7 tools)

ToolDescriptionKey Parameters
animus.queue.listList queued subject dispatchesproject_root
animus.queue.statsGet aggregate queue depth and status countsproject_root
animus.queue.enqueueAdd a subject dispatch to the queuetask_id, requirement_id, title, description, workflow_ref, input_json, project_root
animus.queue.reorderSet preferred dispatch ordersubject_ids[], project_root
animus.queue.holdHold a pending subject from dispatchsubject_id, project_root
animus.queue.releaseRelease a held subject for dispatchsubject_id, project_root
animus.queue.dropRemove a queued subject dispatch permanentlysubject_id, project_root

Output & Monitoring (6 tools)

ToolDescriptionKey Parameters
animus.output.runGet stdout/stderr from an agent executionrun_id, project_root
animus.output.tailGet most recent output/error/thinking eventsrun_id, task_id, event_types[], limit, project_root
animus.output.monitorStream real-time output from a run, optionally scoped by task or phaserun_id, task_id, phase_id, project_root
animus.output.jsonlGet structured JSONL event logrun_id, entries, project_root
animus.output.artifactsGet files generated during executionexecution_id, project_root
animus.output.phase-outputsGet persisted workflow phase outputsworkflow_id, phase_id, project_root

Runner (4 tools)

ToolDescriptionKey Parameters
animus.runner.healthCheck runner process health and capacityproject_root
animus.runner.orphans-detectFind orphaned runner processesproject_root
animus.runner.orphans-cleanupClean up orphaned runner processes by run IDrun_id[], project_root
animus.runner.restart-statsView runner uptime and restart historyproject_root

Skills (3 tools)

Discover and inspect skill definitions across every source the project can see: installed packs, registry-tracked installs, user-scoped (~/.animus/skills/), project-scoped (.animus/skills/), and agent-host probes (~/.claude/skills/, ~/.codex/skills/, etc.).

Each result carries a source tag ("installed", "user", "project", "agent_host") plus a source_detail object with provenance. For installed sources, source_detail includes registry, source, version, integrity, and artifact. For agent_host sources, source_detail includes host (e.g. "claude-code"), scope ("project" | "global"), structural_fields_stripped: true, and trust_tier: "prompt_text_only" — a reminder that structural fields (tool_policy, mcp_servers, env, extra_args, capabilities, adapters, codex_config_overrides) are stripped at parse time for agent-host skills, so only prompt text and prompt directives are trusted.

ToolDescriptionKey Parameters
animus.skill.listEnumerate skills across all sources with optional source filterproject_root, source (installed | user | project | agent_host | host id like claude-code; builtin is still accepted as a backward-compatible filter but current builds do not emit builtin rows)
animus.skill.getResolve a skill by name and return its full SkillDefinition plus provenance. Resolution priority: project > user > installed/pack > agent-host. Agent-host responses include a notice field explaining the structural-field stripproject_root, name
animus.skill.searchCase-insensitive substring match over skill name, description, and tags. Returns the same row shape as animus.skill.list plus a truncated flag when matches exceed limitproject_root, query, source, limit (default 50)

Memory (4 tools)

Project-scoped agent memory store. Each entry is { id, text, created_at, source } and lives keyed by agent_id under the repo-scoped runtime root.

ToolDescriptionKey Parameters
animus.memory.getFetch the full memory document for an agent profile, optionally narrowing to a single entry by idagent_id, entry_id, project_root
animus.memory.listList memory entries for an agent with optional case-sensitive prefix filter on entry textagent_id, prefix, limit, project_root
animus.memory.appendAdd a new memory entry. The entry receives a fresh uuid and timestamp. Returns the appended entryagent_id, text, source, project_root
animus.memory.clearDelete a single entry by entry_id, or wipe all entries for the agent when delete_all: true. One of entry_id or delete_all=true is requiredagent_id, entry_id, delete_all, project_root

Memory tool exposure model

The animus.memory.* tools are exposed in two places, with different gating:

  • Top-level animus mcp serve: all four tools are always present. External MCP clients (Claude Desktop, Cursor, etc.) can read/write memory for any agent id.
  • Spawned workflow agents: the memory MCP server is injected into a phase's runtime contract only when the active agent profile has capabilities.memory: true. Profiles with the capability absent or set to false do not see the memory tools in their tool list. See crates/workflow-runner-v2/src/runtime_contract.rs::inject_memory_mcp_for_capable_agent.

Plugin Control (6 tools)

Discovered Animus STDIO plugins are reachable from MCP clients via these meta-tools. Plugins themselves can declare additional mcp_tools in their initialize response; those are aggregated automatically.

ToolDescriptionKey Parameters
animus.plugin.listList discovered plugins (providers, subject backends, custom) with manifest metadata and discovery warnings.project_root, include_system_path
animus.plugin.infoSpawn a plugin, complete the initialize handshake, and return manifest plus runtime capabilities.name, project_root, include_system_path
animus.plugin.pingHealth-check a plugin by spawning it and sending $/ping.name, project_root, include_system_path
animus.plugin.callSend a JSON-RPC request to a discovered plugin.name, method, params, project_root
animus.plugin.installInstall a plugin from source, local path, or verified url. MCP installs run non-interactively and auto-confirm the trusted-org prompt.project_root, source, path, url, tag, name, sha256, force, skip_manifest_check, plugin_dir, require_signature, skip_signature, trusted_signers, force_rewrite_lockfile
animus.plugin.uninstallRemove an installed plugin binary and unregister it.project_root, name, plugin_dir

Plugin Marketplace (3 tools)

These tools query and update the public plugin registry view exposed by the CLI.

ToolDescriptionKey Parameters
animus.plugin.searchSearch the public plugin registry.query, kind, tag[], org, stability, registry_url, no_cache
animus.plugin.browseBrowse registry entries grouped by plugin kind.kind, installed, available, registry_url, no_cache
animus.plugin.updateUpdate one or all installed release-source plugins from the registry.name, tag, dry_run, force, registry_url, no_cache

Discovery order: ~/.animus/plugins.yaml (or the legacy ~/.config/animus/plugins.yaml only when the new registry is absent) → .animus/plugins/ → global install dir ($ANIMUS_PLUGIN_DIR when set, otherwise ~/.animus/plugins/) → $ANIMUS_PLUGIN_PATH$PATH (animus-provider-* / animus-plugin-* prefixes; $PATH opt-in via --include-system-path).


List Tool Pagination

All list tools support pagination via these common parameters:

ParameterTypeDefaultMaxDescription
limitinteger25200Maximum items to return
offsetinteger0--Items to skip
max_tokensinteger300012000Token budget for response compaction (min: 256)

List responses are wrapped in a guard envelope (animus.mcp.list.result.v1) that includes pagination metadata.

Batch Tool Behavior

animus.workflow.run-multiple accepts an on_error parameter:

ValueBehavior
"continue"Process all items regardless of failures
"stop"Stop processing after the first failure; remaining items are marked "skipped"

Batch responses use the animus.mcp.batch.result.v1 schema with a summary of succeeded/failed/skipped counts and per-item results.

Maximum batch size is 100 items per call.

See also: JSON Envelope Contract, CLI Command Surface.

Released under the Elastic License 2.0 (ELv2).