Skip to main content
Glama

Neurons MCP

Let the coding agents on your machine work as a team.

You often run more than one agent: Claude Code in one window, Codex in another. Each knows things the other doesn't: its own memory, its past chats, the work it just did. Neurons lets them ask each other, like colleagues, while you stay in charge:

  • an agent asks, and the agent that owns the knowledge answers;

  • you decide which chats may talk, by connecting them on a canvas, and you can follow every conversation;

  • agents never read each other's memory or chats, and no login, token or config is ever shared.

Everything stays on your machine: one small local database, no cloud and no account.

Features

  • Ask another agent. Say "ask Codex how the cache works". Codex searches its own memory and past chats, then replies.

  • Connect chats by drawing a line. Every open Claude and Codex chat is a box on the dashboard's canvas. Drag a line from one to another, and those two can talk until you hang up. Each message travels along its line as a dot, and both boxes blink.

  • You decide what goes. Each chat's ⚙ on the canvas sets how its messages go: Automatic, or Ask first (you allow each message from a notification or a card on the graph). A provider can be turned off in Neurons altogether.

  • Second opinions. Ask every other agent at once and see the answers side by side.

  • Hand work over. One agent writes a handoff (goal, what's done, next steps) for another. Every session also leaves an automatic one: which files it changed and what it committed.

  • Code review between agents. One agent asks for a review; another returns structured findings.

  • No collisions. Agents can claim files, and an agent is warned before it edits a file another session claimed.

  • A dashboard in your editor. The live canvas of chats and lines, every conversation as a chat, search and delete.

  • Optional free local model. Simple general questions can go to Ollama or LM Studio instead of an agent.

Related MCP server: Multiplayer MCP Server

Supported agents

Agent

Support

Claude Code (CLI and IDE extension)

Full

Codex (CLI and IDE extension)

Full; an idle Codex even answers on its own

Gemini CLI (0.35+)

Full

OpenCode, with any model (OpenRouter, Ollama, LM Studio, …)

Full, through a small plugin

Any other MCP client

Basic: it can ask and answer, and sees new messages when it next uses a Neurons tool

Works on Linux, macOS and Windows.

Setup

You need: Node.js 22.16 or newer (not 23.x), and git.

In the neurons-mcp folder, build it once:

npm install
npm run build

Then pick one of the two ways below.

  1. Build and install the extension:

    npm run package
    code --install-extension dist/neurons-*.vsix      # VSCodium: codium --install-extension …
  2. Click the Neurons icon in the activity bar.

  3. Press Connect next to each agent you use.

  4. Restart those agents' open sessions.

  5. Codex only: run /hooks in Codex once and trust the Neurons hooks.

Connect only adds a neurons entry to each agent's own config, and keeps a backup of the file. Disconnect removes it again.

Option B: from the terminal (no editor)

Register the server with each agent. Replace /path/to/neurons-mcp with your folder.

Claude Code

claude mcp add -s user neurons -e NEURONS_AGENT=claude -- "$(command -v node)" /path/to/neurons-mcp/dist/neurons-mcp.mjs

Codex

codex mcp add neurons --env NEURONS_AGENT=codex -- "$(command -v node)" /path/to/neurons-mcp/dist/neurons-mcp.mjs

Then add tool_timeout_sec = 180 under [mcp_servers.neurons] in ~/.codex/config.toml.

Gemini CLI: in ~/.gemini/settings.json

{ "mcpServers": { "neurons": { "command": "node", "args": ["/path/to/neurons-mcp/dist/neurons-mcp.mjs"], "env": { "NEURONS_AGENT": "gemini" }, "timeout": 180000 } } }

OpenCode: in ~/.config/opencode/opencode.json

{ "mcp": { "neurons": { "type": "local", "command": ["node", "/path/to/neurons-mcp/dist/neurons-mcp.mjs"], "environment": { "NEURONS_AGENT": "opencode" }, "enabled": true } } }

This is enough to ask and answer. For messages to arrive by themselves, each agent also needs the Neurons hooks; the editor's Connect adds them in one click. To add them by hand, see docs/how-it-works.md.

How to use it

You talk to your agents in plain words; they use Neurons for you.

  1. Open the chats you want to work together, for example Claude Code and Codex in the editor.

  2. Open the connection graph. In the Neurons sidebar, press Open the connection graph (or click Neurons in the status bar). It opens in an editor tab, with a box per open chat, named by its title.

  3. Connect them. Drag from a dot (●) on either side of one chat to a dot on the other. The line stays on the sides you picked, and one chat can have lines to several chats at once. From now on the connected chats can talk.

    ┌───────────────────────┐            ┌───────────────────────┐
    │ ✳ Claude Code    ●●●● │            │ ◉ Codex          ●●●● │
    │ Fix the cache         ●────────────● Review the API        │
    │ claude-1a2b3c4        │            │ codex-9f8e7d6         │
    │ claude-opus-5-5       │            │ gpt-6-astra           │
    │ ● Working          ⚙  │            │ ● Idle             ⚙  │
    └───────────────────────┘            └───────────────────────┘
  4. Ask one chat to talk to the other. For example, in Claude Code:

    Ask Codex where the cache TTL is set.

  5. Watch it travel. The message moves along the line as a dot, and the MSG light is lit on the sender while it travels, then blinks on the receiver as it arrives; both go off afterwards.

  6. The other chat answers from its own memory and past chats; the answer comes back the same way, and the asking chat tells you.

  7. Hang up when you are done: select the line and press Delete (or its ×), or tell either chat to disconnect.

A chat that is not connected cannot send. It says so and asks you to connect it, so nothing ever goes anywhere you did not wire up.

Settings per chat. The ⚙ on a box (or a double-click) opens its info, its lines and its settings:

  • Role: None (the default, an equal peer), Admin or Worker. An admin hands out tasks to the workers on its lines and answers their permission requests, asking you when it is not sure. A worker does its admin's tasks as if you gave them, within its usual permissions, replies with the result, and asks its admin before anything risky. A role never lets a message approve a permission prompt or override you.

  • Sending over its lines: Automatic (the default) sends right away. Ask first holds each message until you allow it: a notification pops up in the editor and a card shows on the graph, each with Allow and Deny. With no answer within 45 seconds nothing is sent, and the chat is told. Replies always go.

  • Wake when a message arrives (Claude Code chats): off by default. Turning it on first tells you what it means, and only Allow saves it. Then a message that reaches the chat while it is idle starts a turn by itself, as an idle Codex already does. Each such turn uses your Claude usage, and the message shows as coming from another session, so it can never approve a permission prompt.

  • Turn off a provider (for example Gemini CLI) in Neurons: its chats leave the graph, their lines end, and they can neither send nor receive. Its setup stays; turn it back on under Agents setup.

More things you can ask:

You say

What happens

"Ask everyone you're connected to what they think about this plan"

Every connected chat answers; the replies come back together

"Hand this work over to Codex"

A handoff note Codex can open with the goal, progress and next steps

"Ask Codex to review my changes"

Codex reviews the diff and sends back findings

"Claim src/api.js while you work on it"

Other sessions are warned before they edit that file

"Ask the local model what a 409 status means"

Answered for free by Ollama or LM Studio, if installed

Notes per agent

  • Codex: when it is idle, a message arrives in its chat and Codex answers right away. Trust the hooks once with /hooks.

  • Claude Code: when it is idle, the message waits for your next prompt; while it works, it answers after its current step.

  • Gemini CLI: answers at your next prompt, or after its current step. Needs version 0.35 or newer for the hooks.

  • OpenCode: gets messages through its plugin, after its next tool call.

Following along

  • Connection graph (an editor tab): every open chat is a box in its own color, titled as its agent titles it, with a small panel of lights: PWR (open), ACT (working) and MSG (lit while it sends a message, blinks as one arrives). Its ⚙ (or a double-click) shows its info, lines and settings. Agents setup (top right) connects or disconnects agents. Conversations shows every exchange as a chat, with search. Other tabs hold handoffs, reviews, notes, claims and storage (with backups before every clear).

  • The canvas only moves while you look at it, so it never slows the editor down.

  • Terminal:

    node dist/neurons.mjs watch            # live feed of messages, lines and agents
    node dist/neurons.mjs status           # who is connected, unread messages, open lines
    node dist/neurons.mjs disconnect all   # hang up every line

Privacy and safety

  • An agent only ever searches its own memory and chats. Others learn only what it chooses to reply.

  • Neurons never opens login files, tokens, .env files or agent configs, and refuses any message that looks like it contains a secret.

  • Everything is stored in one local database (for example ~/.local/share/neurons-mcp on Linux), readable only by you.

  • The optional local model is only ever reached on localhost.

Troubleshooting

Problem

Fix

"Couldn't reach codex"

That agent isn't running, or isn't connected. Open it, then ask again.

"Not connected to codex"

Draw a line between the two chats on the connection graph.

"[BLOCKED] … could not answer" or "… is blocked"

That chat hit its provider's usage limit (or lost its login). Whoever waits on it is told at once, with the reset time when the provider gives one, and new messages to it are refused until then. Its box shows Blocked. Ask another chat, or send again later.

"…'s chat is closed right now"

That chat's window was reloaded or closed, and its line is paused. Reopen the same chat (a Codex thread also needs one prompt) and the line is back. A paused line ends after a day.

A chat is missing from the graph

A Claude Code chat shows a few seconds after it opens; a Codex chat once it has run its first message. Check that its agent is connected under Agents setup.

An agent doesn't seem to get messages

Restart its session after Connect. For Codex, trust the hooks with /hooks.

The extension says Node is missing

Install Node 22.16+ (not 23), or set its path in the neurons.nodePath setting.

Learn more

docs/how-it-works.md covers the rest:

  • how lines and message delivery work;

  • the tools, the security model and every setting;

  • manual hook setup;

  • the project layout for developers.

License

Neurons is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.

Copyright (C) 2026 Sabbir Ahamed Maruf.

Available Tools

15 tools
claimsNeurons ClaimsB

Advisory edit locks so two sessions do not edit the same files. action claim (paths), release (paths, or all), list.

NameRequiredDescriptionDefault
repoNo
forceNo
pathsNo
actionYes
reasonNo
ttl_minutesNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare that this mutates state (readOnlyHint=false) but is not destructive and is closed-world. The description adds meaningful context with 'advisory', signaling the locks are cooperative rather than enforced. It does not disclose lock expiry/TTL behavior, conflict handling, or the effect of the force flag, which are the behaviors an agent most needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no filler; the purpose comes first and the action enumeration second. It is efficient, though the action list is a bit telegraphic.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter mutation tool with no output schema and no annotation detail on conflicts or expiry, the description is thin. It says nothing about lock duration, what a failed claim returns, what force overrides, or what list returns, leaving significant gaps an agent would need to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden, yet it only mentions paths and the 'all' shorthand for release. Four of six parameters (repo, force, reason, ttl_minutes) are never explained, so the agent must guess at force semantics and TTL defaults from the name alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names a specific mechanism (advisory edit locks) and the concrete problem it solves (two sessions editing the same files). The second sentence enumerates the three actions, so the agent knows this is a lock-management tool. It does not need sibling differentiation since the siblings are unrelated collaboration tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The rationale sentence implies when to use it (before editing shared files), and the action list hints at the lifecycle. However, there is no explicit when-to-use/when-not guidance, no mention of what happens on a conflicting claim, and no statement of which action applies in which situation beyond the parenthetical hints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

disconnectNeurons DisconnectB

Hang up your line to a handle or agent, or "all". No arguments: your only line.

NameRequiredDescriptionDefault
toNo

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is available. The description adds useful context that 'all' is a valid target and that omitting arguments disconnects the caller's only line, but it does not describe the effect of disconnecting or what happens afterward.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, with no wasted sentences. The phrasing 'No arguments: your only line' is slightly compressed and awkward, but overall it remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter disconnect tool with annotations and no output schema, the description is mostly complete: it covers the action, accepted target values, and default behavior. The main remaining gap is lack of guidance on when to choose this over related communication tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It does explain that the optional target can be a handle, an agent, or 'all', and that omission targets the caller's only line, but it does not clarify handle formatting or any other constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action, 'hang up your line', and identifies possible targets: a handle, an agent, or 'all'. It is clear enough to distinguish from unrelated siblings, but it does not explicitly differentiate this tool from related communication tools such as send or reply.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies that this is how you end a line, but it gives no explicit when-to-use guidance relative to siblings and no when-not-to-use conditions. The phrase 'No arguments: your only line' explains a default behavior more than it explains tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discoverNeurons DiscoveryC
Read-only

Who is online, your lines (the user connects chats in the Neurons dashboard), your inbox count. Pass model/task/label to tell peers what you are doing.

NameRequiredDescriptionDefault
taskNo
labelNo
modelNo

TDQS

C2.5/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states that passing model/task/label 'tells peers what you are doing', i.e. broadcasting your activity to other users — a side effect that modifies shared state. This conflicts with the annotation readOnlyHint=true, which declares the tool does not modify its environment.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two terse sentences with no filler, and the return-value summary is front-loaded. The first sentence is a cryptic noun list rather than a clean action statement, which slightly hurts readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read tool with annotations but no output schema, the description covers the key returns (online peers, lines, inbox count) and the optional broadcast params. It leaves 'lines' undefined and does not clarify the inbox-count overlap with the inbox sibling, so it is adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description must carry parameter meaning, and it does add value by framing all three params (model/task/label) as activity advertisement to peers. However it never distinguishes the three fields or gives format/length context, so it only partially compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description enumerates what the tool surfaces (who is online, your lines, inbox count) but never states the action as a verb, leaving the agent to infer 'discover peers/status'. It also overlaps with the sibling 'inbox' tool by claiming to return 'your inbox count', muddying differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is 'Pass model/task/label to tell peers what you are doing', which explains parameter usage but not when to choose this tool over siblings like inbox or send. No when-not-to-use or alternative routing is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

handoff_getNeurons HandoffsB
Read-only

With id: the full handoff. Without: recent handoffs, including auto snapshots of other sessions' uncommitted work (filter by repo/agent).

NameRequiredDescriptionDefault
idNo
repoNo
agentNo
limitNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=false, destructiveHint=false, so the safety profile is covered. The description adds genuinely non-obvious context: the list mode includes auto snapshots of other sessions' uncommitted work, which an agent would not otherwise expect from a 'handoff' tool. It omits the default limit, ordering, and what fields a 'full handoff' contains, so it is useful but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact clauses with zero filler, and the mode split is front-loaded so the agent reads the decisive information first. It is arguably over-compressed to the point of being telegraphic, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description is the only place a caller learns what comes back, and 'the full handoff' is left undefined. With no annotations gaps to fill beyond read-only safety, the missing pieces are return shape, default list size, and ordering — enough to make it merely adequate for a 4-parameter read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It explains id (selects a single full handoff) and that repo/agent act as filters on the list mode, which is real added value. The fourth parameter, limit, is never mentioned, and no format or matching semantics are given for repo/agent strings.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states both operating modes precisely: with an id it returns one full handoff, without an id it returns a recent list. That is a specific verb+resource with mode differentiation, though it never names the sibling (handoff_publish) it complements, leaving the get/publish pairing implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'With id / Without' construction does tell the agent which branch to take based on whether it has an id, which is genuine conditional guidance. However, it offers no exclusions, no mention of when to prefer handoff_publish or session_read instead, and no hint about default result size or when to narrow by repo/agent versus listing broadly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

handoff_publishNeurons HandoffB

Hand work over: goal, done, decisions (with reasons), next steps, open questions, gotchas, files, commits. to notifies a running agent.

NameRequiredDescriptionDefault
toNo
doneNo
goalNo
repoNo
filesNo
titleYes
commitsNo
gotchasNo
summaryNo
decisionsNo
next_stepsNo
open_questionsNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state this is a non-read-only, non-destructive, closed-world write, so the description is not on the hook for the safety profile. It does add one genuinely useful behavior — `to` notifies a running agent — but it says nothing about where the handoff lands, whether it persists or is overwritten, what happens with an absent/invalid `to`, or what is returned after publishing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely compact and front-loaded: the core action leads, the field inventory follows, and the `to` side-effect is placed last. It earns its brevity, though the compression contributes to gaps elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A 12-parameter write tool with no output schema and 0% schema coverage needs the description to explain destination, persistence, notification behavior, and every parameter. This description omits the sole required parameter (title), two other fields, and all behavioral detail about what publishing actually does beyond notification.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the parameter burden across 12 parameters. It lists goal, done, decisions, next_steps, open_questions, gotchas, files, commits and `to`, but omits the required `title` entirely, plus `repo` and `summary`, and gives no format guidance (e.g. commit hash vs message, path expectations for files) beyond 'decisions (with reasons)'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb phrase, 'Hand work over', and enumerates the handoff payload, so an agent can tell this is a write/publish tool that produces a handoff record. It never names the sibling handoff_get or explains the publish-vs-retrieve split explicitly, so differentiation is only implied.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Publishing a handoff at the end of a work segment is implied by 'Hand work over' and by the `to` notification clause, which hints at coordinating with a running agent. There is no explicit when-to-use / when-not-to-use guidance relative to send, memory_save, or reply, so the agent must infer the routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inboxNeurons InboxB

Unread questions, replies, reviews and handoffs for you. wait_seconds blocks until something arrives.

NameRequiredDescriptionDefault
peekNo
limitNo
include_readNo
wait_secondsNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, implying a side effect, and the presence of peek/include_read strongly suggests fetching can mutate read state — yet the description says nothing about this. The only behavioral detail given is that wait_seconds blocks until something arrives; the caps (limit 50, wait 120s) and any side effects are undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero waste, and the resource enumeration is front-loaded ahead of the blocking-wait note. Nothing is repeated from structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description should say roughly what an inbox item looks like and which IDs it exposes for follow-up calls (reply, review_submit, handoff_get). It also leaves the read-state side effect unexplained. The wait_seconds behavior is at least covered, keeping this from being inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 4 parameters, so the description bears full responsibility, and it explains only wait_seconds. peek, limit, and include_read get no meaning at all — an agent cannot tell that peek likely means 'read without marking as read' or what limit defaults to.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete resource and enumerates its contents (unread questions, replies, reviews, handoffs), so the agent knows this is an aggregate inbox feed rather than a single-item fetch. However, there is no verb, and it never distinguishes itself from siblings like review_get, handoff_get, or recall, which an agent could reasonably choose instead.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'for you' suggests a personal feed and wait_seconds hints at long-polling, but there is no explicit when-to-use, no exclusions, and no guidance to prefer review_get/handoff_get for a single known item. The agent must infer the polling vs. blocking-wait choice from a single clause.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_saveNeurons Memory SaveA

Save, update (id) or archive (id + archive) a note in YOUR Neurons memory. Facts from a peer need source=peer and evidence of what you verified. No secrets.

NameRequiredDescriptionDefault
idNo
bodyNo
repoNo
tagsNo
typeNo
scopeNo
titleNo
sourceNo
archiveNo
evidenceNo
confirm_newNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation and non-destructive profile, and the description adds real policy the annotations can't convey: no secrets should be stored, and peer facts require declared source plus recorded evidence. It leaves unclear whether an update via id overwrites body wholesale or what confirm_new does.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, no filler, with the mode-to-parameter mapping front-loaded. The phrasing is telegraphic to the point of being slightly cryptic ('Facts from a peer need source=peer and evidence of what you verified').

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter mutation tool with no output schema and no per-parameter documentation, the description covers the operating modes but not enough of the surface for confident invocation. The undefined confirm_new parameter is the clearest completeness hole.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 11 parameters, so the description carries the burden and only explains id, archive, source and evidence. The remaining parameters, notably confirm_new, plus the roles of title vs body, tags, scope, type and repo, are left for the agent to guess.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb set (save/update/archive) and resource (a note in YOUR Neurons memory), and even maps each mode to its controlling parameter (id, id + archive). It does not contrast itself with siblings such as recall or recall_get, so an agent must infer the boundary between writing and reading.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mode selection is spelled out explicitly via parameters: no id = create, id = update, id + archive = archive. It also gives a conditional rule for peer-sourced facts (source=peer plus evidence). It stops short of naming when to prefer this over sibling tools or when not to save at all.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recallNeurons RecallA
Read-only

Search YOUR OWN knowledge: your memory files, past chats, Neurons notes and the repo. Use it to answer a peer's question. Open hits with recall_get.

NameRequiredDescriptionDefault
limitNo
queryYes
sourcesNo
repo_pathNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint=false and openWorldHint=false, so the safety profile is free. The description adds meaningful behavior beyond that: it enumerates the four corpora searched and makes clear the return is a list of "hits" requiring a second call to retrieve content — a non-obvious two-step interaction. It omits result ordering and the default of the limit parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, no filler: capability first, the use case second, the required follow-up last. Every sentence changes how the agent would call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and 0% schema description coverage, the description should work harder. It covers the search scope and the retrieval handoff, but an agent still cannot tell what limit defaults to or caps at, what repo_path does (and whether it is required when sources includes repo), or how hits are shaped.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning, and it only partly does: the four named corpora map one-to-one onto the sources enum (neurons, memory, sessions, repo), which is genuinely useful since the enum values are otherwise opaque. However, limit and repo_path get no mention at all, leaving half the parameters undocumented anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Search") and a precisely scoped resource set ("your memory files, past chats, Neurons notes and the repo"), with "YOUR OWN knowledge" drawing the boundary against external search tools like discover. The sentence "Open hits with recall_get" separates this search tool from its retrieval sibling without the agent needing to open either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit use case ("Use it to answer a peer's question") and an explicit follow-up step ("Open hits with recall_get"), which is clear routing guidance. It does not state when *not* to use it or name a competing search tool, so it stops short of full when/when-not coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recall_getNeurons Recall DetailA
Read-only

Open a ref from recall ("#12", "memory:…", "session:@", "repo::"). Your own data only.

NameRequiredDescriptionDefault
refYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds one genuinely new constraint — "Your own data only" — but says nothing about what happens with an invalid or expired ref, or what the returned payload looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the action front-loaded and the scope caveat placed last; the parenthetical examples are dense but each carries distinct information. No filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one parameter and no output schema, the description should clarify what a successful "open" produces and how errors on stale refs behave. It covers input shape adequately but leaves the return contract entirely implicit for a detail-fetching tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden, and it does supply the main semantic content: an enumeration of ref shapes (`#12`, `memory:…`, `session:<id>@<line>`, `repo:<path>:<line>`). The grammar remains partial (the `memory:…` form is elided), keeping it below a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Open a ref from recall") and backs it with four concrete ref-format examples, which makes it distinguishable from the sibling `recall` that produces those refs. It stops short of saying what "opening" yields, so it is clear but not fully differentiating.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Sequencing is only implied by "a ref from recall" — the agent must infer this is the follow-up call after a `recall` listing. No explicit when-not guidance, and the description does not address overlap with siblings like `session_read` even though one accepted ref form is `session:<id>@<line>`.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replyNeurons ReplyA

Answer a message addressed to you. Only what was asked, short, with sources. Proposals: status accepted or rejected. A permission request (a question): accepted allows it, rejected denies it.

NameRequiredDescriptionDefault
bodyYes
refsNo
statusNo
message_idYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (writable, non-destructive, closed-world). The description adds genuinely useful behavioral semantics beyond that: 'accepted' grants a permission request and 'rejected' denies it, which tells the agent that the status field triggers a real side effect. It stops short of saying whether that action is reversible or what the sender sees.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four very short sentences, purpose front-loaded, no filler. The telegraphic fragments ('Proposals: status accepted or rejected.') are efficient but slightly cryptic, which keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter write tool with no parameter descriptions and no output schema, the description covers purpose and the status decision, but leaves the default status, the nature of refs, and any confirmation of what happens after a reply or an accept noticeably under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the burden. It does explain the meaning of 'accepted'/'rejected' in context and 'with sources' hints at the refs array, but the 'answered' enum value and the refs format (up to 30 strings) are never clarified, and body length limits are only implied by 'short'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Answer) and a specific resource (a message addressed to you), which implicitly differentiates it from the sibling 'send' for new messages. It doesn't explicitly name the alternative, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Only what was asked, short, with sources' gives content/style guidance, and the proposal/permission-request sentences tell the agent which status to pick in two situations. However, there is no explicit when-to-use-this-vs-'send' or 'review_submit' guidance, and the default 'answered' case is left unstated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

