Every tool a connected agent holds, and which ones your grant carries.
A connected agent holds twenty tools, whichever client it is: the same set reaches Claude Code, Codex, OpenCode, claude.ai and ChatGPT. Which of them it sees depends on the grant behind your sign-in: the store registers the writing tools only when your grant carries the matching action, so a read-only grant does not see them at all and cannot call them by guessing the name.
Only one of these spends anything. mana_answer writes text and counts against your plan's answers for the month. Searching, reading, and storing are free.
| Tool | What it does |
|---|---|
mana_standing_instructions | Returns the rules, the glossary, the configuration records, and the usage meter. The same text arrives when the agent connects. |
mana_search | Finds records by words. Returns titles, excerpts, kinds, and dates. |
mana_retrieve | Builds one evidence pack for a question, with a trace of what it selected. |
mana_answer | Writes one cited answer from the evidence. This is the metered call. |
mana_memory_list | Lists memories by key, by key family, or by type. Returns a preview of each. |
mana_memory_read | Returns one memory in full, with its evidence and its revisions. |
mana_provenance | Says where a record came from and what it was derived from. |
mana_explain_access | Says why a record is readable, or why it is not. |
mana_context_list | Lists what a context directory holds. |
mana_context_read | Reads one context entry. |
mana_session_read | Reads a stored agent session. |
| Tool | What it does |
|---|---|
mana_remember_interaction | Stores a statement and the memory it produces in one transaction. This is the one an agent uses for a decision, a learning, an idea, or a setting. |
mana_remember_batch | Stores up to a hundred of those in one call. Each entry is written on its own, so one the store refuses does not stop the rest, and sending the same batch again writes nothing. |
mana_remember | Stores a memory bound to evidence that is already in the store. |
mana_memory_propose | Proposes a memory the agent inferred. It stays out of search until a person reviews it. |
mana_session_start | Opens a session to record what an agent did. |
mana_session_append | Adds a message or a tool result to that session. |
mana_session_commit | Closes the session. |
| Tool | What it does |
|---|---|
mana_memory_dismiss | Retires a memory. The record is kept as a rejected revision, never deleted. |
| Tool | What it does |
|---|---|
mana_evidence_feedback | Records whether the evidence a retrieval returned was useful. Any grant may call it. |
There is no tool that deletes anything, in any grant. Deleting a memory is an organization act and it is a human one: it happens in the dashboard or in the local tool, never through an agent. mana_memory_dismiss retires a memory and keeps it; Your data says what the difference is.
There is no separate edit tool. Writing under a key that already exists, with a changeReason, records a new revision and keeps the prior one. The history is linear and nothing is overwritten.
Each tool call is one call, and some clients ask a person to approve every one, so loading hundreds of records was hundreds of taps: one real load of 1,252 records stalled at 39. mana_remember_batch takes up to a hundred entries in one call and turns that load into thirteen.
Three things are worth knowing before you use it. One entry the store refuses does not stop the others, and the result names it by its position in the call, so you fix that one and send it again rather than starting over. An entry whose interaction identifier was already stored writes nothing and reports itself as existing, so sending the same batch twice is safe and is how you resume a load that stopped. And two entries of one call may not share an interaction identifier or a memory key, because a key names one record: such a call is refused before anything is written, rather than quietly recording one as a revision of the other.