Skip to main content
Glama

Agent NERO

Persistent Agent Pool MCP Server for Claude Code

Your Context Is Always Near.

CI License: MIT Node.js TypeScript MCP


What Is Agent NERO?

Agent NERO is an MCP (Model Context Protocol) server that gives Claude Code the ability to spawn, manage, and communicate with persistent, named LLM agents that stay alive in memory for the duration of your session.

Unlike Claude Code's built-in subagents (which are fire-and-forget — spawned, used once, destroyed), NERO agents:

  • Persist — They stay alive in RAM with full conversation history

  • Remember — Each agent maintains its own conversation context across multiple interactions

  • Use tools — Agents can read/write files, search code, run commands, and interact with the filesystem

  • Collaborate — A shared memory bus lets agents publish findings that other agents (and you) can read

  • Specialize — Each agent has its own role, system prompt, model selection, and tag-based filtering

Zero modifications to Claude Code source required. NERO runs as a standard MCP server over stdio transport.

Related MCP server: AgentSpawnMCP

Architecture

Claude Code (Host)
    │
    ├── nero_spawn  ──→  AgentPool.spawn()  ──→  NeroAgent(config, apiKey, memoryBus)
    ├── nero_ask    ──→  AgentPool.get()    ──→  NeroAgent.ask(message)
    │                                              │
    │                                              ├── Anthropic API (tool-use loop, max 15 iterations)
    │                                              │     ├── read_file
    │                                              │     ├── write_file
    │                                              │     ├── list_files
    │                                              │     ├── search_files
    │                                              │     ├── run_command
    │                                              │     ├── memory_read
    │                                              │     └── memory_write
    │                                              │
    │                                              └── History (sliding window, token budget)
    │
    ├── nero_broadcast ──→ AgentPool.broadcast() ──→ All agents concurrently
    ├── nero_status     ──→ AgentPool.getStatus()
    ├── nero_memory_*   ──→ MemoryBus (shared key-value store)
    ├── nero_kill       ──→ AgentPool.kill()
    ├── nero_reset      ──→ AgentPool.reset()
    └── nero_configure  ──→ NeroAgent.updateConfig()

Installation

Prerequisites

  • Node.js >= 20.0.0

  • Claude Code CLI installed and configured

  • Anthropic API key (with access to Claude Opus/Sonnet)

Setup

  1. Clone the repository:

git clone https://github.com/sanchez314c/agent-nero.git
cd agent-nero
  1. Install dependencies:

npm install
  1. Register as MCP server — Add to your ~/.mcp.json:

{
  "mcpServers": {
    "nero": {
      "command": "npx",
      "args": ["tsx", "/path/to/agent-nero/src/index.ts"],
      "env": {
        "ANTHROPIC_API_KEY": "your-api-key-here"
      }
    }
  }
}
  1. Allow MCP tools — Add to ~/.claude/settings.local.json:

{
  "enabledMcpjsonServers": ["nero"],
  "permissions": {
    "allow": [
      "mcp__nero__nero_spawn",
      "mcp__nero__nero_ask",
      "mcp__nero__nero_broadcast",
      "mcp__nero__nero_status",
      "mcp__nero__nero_memory_write",
      "mcp__nero__nero_memory_read",
      "mcp__nero__nero_memory_dump",
      "mcp__nero__nero_kill",
      "mcp__nero__nero_reset",
      "mcp__nero__nero_configure"
    ]
  }
}
  1. Restart Claude Code to pick up the new MCP server.

Verify Installation

In a Claude Code session, the NERO tools should appear when you run /mcp. You can test with:

Use nero_spawn to create an agent named "test" with role "test agent"

Usage

Spawn an Agent

nero_spawn:
  name: "architect"
  role: "Senior software architect"
  system_prompt: "You are a senior software architect. Analyze code structure, identify patterns, and propose improvements."
  model: "sonnet"
  tags: ["analysis", "architecture"]

Ask an Agent

nero_ask:
  agent: "architect"
  message: "Review the authentication flow in src/auth/ and identify any security concerns."
  include_memory: false

The agent will use its tools (read files, search code, run commands) to investigate and respond. Its conversation history persists — you can ask follow-up questions that reference prior answers.

Broadcast to All Agents

nero_broadcast:
  message: "Summarize your findings so far."
  tags: ["analysis"]
  collect_responses: true

Shared Memory Bus

Agents can share findings through the memory bus:

nero_memory_write:
  key: "findings.auth"
  value: "JWT tokens are not validated for expiry in the /api/admin routes."

