Skip to content

MCP tools ​

Neuronz.ai gives your agent a set of tools over the Model Context Protocol (MCP), the standard way agents call outside tools. Once Neuronz.ai is connected (the plugin in Claude Code and Oh-My-Pi, or the connector in the Claude desktop app), the tools below are available to your agent. It uses them on its own, and you can ask it to call one for you ("list my open conflicts", "read my rules").

Tools are grouped by what they work on. Most read and write the records described in Core concepts and detailed under Features. Each one works on the current profile unless you name another.

Memory & recall ​

The everyday path — durable facts and the unified lookup across them. See persistent memory and auto-recall.

ToolWhat it does
recallOne search across memory, past actions, and knowledge — your default "what do I already know about X".
fact_searchSearch facts only.
fact_addSave one fact. If existing facts say almost the same thing, the answer lists them (up to 10, with a one-line gist each) so your agent can settle them with fact_resolve; pass subject to attribute it to a colleague instead of yourself.
fact_resolveSettle one similar fact that fact_add flagged: duplicate retires the new fact and keeps the old one, supersedes archives the old one and keeps the new one, conflicts disputes the pair until you settle it. Safe to repeat.
fact_get · fact_listFetch or list facts.
fact_update · fact_deleteEdit a fact (the old version is kept as history) or retire it.
list_conflictsList contradictions — each a set of facts that disagree, all held out of recall until settled.
resolve_conflictSettle a contradiction in one decision: keep one claim, retire them all, replace them with a correction, or put it off for later.

Personas ​

The social map: your own profile plus every colleague's. See personas & the social map.

ToolWhat it does
get_personaRead a subject's summary + traits — omit the name for your own, pass a colleague's name for theirs. When a prompt mentions a colleague, the agent is told how many traits are stored about them and to call this before writing to or about them. The summary is for you to read; the agent writes to the traits.
list_persona_subjectsList every subject (yourself plus every colleague) on this profile.
add_persona_subject · update_persona_subject · delete_persona_subjectCurate the subject roster — people you work with, or groups of addressees like "clients" (name, kind, aliases, summary).
update_persona_summaryRefresh a subject's human-readable summary — pass subject for a colleague, omit it for yourself. Adding, editing or retiring a trait reports how out of date the summary has become, so the agent can refresh it in the same turn.

Rules ​

Human-owned durable rules. Proposed rules wait for a human to approve them. See rules.

ToolWhat it does
read_rulesRead the rules in scope. Omit every selector for the full profile-wide read, or narrow to particular rules with slugs and/or ids (unioned; ids are dash- and case-insensitive). Also takes deliveryToken — see below.
propose_ruleSuggest a rule (lands as proposed). Takes conditions — when the rule binds, and force — see below.
create_rule · update_rule · delete_ruleManage rules (creation implies human confirmation). create_rule and update_rule take conditions, the single field describing when the rule binds: a mode of all or any over a flat list of tests, each either a match on the tool name, file path, working directory, git branch, tool input, prompt, or model, or a plain-language text statement the agent judges in the moment. Omit it, or pass an empty list, and the rule is unconditional.
resolve_rule_askRecord your answer to a pending proposal — accepted is the only thing that makes a rule binding; declined retires the claim; deflected means "not now".

With the plugin, rules arrive as a short notice, and read_rules fetches them. Every prompt carries a short block saying how many approved rules apply or still need their conditions checked, naming them, and quoting the exact read_rules({ profile, ids, deliveryToken }) call that returns their text — see how an applying rule reaches your assistant. Two things about that call:

  • deliveryToken is copied, never made up. Neuronz.ai issues it so later prompts can tell which rules this session has already read. The agent passes back exactly the value the notice gave; when the notice gave none, it leaves it out.
  • Without deliveryToken it is an ordinary read. Reading rules to author one, review what is in scope, or check a wording is the same call without deliveryToken; it returns the rules you select and records nothing.