review_getNeurons ReviewsB

With id: open (and claim) a review request or its result. Without: list reviews (status, mine).

NameRequiredDescriptionDefault
idNo
mineNo
repoNo
claimNo
statusNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The parenthetical "(and claim)" usefully discloses that this is not a pure read despite the "get" name, which is consistent with readOnlyHint=false and destructiveHint=false. But it does not say what claiming does to other users, whether claiming an already-claimed review fails, whether claiming is idempotent, or that the no-id listing path is read-only — meaningful gaps for a tool that mixes read and mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two clauses, front-loaded on the mode distinction, with nothing wasted. The telegraphic phrasing ("With id: ... Without: ...") is efficient but borders on cryptic, costing a point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A five-parameter, dual-mode tool with no output schema, no parameter descriptions, and mixed read/mutate behavior demands more than one sentence. Missing: the repo parameter's role, defaults for status/mine/claim, the claim-id dependency, and any hint of what the listing or claim result looks like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage the description does the heavy lifting, and it explains id as the mode switch and names status and mine as list filters. It never mentions the repo parameter at all, gives no defaults (what happens with zero arguments?), and the claim parameter is only hinted at with "(and claim)" — the id+claim interaction an agent most needs is left unstated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the two modes concretely: with an id it retrieves (and optionally claims) a specific review, without an id it lists reviews. That dual-mode framing plus the named filters (status, mine) tells an agent what the tool does and roughly how it differs from siblings like review_request and review_submit. Minus one point because "open" is ambiguous (retrieve? create?) and the resource being operated on is only implied by the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is keyed entirely to the presence of the id parameter, which is genuinely actionable guidance for choosing the mode. However, there is no mention of when to prefer this over review_request/review_submit/claims, and no prerequisites or exclusions are stated; usage is implied rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