nero_memory_read:
  prefix: "findings"

Agent Lifecycle

nero_status                    # Pool overview
nero_status agent:"architect"  # Detailed agent status
nero_configure agent:"architect" model:"opus"  # Switch model at runtime
nero_reset agent:"architect"   # Clear history, keep agent alive
nero_kill agent:"architect"    # Terminate permanently

Export Memory to Disk

nero_memory_dump:
  prefix: "findings"
  output_path: "/path/to/memory_snapshot.json"

MCP Tools Reference

Tool

Description

nero_spawn

Create a new named persistent agent

nero_ask

Send a message to an agent, receive response

nero_broadcast

Message all agents (or filtered by tags)

nero_status

Pool overview or detailed agent status

nero_memory_write

Write to shared memory bus

nero_memory_read

Read from shared memory bus

nero_memory_dump

Export memory entries to JSON file

nero_kill

Terminate an agent permanently

nero_reset

Clear agent history, keep it alive

nero_configure

Update agent config at runtime

Agent Internal Tools

Each agent has access to 7 tools via the Anthropic tool-use protocol:

Tool

Description

read_file

Read file contents from disk

write_file

Write/create files (creates parent dirs)

list_files

Glob-based file discovery

search_files

Grep-based content search with regex

run_command

Execute shell commands (30s timeout, destructive commands blocked)

memory_read

Read from shared memory bus

memory_write

Write to shared memory bus

Configuration

Agent Defaults

Setting

Default

Range

Model

sonnet

opus, sonnet

Max history messages

50

4200

Max tokens per response

8192

25632768

Tool-use loop iterations

15

Fixed

Token budget (history)

100,000

Fixed

Environment Variables

Variable

Required

Description

ANTHROPIC_API_KEY

Yes

Anthropic API key for agent LLM calls

Development

Run from Source

# Direct execution
npx tsx src/index.ts

# With file watching
npm run dev

# Using the run script
./run-source-linux.sh

Type Check

npm run typecheck

Build

npm run build

Project Structure

agent-nero/
├── src/
│   ├── index.ts          # Entry point — MCP server + transport
│   ├── types.ts          # All TypeScript interfaces and types
│   ├── memory-bus.ts     # Shared key-value memory store
│   ├── agent.ts          # NeroAgent class — tool-use loop, history management
│   ├── agent-pool.ts     # Agent lifecycle management
│   ├── agent-tools.ts    # 7 internal tool definitions + executors
│   └── tools/
│       ├── spawn.ts      # nero_spawn MCP handler
│       ├── ask.ts        # nero_ask MCP handler
│       ├── broadcast.ts  # nero_broadcast MCP handler
│       ├── status.ts     # nero_status MCP handler
│       ├── memory-write.ts  # nero_memory_write MCP handler
│       ├── memory-read.ts   # nero_memory_read MCP handler
│       ├── memory-dump.ts   # nero_memory_dump MCP handler
│       ├── kill.ts       # nero_kill MCP handler
│       ├── reset.ts      # nero_reset MCP handler
│       └── configure.ts  # nero_configure MCP handler
├── docs/
│   ├── README.md        # Documentation index
│   ├── QUICK_START.md   # 5-minute setup guide
│   ├── ARCHITECTURE.md  # System architecture deep-dive
│   ├── INSTALLATION.md  # Setup and configuration guide
│   ├── DEVELOPMENT.md   # Development workflow and standards
│   ├── BUILD_COMPILE.md # Build system and compilation
│   ├── DEPLOYMENT.md    # Deployment and release process
│   ├── API.md           # Complete API documentation
│   ├── FAQ.md           # Frequently asked questions
│   ├── TROUBLESHOOTING.md # Common issues and solutions
│   ├── TECHSTACK.md     # Technology stack breakdown
│   ├── WORKFLOW.md      # Development workflow
│   ├── LEARNINGS.md     # Development lessons and patterns
│   ├── PRD.md           # Product requirements
│   └── TODO.md          # Known issues and planned features
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   ├── workflows/
│   │   └── ci.yml
│   └── PULL_REQUEST_TEMPLATE.md
├── package.json
├── tsconfig.json
├── run-source-linux.sh
├── LICENSE
├── CONTRIBUTING.md
├── CODE_OF_CONDUCT.md
├── SECURITY.md
├── CLAUDE.md
├── AGENTS.md
├── VERSION_MAP.md
└── CHANGELOG.md

Why "NERO"?

