Skip to main content
Version: main

MCP Tools

AIDE exposes 34 MCP tools organized into 10 groups. All tools are prefixed aide__ when accessed by the AI (e.g., aide__memory_search).

Memory Tools

ToolPurpose
memory_searchFull-text fuzzy search across memories
memory_listList memories, optionally filtered by category

Searches stored memories using Bleve full-text search with:

  • Standard word matching (case-insensitive)
  • Fuzzy matching for typos (1 edit distance)
  • Prefix matching via edge n-grams (2-15 chars)
  • Substring matching via n-grams (3-8 chars)

Parameters: query (string), category (optional), limit (optional, default 10)

memory_list

Returns all memories, optionally filtered by category. Results include timestamps — prefer most recent when values conflict.

Parameters: category (optional: learning, decision, issue, discovery, blocker), limit (optional, default 50)

Decision Tools

ToolPurpose
decision_getGet the current decision for a topic
decision_listList recorded decisions (origin to widen)
decision_historyFull chronological history for a topic

decision_get

Returns the latest (current) decision for a topic. Decisions are append-only — the most recent entry supersedes all previous versions.

Parameters: topic (string, kebab-case)

decision_list

Returns a summary of this project's decision topics with their current values. Call this first to discover what topics exist.

Parameters: origin (string, optional) — parent, peer, or all

By default only this project's own decisions are returned. Pass origin to also list rules in force here but stored upstream: parent for anchor-chain ancestors, peer for subscriptions, all for both. Inherited decisions are reported in a separate section with their source, and never shadow a local decision on the same topic. They are read-only from here — use decision_adopt to copy one into this project.

decision_history

Returns all versions of a decision in chronological order. Useful for understanding why a decision changed.

Parameters: topic (string)

State Tools

ToolPurpose
state_getGet a state value (global or per-agent)
state_listList all state values

state_get

Retrieves a state value. Common keys: mode, modelTier, activeSkill.

Parameters: key (string), agent_id (optional)

state_list

Returns all current state entries including global state and per-agent state (prefixed with agent:<id>:).

Parameters: agent_id (optional, to filter)

Message Tools

ToolPurpose
message_sendSend a message to another agent or broadcast
message_listList messages for an agent (auto-prunes expired)
message_ackAcknowledge a message as read

message_send

Sends inter-agent messages. Types: status, request, response, blocker, completion, handoff.

Parameters: from (string), content (string, max 2000 chars), to (optional, omit for broadcast), type (optional), ttl_seconds (optional, default 3600)

message_list

Returns unread messages for an agent. Expired messages (past TTL) are automatically pruned.

Parameters: agent_id (string), include_read (optional boolean)

message_ack

Marks a message as read so it won't appear in future message_list calls.

Parameters: message_id (integer), agent_id (string)

Code Tools

ToolPurpose
code_searchSearch indexed symbol definitions
code_symbolsList all symbols in a file
code_referencesFind all call sites of a symbol
code_statsGet index statistics
code_outlineGet collapsed file outline
code_top_referencesRank symbols by reference count
code_read_checkCheck if a file is indexed and unchanged

Searches symbol definitions (functions, methods, classes, interfaces, types) using Bleve full-text search. Supports filtering by kind, language, and file path.

Parameters: query (string), kind (optional: function, method, class, interface, type), lang (optional), file (optional), limit (optional, default 20)

code_symbols

Lists all indexed symbols from a specific file. If the file isn't indexed yet, it will be parsed on-demand.

Parameters: file (string)

code_references

Finds all call sites and usages of a symbol. Filter by reference kind (call, type_ref) and file path.

Parameters: symbol (string), kind (optional), file (optional), limit (optional, default 50)

code_stats

Returns the number of indexed files, symbols, and references. Use to check if the codebase has been indexed.

code_outline