create_rule and propose_rule refuse to write, with a CONFLICT_SUGGESTED error, when an approved rule already says nearly the same thing (the rule conflict check). The error names the existing rule, says how similar the two are (from 0 to 1), and suggests update_rule on it instead. The agent brings that back to you rather than retrying. If you confirm the new rule really is separate, it repeats the call with force: true and the rule is saved. update_rule is never refused this way.

Voice ​

How you write, as distinct from what your agent does. Voice has three parts:

  • A voice atom is one claim about how you write ("uses short sentences").
  • An atom group is a named set of atoms. A group can include other groups.
  • A voice condition (the *_register tools) says when one group applies, using six settings: direction (who is writing to whom), audience, act (a chat reply, a commit message…), language, situation, and model. A setting you leave out means any.

Atoms and groups are shared across all your profiles and are reused, not copied: to apply a voice somewhere new, add a voice condition that points at the group you already have, and set that condition's global / profiles scope to choose which profiles it covers. See voice.

ToolWhat it does
add_atom_group · get_atom_group · list_atom_groups · update_atom_group · delete_atom_groupManage the named sets of claims — the reusable half. parents is what a group inherits, in order; exemplars are verbatim sample messages. Both replace their whole set on update. What a group applies is its atoms, so change the writing with add_voice_atom / update_voice_atom, never here. Groups are shared by all your profiles: list_atom_groups shows the voice conditions applying each one in every profile, and a delete is refused while any condition still points at it, while other groups include it, or while it holds atoms that are in no other group.
add_register · get_register · list_registers · update_register · delete_registerManage voice conditions — the six settings and the one group each applies (group is required on create). Read list_registers first, so a new one extends what you have instead of duplicating it. Every setting is optional and a condition never inherits one from another, so name only the settings you mean to narrow by. Deleting a condition stops applying that voice there and keeps the group. The audience setting is a reference to a persona subject: pass a name, an alias or an id and the server resolves it, refusing an audience no subject matches (create it first with add_persona_subject, kind=group for a class like "clients").
scope on add_register · update_registerglobal: true applies the condition in every profile you have, including profiles created later. profiles: [...] names specific ones; pass neither on create and it stays in the current profile; pass neither on update and the scope is left alone. You can't pass both. A condition naming a specific audience must stay in exactly the profile you are writing from, because that person is stored in that profile.
add_voice_atom · update_voice_atom · delete_voice_atomRecord, revise, or retire one claim about how you write, placed in at least one group via groups. A style correction belongs here, not in a fact or a rule. An edit takes effect on the next message.
bind_voice_atom · unbind_voice_atomAdd an existing atom to another group, or remove it from one — refused when it would leave the atom in no group at all. Takes effect on the next message.
get_resolved_voiceGet the voice for a situation: every voice condition that holds applies its group (with the groups it includes), and the atoms come back without duplicates, most specific first. audience takes the same person or group reference as the conditions. With the plugin, each prompt tells the agent which voice applies and how many atoms it has, and gives the exact call to make before its first written reply (model is required; the notice fills it in, or unknown when your harness does not report the model). The call carries a deliveryToken from the notice, so Neuronz.ai records what this session fetched: the next notice says whether the agent already holds the current voice, the voice changed since, or it has not fetched it yet. The result also carries a version. The same notice lists voices that apply only in a particular situation (an incident, a handoff) without their atoms; when that situation holds, the agent calls this with it to get them.
get_voice_ask · resolve_voice_askAsk you about an unconfirmed atom only where it would actually apply, and record your answer — rebound moves it to the groups it really belongs to instead of dropping it.

Knowledge ​

See knowledge docs.