Named Entities with Retained Operations — persistent agents that remember, specialize, and collaborate. Unlike disposable subagents that vanish after one use, NERO agents are your standing team: always alive, always context-aware, always near.

License

MIT — Copyright (c) 2026 Jason Paul Michaels

Contributing

See CONTRIBUTING.md for guidelines.

Security

See SECURITY.md for reporting vulnerabilities.

Available Tools

10 tools
nero_askA

Send a message to a persistent agent and receive its response. The agent remembers all prior conversation. It can use tools (read files, search, run commands) to do real work.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentYesName of the agent to message
messageYesThe message/question/instruction to send
include_memoryNoIf true, inject current shared memory bus contents into the message context

TDQS

A4/5.0
Behavior3/5

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

No annotations exist, so description must bear the burden. It mentions persistence, memory, and tool use, but fails to cover potential issues like rate limits, blocking behavior, or error responses. Adequate but not exhaustive.

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 efficient sentences with no redundant information, perfectly sized for quick comprehension.

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?

No output schema, but the tool's simple send-and-respond nature is adequately explained. Sibling tools cover other operations, making this fairly complete for its complexity.

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 100% with clear descriptions for all three parameters. The description adds no extra meaning beyond the schema, so a baseline score of 3 applies.

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?

The description clearly states the verb ('send a message') and resource ('persistent agent'), and distinguishes it from siblings like nero_broadcast and nero_spawn by emphasizing persistent memory and tool-use capabilities.

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?

The description implies use for conversational interaction with a specific agent, but lacks explicit when-not-to-use or alternative tool references. Context from sibling names helps, but direct guidance is absent.

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

nero_broadcastA

Send a message to all agents (or a filtered subset by tags). Optionally collect all responses.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesThe message to broadcast to all agents
tagsNoOptional: only broadcast to agents with these tags
collect_responsesNoWait for and collect all agent responses (default: true)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses broadcast and optional response collection, but lacks details on error handling, message size limits, or agent availability. Adequate but not rich.

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 concise sentences with zero waste. Front-loaded with core action, then optional enhancements. 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?

Given complete schema documentation and no output schema, description provides essential intent. Lacks details on response format or timeout for collection, but adequate for a simple broadcast 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 covers 100% of parameters with descriptions. Description adds no new semantic information beyond what's in schema. Baseline score due to high coverage.

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?

Description clearly states the action: sending a message to all agents, with optional filtering by tags and response collection. It distinguishes well from siblings like nero_ask (individual query) and nero_spawn (agent creation).

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?

Implied usage as broadcast tool, but no explicit guidance on when to use vs alternatives like nero_ask. With 10 sibling tools, more clarity on selection would be beneficial.

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

nero_configureA

Update an agent's configuration at runtime (model, history limit, token limit, system prompt, tags).

ParametersJSON Schema
NameRequiredDescriptionDefault
agentYesName of the agent to configure
modelNoChange the agent's LLM model
max_historyNoChange maximum conversation messages
max_tokensNoChange maximum tokens per response
system_promptNoReplace the agent's system prompt
tagsNoReplace the agent's tags

TDQS

A3.6/5.0
Behavior3/5

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

Description discloses that changes occur 'at runtime' (immediate effect?), but does not detail side effects (e.g., does it restart the agent? Are changes persistent?). No annotations provided, so description carries burden, but lacks depth on mutation 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?

Single sentence that efficiently conveys the tool's purpose and the configurable options. No wasted words; front-loaded with the key action and resource.

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?

Description is minimal for a mutation tool with 6 parameters and no annotations or output schema. It does not mention return values, confirmation of update, error conditions (e.g., if agent does not exist), or whether all parameters are optional beyond 'agent'. Lacks guidance on behavior for omitted fields.

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 100% with descriptions for each parameter. Description adds no additional meaning beyond the schema, e.g., no explanation of how 'replace' works for tags or system_prompt. Baseline score of 3 is appropriate.

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?

Description clearly states the tool updates an agent's runtime configuration, listing specific fields that can be changed. Verb 'update' and resource 'agent configuration' are specific. Distinguishes from sibling tools like nero_spawn (creation) or nero_kill (termination).

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?

Description implies use when you need to modify an existing agent's settings, but does not explicitly state when to use versus alternatives like nero_spawn for creation or nero_reset for resetting. No exclusions or prerequisites mentioned.

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

nero_killA

Terminate a named agent. Its conversation history and context are permanently destroyed.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentYesName of the agent to kill

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description bears full burden. It explicitly mentions that conversation history and context are permanently destroyed, which is a critical behavioral trait. However, it omits other potential details like authorization requirements or confirmation steps.

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, efficient sentences with no wasted words. The action and primary effect are front-loaded.

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?

