Skip to main content
The MCP tools and the REST API are two front doors onto one capability. An agent inside a session uses the tools. A backend you write uses the routes. Nothing is exclusive to either. This page is the map between them, so you can prototype in a chat and ship against the API.

The tools

Reading

What it does. Retrieves the user’s own context: past decisions, graph connections, and any conflicts with positions they held before.When an agent calls it. Before answering anything that references “my”, “our”, “we”, “earlier”, “last time” or “previously”, and before asking a clarifying question the graph could already answer.Equivalent REST. POST /v1/retrieve for query. GET /v1/recall/identity, /graph, /insights and /temporal for the matching modes. POST /v1/brain/query for brain.mode: "compare" puts two retrievals side by side. Phrase the question as “A vs B”.
What it does. Returns ranked results with ids, for fetch to expand.Why it exists. OpenAI’s Deep Research contract recognises exactly two tools, search and fetch. Exo exposes both so ChatGPT’s Deep research and Company knowledge surfaces work. Exo-aware clients should prefer exo_context, which assembles context, identity and contradictions in one call instead of two round trips.Equivalent REST. POST /v1/retrieve, or POST /v1/search for the cheaper primitive without the cognition layer.
What it does. Returns the full content of one graph node, by the id search gave you.Equivalent REST. GET /v1/recall/graph/node/{node_id}.

Writing

What it does. Records one conversation turn: what was asked, what was answered, the topics, the facts learned, the decisions made.When an agent calls it. After a substantive exchange. This is the mechanism by which the graph grows across sessions rather than only at import time.Equivalent REST. POST /v1/ingest.
What it does. Saves content to the graph. Takes inline text, a list of file paths, or a single file path.When an agent calls it. When someone pastes a document, shares content, or says “remember this”, “save this” or “note that”.Import-grade files, .json, .zip, .pdf and .docx, go through the full parse pipeline. Other extensions are read as text and ingested inline.Equivalent REST. POST /v1/ingest for text, POST /v1/ingest/batch for many items, POST /v1/import for files.
What it does. Walks a project, chunks source files on function and class boundaries, and ingests them so later questions about the codebase have something to read. Respects .gitignore and .exoignore, and only re-ingests files that changed.Equivalent REST. POST /v1/ingest/batch. Chunking on syntax boundaries is the tool’s own work, not something the route does for you.
What it does. Four actions on an existing memory: find to locate a node, edit to change its content, correct to supersede an old belief with a new one and keep the history, and forget to erase it.When an agent calls it. When someone says “that’s wrong”, “I changed my mind about”, “actually it should be”, or “forget that”.Equivalent REST. POST /v1/retrieve for find, PATCH /v1/graph/nodes/{id} for edit, POST /v1/graph/nodes/{id}/supersede for correct, DELETE /v1/graph/nodes/{id} for forget.
correct and forget are not interchangeable. Correcting keeps the chain, so “what did they used to think?” still has an answer. Forgetting erases the content outright and cannot be undone, even by an undelete. Reach for correct unless the goal is genuinely erasure. See Belief and supersession.

Reasoning and control

What it does. Wraps a prompt in the subject’s cognitive scaffold and returns the scaffold plus the focal nodes that shaped it. Backs the Claude Code session-start hook.Equivalent REST. POST /v1/condition/scaffold. For a full session prompt rather than a single wrapped prompt, POST /v1/condition/session. See Conditioning your own agent.
What it does. Weighs two options against evidence already in the graph, and reports evidence strength, drift rate, competing hypotheses and confidence.Equivalent REST. Two POST /v1/retrieve calls, one seeded with each option, compared on their cognition blocks. The tool does the comparison for you.
What it does. Adjusts how Exo personalises responses: voice mode (mirror, professional, casual, default), quality mode (fast, balanced, thorough) and autonomy (conservative, balanced, autonomous).Equivalent REST. GET /v1/settings, PATCH /v1/settings, POST /v1/settings/reset.
What it does. Wipes knowledge-graph layers for the current organization. Destructive and irreversible.Always run it with dry_run=True first. That returns the counts and a confirm token. Re-run with dry_run=False and the exact token to delete.Equivalent REST. POST /v1/purge, which is the same two-phase ceremony. Account-level tables such as API keys and settings are never touched by either. See Forgetting and portability.

Quick map

“Equivalent” means the same capability, not a literal proxy. A tool may do work of its own on either side of the call, such as chunking a codebase on syntax boundaries or formatting a result for a model to read. Build against the routes when you want the raw payload.

Scopes still apply

A tool cannot do anything the key behind it is not allowed to do. An agent given a key scoped read plus graph:write can read, edit and supersede, and exo_edit’s forget action fails, because erasure needs memory:forget. That is the recommended posture for a coding agent: let it correct its own mistakes, do not let it destroy content. See Scopes.

Next

Claude Code

Connect a client and get these tools in your session.

Conditioning your own agent

Use the same identity in a model Exo does not host.