Returns a collapsed file outline with signatures preserved and function/method/class bodies replaced by { ... }. Output size depends on file structure and grammar support. Line numbers are preserved for targeted reads. The outline is parsed and rendered from the same source snapshot.

Parameters: file (string), keep_comments (optional boolean)

code_read_symbol

Reads current definitions by name. Without file, the index locates candidate files; each candidate is parsed from the bytes used to render the result. Duplicate names return an error listing candidates rather than choosing the first match. An explicit file works without an index; add start_line to distinguish definitions within that file.

Parameters: symbol (string), symbols (optional batch of up to 10 names), kind (optional), file (optional exact path), start_line (optional current definition line; requires file).

Outline and symbol observations carry source_references: exact file byte sizes and SHA-256 hashes of the retrieved snapshots. A batch records each reference file once. These are conditional full-file comparisons, not proof of avoided reads or provider savings, and do not populate the historical tokens_saved field. The result also carries an aide/retrieval protocol metadata receipt with a unique ID, tool name, source references and a checksum of its text. Host observers attach this evidence to their real invocation/session/window only when the receipt survives and the returned text matches. Hosts may drop metadata or transform output, so a missing match remains unverified; the receipt is not added to the textual result. OpenCode protocol results are observed before any subsequent host formatting or truncation.

For reproducible text measurements, source-evidence checks and the limits of those results, see Retrieval experiments.

code_top_references

Ranks symbols by how many times they are referenced across the codebase. Useful for finding core APIs, shared utilities, and high-impact change targets.

Parameters: kind (optional: function, method, class, interface, type), limit (optional, default 25)

code_read_check

Checks whether a file is indexed and whether its modification time matches the index. This does not prove that its content is unchanged or that the agent has read the current version. Returns index status and a calibrated full-file token estimate.

Parameters: file (string)

Response fields: indexed, fresh, symbols, outline_available, estimated_tokens

Token Tools (Experimental)

ToolPurpose
token_statsGet estimated token usage statistics

token_stats

Returns observed UTF-8 text accounting and historical token estimates. The versioned accounting object separates host/server observations and generated arguments, identifies the token estimator, and reports legacy events and missing evidence. Stages can overlap; do not sum them. Missing accounting means an older server. These observations do not establish final delivery, avoided calls or provider savings.

Parameters: session_id (optional, filter by session)

Response fields: accounting, total_read, total_saved, event_count, by_tool, by_saving_type, sessions. Existing totals remain compatibility estimates; total_saved and related saved fields are explicitly legacy comparison estimates, not verified savings. accounting.model_usage is a separate versioned report of captured host usage counters, with source groups, field availability and excluded conflicting/invalid evidence. It does not change the legacy totals or text estimates. See Model usage accounting.

Native tool event attributes include context_status and, when known, context_epoch and context_continuity. Windows are isolated by host, session and actor within the project. Confirmed clear/compaction starts a new window; pending compaction suspends prior-read hints. Resume without verified continuity starts a new observation window labelled unknown, without asserting that context was lost. Cache expiry alone does not reset it. Hosts without the required lifecycle evidence retain unknown coverage.