Given the simple nature of a 'kill' command with one parameter and no output schema, the description covers the essential information: action, target, and consequence. Minor omissions like success/failure handling are acceptable for this level of complexity.

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 100%, so the baseline is 3. The description does not add additional meaning beyond what the schema already provides for the 'agent' parameter.

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?

The description uses a specific verb 'terminate' and resource 'named agent', clearly distinguishing it from siblings like nero_status or nero_spawn. It also adds the consequence of permanent destruction, further clarifying its destructive nature.

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 description implicitly states usage for ending an agent but does not provide explicit when-to-use or when-not-to-use guidance, nor does it differentiate from alternatives like nero_reset. It is adequate but lacks comparative context.

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

nero_memory_dumpA

Export memory bus entries matching a prefix to a JSON file on disk. Use for pipeline recovery, monitoring, and reports.

ParametersJSON Schema
NameRequiredDescriptionDefault
prefixNoKey prefix to filter entries (e.g., 'swarm'). Empty string exports all entries.
output_pathYesAbsolute file path to write the JSON export (e.g., '/tmp/nero_memory_snapshot.json')

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries full weight. It discloses the core behavior (exporting to JSON file) and prefix filtering. However, it omits details like whether the file is overwritten or appended, or if the export is destructive to memory. The word 'dump' suggests non-destructive but is not explicit.

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 concise sentences with no wasted words. The first sentence immediately states the action and purpose, making it easy to scan.

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 tool with two parameters and no output schema, the description is fairly complete. It covers the action, use cases, and hints at the parameters. Minor omissions like error handling or file behavior prevent a perfect score.

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 100%, so the input schema fully documents both parameters. The description adds no new parameter-level detail beyond indicating prefix matching and file output, which aligns with the schema. Baseline 3 is appropriate as per guidelines.

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?

The description clearly states the action (export), resource (memory bus entries), and output (JSON file on disk). It effectively distinguishes from siblings like nero_memory_read (which likely returns data inline) and nero_memory_write (which modifies memory) by specifying the file export behavior.

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?

The description provides explicit use cases: 'Use for pipeline recovery, monitoring, and reports.' This gives context on when to apply the tool. However, it does not mention when not to use it or suggest alternatives like nero_memory_read for interactive queries.

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

nero_memory_readA

Read entries from the shared memory bus. Can read a specific key, all keys with a prefix, or all entries.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoSpecific key to read
prefixNoRead all keys starting with this prefix

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided; description only states it reads entries, implying read-only behavior. It does not disclose edge cases (e.g., missing key, empty results) or any side effects, but there is no contradiction.

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 concise sentences front-load the purpose and cover all modes. No filler or redundancy.

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?

Adequately describes the three read modes for a simple tool with optional params and no output schema. Missing mention of behavior on missing keys, but sufficient for many agent scenarios.

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 100% with descriptions for both parameters. The tool description largely repeats the schema info (e.g., 'Read all keys starting with this prefix' matches schema). No additional semantic value added beyond what the schema provides.

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?

The description clearly states 'Read entries from the shared memory bus' with three explicit modes: specific key, prefix, or all entries. This distinguishes it from sibling tools like nero_memory_write (write) and nero_memory_dump (dump).

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 description implies when to use each mode (key, prefix, or no params) but does not explicitly guide the agent on when to prefer this over nero_memory_dump or other siblings. No mention of when not to use this tool.

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

nero_memory_writeA

Write a key-value entry to the shared memory bus. All agents and Master Control can read it.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesMemory key (use namespaced keys like 'findings.auth', 'tasks.pending')
valueYesValue to store
authorNoWho is writing this entry (default: '_master')_master

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It mentions that agents can read the data but fails to discuss side effects like overwriting existing keys, authorization requirements, or latency.

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 sentences, front-loaded with the core action. No unnecessary words. Every sentence adds information.

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?

The description covers the basic action and key formatting but lacks details on behavior (e.g., whether keys are overwritten or appended) and does not describe return values. Adequate for a simple tool but with gaps.

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 coverage is 100%, but the description adds value by suggesting namespaced key conventions and noting the default for 'author'. This provides practical guidance beyond the schema.

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?

The description clearly states the action ('Write'), resource ('shared memory bus'), and what is written ('key-value entry'). It distinguishes from sibling tools like nero_memory_read and nero_memory_dump.

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 description implies usage for sharing data across agents but does not explicitly state when to use it versus alternatives or when not to use it. No exclusions or alternate tool references are provided.

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

