Skip to main content
Version: 0.1.18

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.