accounting.transformations contains paired text changes, separated into rewrite_candidate (proposed Claude-compatible replacements) and adapter_change (changes made by aide's OpenCode adapter). Each pair contributes its measured before/after bytes and centrally estimated token delta once. Negative reductions preserve annotation overhead. Window details are bounded to 64 groups, with omitted-window and missing-evidence indicators; stage totals cover all selected pairs. The same data reaches CLI token stats --details and web Details/Accounting. Final delivery, provider savings and inferred avoided calls remain unverified. accounting.retrievals separately reports conditional full-file comparisons grouped by context window, with source versions counted once and result costs counted once per call. Gaps and clipped windows suppress the comparison; see the CLI token reference for scope and limits.

accounting.work (version 1) reports recorded MCP server operations by tool, with explicit returned/error/unknown outcomes, measured elapsed milliseconds, returned text and missing-measurement counts. Host observations and background activity are excluded from this subtotal. Text overlaps existing server-stage accounting; elapsed time is tool wall time, not CPU consumption or model time saved. A returned response is not proof of task quality. Session filters exclude unattributed calls, and absent older-server work data remains unavailable. See CLI token accounting for the report's measurement boundaries.

Measured-text MCP results also carry an aide/work metadata receipt (version, operation ID, tool and text SHA-256). When a host observer preserves that receipt with matching text and complete invocation identity, reports can attribute the server operation to its session. Missing or conflicting evidence stays unknown; text observations at host and server boundaries remain separate. The receipt does not change the model-facing text or establish successful task completion. accounting.by_stage.aide_context separately exposes prepared context source/appended-text measurements, not complete prompt usage or verified delivery.

Findings Tools

ToolPurpose
findings_searchFull-text search across findings
findings_listList findings by filter
findings_statsCodebase health overview
findings_acceptAccept (dismiss) findings

Full-text search across static analysis findings.

Parameters: query (string), limit (optional)

findings_list

List findings filtered by analyser, severity, file, or category.

Parameters: analyser (optional), severity (optional), file (optional), category (optional), include_accepted (optional boolean)

findings_stats

Returns a codebase health overview with counts by analyser and severity.

Parameters: include_accepted (optional boolean)

findings_accept

Accepts (dismisses) findings so they're hidden from future output. Can accept by ID or by filter.

Parameters: ids (optional array), analyser (optional), severity (optional), file (optional), all (optional boolean)

Task Tools

ToolPurpose
task_createCreate a new swarm task
task_getGet full task details
task_listList tasks by status
task_claimAtomically claim a task
task_completeMark a task as done
task_deleteDelete a task

task_create

Creates a new task (starts as pending).

Parameters: title (string), description (optional string)

task_get

Returns full task details including status, assigned agent, and result.

Parameters: id (string)

task_list

Lists tasks, optionally filtered by status.

Parameters: status (optional: pending, claimed, done, blocked)

task_claim

Atomically claims a pending task for an agent. Prevents two agents from claiming the same task.

Parameters: task_id (string), agent_id (string)

task_complete

Marks a claimed task as complete with a result summary.

Parameters: task_id (string), result (string)

task_delete

Deletes a task by ID.

Parameters: id (string)

Survey Tools

ToolPurpose
survey_searchFull-text search across survey entries
survey_listBrowse entries by analyzer, kind, or file
survey_statsAggregate counts by analyzer and kind
survey_runExecute analyzers to populate survey data
survey_graphBuild call graph for a symbol

Full-text search across codebase survey entries (module names, tech stack, entry points).

Parameters: query (string), analyzer (optional: topology, entrypoints, churn), kind (optional: module, entrypoint, dependency, tech_stack, churn, submodule, workspace, arch_pattern), file (optional), limit (optional, default 20)

survey_list

Browse survey entries with optional filters. No search query needed.

Parameters: analyzer (optional), kind (optional), file (optional), limit (optional, default 100)

survey_stats

Returns total survey entry count with breakdowns by analyzer and kind. Call this first when asked about codebase structure.

survey_run

Runs survey analyzers to discover codebase structure. Three analyzers: topology (modules, workspaces, tech stack), entrypoints (main functions, HTTP handlers), churn (git history hotspots).

Parameters: analyzer (optional: topology, entrypoints, churn -- omit to run all)

survey_graph

Builds a call graph for a symbol showing callers, callees, or both. Uses BFS traversal over the code index.

Parameters: symbol (string), direction (optional: both, callers, callees -- default both), max_depth (optional, default 2), max_nodes (optional, default 50)

Instance Tools

ToolPurpose
instance_infoGet identity and config of this instance

instance_info

Returns the resolved project root, working directory, version info, database path, gRPC socket path, operating mode, and process ID. Useful for debugging multi-instance or worktree issues.