nero_resetB

Clear an agent's conversation history and token counter, but keep the agent alive with its configuration intact.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentYesName of the agent to reset

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It accurately describes the reset operation and clarifies that the agent stays alive, but omits details like required permissions, side effects on ongoing tasks, or response format.

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?

The description is a single sentence that is concise and front-loaded. Every word adds value, with no wasted text. It efficiently conveys the core functionality.

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?

Given the low complexity (one param, no output schema), the description is minimally complete. It covers the essential behavior but lacks context on return values, error scenarios, or operational details like whether the reset is immediate.

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 100% (one parameter with a simple description). The tool description adds no additional meaning beyond what the schema already provides. Per guidelines, baseline 3 is appropriate.

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 the tool resets conversation history and token counter while keeping the agent alive and config intact. It uses a specific verb ('clear') and resource ('agent's conversation history and token counter'), but does not explicitly distinguish from siblings like nero_kill or nero_configure.

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?

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or typical use cases. The description only states the action without context.

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

nero_spawnA

Create a new named persistent agent. The agent stays alive in memory with full conversation history until killed.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesUnique agent name (lowercase alphanumeric + hyphens)
roleYesShort description of the agent's role (e.g., 'code researcher', 'test writer')
system_promptYesSystem prompt defining the agent's persona and instructions
modelNoLLM model: 'opus' for complex tasks, 'sonnet' for general worksonnet
tagsNoOptional tags for filtering with nero_broadcast
max_historyNoMaximum conversation messages to keep (default: 50)
max_tokensNoMaximum tokens per response (default: 8192)

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries full behavioral disclosure burden. It reveals persistence and lifetime ('stays alive until killed') but does not disclose resource consumption, cleanup requirements, or rate limits. The input schema provides some behavioral cues via max_history and max_tokens.

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 sentences, no unnecessary words, front-loaded with the core purpose. Excellent conciseness.

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?

The description is brief and does not explain return values or side effects. For a tool with 7 parameters, it could provide more contextual completeness about how parameters affect behavior. However, the schema descriptions are thorough, so the description is minimally adequate.

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 100%, so baseline 3. The description adds no additional parameter-level guidance beyond what the schema already provides. It does not explain how parameters relate to the agent's behavior.

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?

The description clearly states the verb 'Create' and the resource 'named persistent agent', and adds key trait 'stays alive in memory with full conversation history until killed' which distinguishes it from sibling tools like nero_ask or nero_kill.

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?

No explicit guidance on when to use this tool versus alternatives (e.g., nero_configure?). It does not mention prerequisites or when not to use it. The description implies usage but lacks explicit context.

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

nero_statusA

Get an overview of the agent pool, or detailed status for a specific agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentNoOptional: specific agent name for detailed status

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided. The description discloses the tool as a read operation ('get'), which is non-destructive, but does not elaborate on any behavioral traits like authentication needs or rate limits. It is adequate but not detailed.

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?

The description is a single sentence front-loaded with the key action and resource, with no irrelevant information. Every word earns its place.

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?

Given the tool's simplicity (one optional parameter, no output schema), the description provides enough context for an agent to understand its purpose and basic behavior. It is complete for this level of complexity.

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 100% for the single parameter 'agent', and the description restates its purpose. The description adds minimal value beyond the schema's description.

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?

The description clearly states the verb 'get' and the resources 'overview of the agent pool' or 'detailed status for a specific agent', distinguishing the two modes and differentiating from sibling tools that perform actions like spawning or killing.

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 description implies usage through the optional agent parameter (overview vs detailed) but does not explicitly state when to use each mode or mention alternatives or when not to use this tool.

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

TDQS

A4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: interacting with agents, managing memory, configuring, spawning, killing, resetting, and status. No two tools overlap in functionality.

Naming Consistency5/5

All tools follow the consistent prefix 'nero_' and use a verb_noun pattern (e.g., nero_spawn, nero_kill, nero_memory_read). No mixing of conventions.

Tool Count5/5

With 10 tools, the set is well-scoped for managing persistent agents and a shared memory bus. Each tool serves a necessary role without redundancy.

Completeness5/5

The tools cover the full lifecycle of agents (create, configure, interact, reset, kill) and shared memory (read, write, dump). No obvious gaps in the intended functionality.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sanchez314c/agent-nero'

If you have feedback or need assistance with the MCP directory API, please join our Discord server