ToolWhat it does
add_knowledge · get_knowledge · list_knowledge · update_knowledge · delete_knowledgeManage reference docs; each is split into sections so recall can find the part that matches. Adding a doc with the same source as an existing one in the current profile replaces it; to move a doc to another profile, use update_knowledge. The agent also passes the facts it drew from the doc in derivedFacts (content, optional kind and status), and passes the full list again whenever it edits the doc, so facts the doc no longer supports are retired. A fact whose text matches one the doc already owns is kept as is; every other one is saved as a new fact, and the answer lists any near-identical existing facts for each (like fact_add) so your agent can settle them with fact_resolve — the doc's link follows the fact that is kept.
get_knowledge_outline · get_knowledge_chunk · list_knowledge_tagsBrowse a doc's section headings without loading its text; read one section (neighbors=N also returns the N sections on each side); list the tags in use.

Topics, history & runs ​

See topics & topic mode. A topic is one ongoing piece of work or recurring issue; topic mode is the topic a session is currently working in. A run (one use of a skill or command asset) is recorded automatically when the session ends.

ToolWhat it does
create_topic · get_topic · list_topics · update_topic · touch_topic · delete_topicGroup recurring issues / units of work; touch_topic bumps a recurrence. Filing a record under a topic ages its summary, so those writes come back with a topicSummaries block — refresh the stale ones with update_topic(summary=…), which resets the count.
enter_topic · exit_topic · current_topicEnter or leave topic mode: enter_topic makes a topic the one this session is working in, so what the agent saves is filed under it; exit_topic leaves it and asks the agent to refresh the topic's summary. current_topic reports the topic a session in this repository is working in, if any.
add_topic_tags · remove_topic_tagsTag topics.
log_action · list_actions · update_action · delete_actionRecord and read past work — what was done and why.
add_eventAttach raw evidence (a log excerpt, an alert payload) to a recorded action, and optionally to a topic.
list_runs · get_runRead recorded runs (list_runs filters by assetId).

Skills & assets ​

Ship skills, commands, and subagents to every session. See skills & assets.

ToolWhat it does
list_assets · get_assetBrowse stored assets.
add_asset · update_asset · delete_assetManage an asset (kind ∈ skill · command · agent).

Graph ​

Typed links between records. See the knowledge graph.

ToolWhat it does
link · unlinkCreate or remove a typed edge between two entries.
expandWalk the graph outward from an entry.

Profiles ​

See profiles.

ToolWhat it does
list_profilesList profiles and their directory routes.
create_profileCreate a new, empty profile, optionally routing one directory to it. Use it to give a directory inside another profile's recursive route its own profile. It refuses a name that already exists and a directory that already has its own route.
set_dir_profile · unset_dir_profileRoute a directory to a profile.
switch_profileFor chats without the plugin (chats and Cowork tasks in the Claude app, claude.ai): switch this chat to another existing profile. It stores nothing on the server and leaves your default chat profile unchanged; the chat passes the new profile on every later call. With the plugin, use /neuronzai:switch-profile instead.

Chats with no profile ​

A chat or Cowork task in the Claude app, or a chat on claude.ai, reaches Neuronz.ai only through the MCP connector, so it has no working directory and no profile resolves on its own. The first profile-scoped tool call in such a chat returns a tool error instead of running:

  • If you set a default chat profile (dashboard → Profiles, Set as default on a profile), the error names it and tells the agent to call again with profile="<that profile>" and to keep passing it on every later call in the chat, including after the chat is resumed.
  • If you have no default, the error lists your profiles and tells the agent to ask you which one to use.

The chat's profile then lives in the conversation itself. Resuming the chat keeps it; changing your default only affects new chats; switch_profile changes it for the current chat.

ToolWhat it does
create_tag · list_tags · update_tag · delete_tagManage the tag registry.
kv_get · kv_set · kv_append · kv_delete · kv_list · kv_namespacesA key/value store for the agent's own bookkeeping (for example, which items a recurring job has already handled). Not part of recall.
searchKeyword search over topics and knowledge docs. Use it to check whether a topic already exists; for everything else, use recall.

TIP

recall is the one to reach for first — it spans memory, actions, and knowledge in a single ranked result, so you rarely need to search one kind of record by hand.