review_requestNeurons Review RequestA

Ask a running agent to review a change: diff text, or base/head + files. Findings come back to your inbox. No secrets in the diff.

NameRequiredDescriptionDefault
toNo
baseNo
diffNo
headNo
repoNo
filesNo
focusNo
titleYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real context beyond that: the work is delegated to a 'running' agent and results are delivered asynchronously to the inbox rather than returned inline. It omits what happens if no agent is available and any cost/timeout behavior, so it stops short of full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short clauses with the core action front-loaded and the input-mode hint immediately after; no filler. It is arguably too terse for an 8-parameter tool, which costs it the top score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-param, no-output-schema tool the description covers what an agent needs to call it correctly: what it does, the two input shapes, that the response is asynchronous (findings arrive in the inbox, so review_get is implied), and the secrets constraint. Remaining gaps are parameter naming rather than missing task-critical information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the parameter burden. It explains the important ambiguity — diff vs base/head + files are alternative ways to specify the change — but leaves `to`, `repo`, `focus` (up to 4000 chars) and `title` entirely undefined, so half the parameters remain opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: ask a running agent to review a change, with the two supported input shapes (diff text, or base/head + files). It is clear what the tool does, though it never names the sibling review_get/review_submit tools that an agent would use to retrieve or supply the result, so differentiation is only implicit via 'findings come back to your inbox'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It does state the two mutually exclusive invocation modes and a hard constraint ('No secrets in the diff'), which is genuine usage guidance. However, it never says when to choose this over review_get or review_submit, nor what prerequisite state is needed (an agent actually being 'running'), so the agent must infer the surrounding workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

review_submitNeurons Review SubmitB

Finish a claimed review: verdict, short summary, findings. The requester gets it in its inbox.

NameRequiredDescriptionDefault
idYes
summaryYes
verdictYes
findingsNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations establish the safety profile (mutation, non-destructive, closed-world). The description usefully adds the side effect that the requester receives the result in their inbox, which the annotations do not convey. It says nothing about resubmission/idempotency, whether finishing closes the review permanently, or whether verdict=approve triggers downstream effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and the required payload, with no filler. It is, however, terse to the point of under-specification given a four-parameter schema with a nested array.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A mutation tool with a rich nested findings schema, zero schema description coverage, and no output schema. The description should explain the id, the findings structure, and what happens on submit, but it leaves an agent to reverse-engineer the payload from the raw schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load. It names three of four parameters but adds no meaning: it never explains that id is the review identifier, what each verdict value implies for the requester, or how the nested findings objects (file/line/severity/title/detail/suggestion) should be populated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Finish a claimed review") and enumerates the payload (verdict, summary, findings), which distinguishes it from review_request and review_get. It doesn't carve out the boundary against reply/send, but the action is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Claimed review" implies a prerequisite (the review must already be claimed, presumably via claims), but the description never says so explicitly or names the alternatives for unclaimed/other review operations. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sendNeurons SendA

Ask (question), tell (note) or suggest a memory change (proposal) to "codex", "claude", a handle, or "all" (every chat you are connected to, for a second opinion). Messages travel only over lines the user connected in the Neurons dashboard; without one this fails. "local" asks the free local model; local_first tries it before the target. Keep it short. wait_seconds blocks for the reply.

NameRequiredDescriptionDefault
toYes
bodyYes
kindNo
refsNo
repoNo
subjectNo
local_firstNo
wait_secondsNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses two high-value traits: a hard failure precondition (messages only travel over lines the user connected in the Neurons dashboard; without one this fails) and blocking semantics (`wait_seconds` blocks for the reply, up to the schema's 120s cap). It does not explain what a `proposal` triggers downstream or what happens when the wait expires without a reply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense and front-loaded: the routing targets come first, then fallback behavior, then the blocking caveat, with no filler sentences. The heavy inline quoting makes it slightly harder to scan than it needs to be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter tool with no output schema and only three boolean annotations, the description covers routing, failure, and blocking well but leaves a third of the parameters undocumented and never says what the reply actually looks like or what happens on timeout. Adequate, with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 8 parameters, so the description must carry the load. It explains `to`, `kind`, `local_first`, and `wait_seconds` well, but `refs`, `repo`, and `subject` receive no mention at all, and "keep it short" is vague next to the body's 8000-character maxLength.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives specific verbs (ask/tell/suggest) mapped to the three message kinds and enumerates valid targets ("codex", "claude", a handle, "all", "local"). It does not explicitly distinguish this from the sibling `reply` tool, so an agent must infer that `send` starts a conversation while `reply` continues one.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states when to pick each kind (question/note/proposal) and when to use "all" (for a second opinion) and "local"/"local_first" (free local model). What is missing is a when-not-to-use clause, particularly versus `reply` and `handoff_publish`.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

session_readNeurons Past ChatsB
Read-only

Without handle/native_id: list your own agent's past sessions. With one: read it (text and tool names, redacted).

NameRequiredDescriptionDefault
hereNo
tailNo
limitNo
handleNo
offsetNo
max_charsNo
native_idNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish this as a safe, read-only, non-destructive operation, and the description adds useful disclosure that returned session content is redacted and includes text and tool names. However, it says nothing about pagination, defaults, limits, or how the optional parameters affect behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the main behavioral distinction front-loaded and no wasted verbiage. The terse style is appropriate, even though it contributes to the semantic gaps captured elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with seven optional parameters, no output schema, and no schema descriptions, the description is too thin. It explains the central list/read distinction but omits how pagination, tail, limits, and location scoping (here) alter results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only explains handle/native_id and their absence/presence effect. It leaves here, tail, limit, offset, and max_chars completely undocumented, which is a significant gap for seven parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states two modes: listing the agent's own past sessions when no identifier is supplied, and reading a specific session when handle/native_id is supplied. The verb and resource are identifiable, though it does not explicitly differentiate itself from siblings like recall or discover.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit conditional guidance: omit handle/native_id to list sessions, include one to read a session. It does not mention alternatives among sibling tools, but the mode-selection condition is clear enough for invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 15 tool updatesv0.16.20
    • First observedclaims
    • First observeddisconnect
    • First observeddiscover
    • First observedhandoff_get
    • First observedhandoff_publish
    • First observedinbox
    • First observedmemory_save
    • First observedrecall
    • First observedrecall_get
    • First observedreply
    • First observedreview_get
    • First observedreview_request
    • First observedreview_submit
    • First observedsend
    • First observedsession_read

TDQS

B3.3/5.0

Scored across 15 tools

Disambiguation4/5

Most tools have clearly distinct purposes across messaging, memory, handoffs, reviews, sessions, and edit claims. Minor potential confusion exists between discover and inbox, and between handoff_get and session_read, but the descriptions clarify the boundaries well enough.

Naming Consistency3/5

The naming is readable and partly systematic, especially in the handoff_* and review_* families, but it mixes bare verbs (send, reply, disconnect), bare nouns (inbox, claims), and noun_verb compounds (recall_get, memory_save, session_read). The convention is not predictable across the full set.

Tool Count5/5

Fifteen tools is appropriate for a multi-agent collaboration server covering messaging, memory, handoffs, reviews, sessions, and edit locks. Each tool appears to serve a distinct workflow rather than duplicating another.

Completeness4/5

The surface covers core collaboration workflows well: discovery, inbox/send/reply, memory search/save, handoff publish/read, review request/read/submit, session reading, and claims. Some minor lifecycle gaps remain, such as richer memory deletion/management beyond archiving and limited review cancellation/cleanup operations.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables peer-to-peer communication, discovery, shared state, and file coordination between AI coding agents across machines and sessions.
    23 npm
    16
    Elastic 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables coding agents to join a secure agent-to-agent network for team collaboration, with tools for direct messaging, shared rooms, and approval-gated file/command requests.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Connects multiple AI agents (Codex, Claude Code, Grok, etc.) into a coordinated, auditable team with shared memory, task ownership, and human oversight, enabling parallel collaboration without conflicts.
    241
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables multiple AI coding agents to coordinate on a shared software project by registering, claiming tasks, declaring file intents, publishing structured change reports, and handing off context, with a local dashboard showing state in near real time.
    MIT