AgentNave
AgentNave is a local STDIO MCP server that lets an agent manager launch and supervise provider CLI subagents as disposable invocations.
Start a subagent from supported providers:
antigravity,claude,codebuddy, orgrok.Provide a prompt, an absolute existing working directory, optional session ID, timeout, and provider-specific options.
Immediately receive an in-memory
invocation_idfor each started subagent.Wait on an invocation to get a running snapshot or its finalized result with status, output, session ID, usage, duration, and error details.
Cancel a running invocation and receive its terminal result.
Reuse a provider session ID from a previous finished invocation to continue work.
Inherit provider-native configuration unless explicit allowlisted
provider_optionsare supplied.Perform best-effort cleanup of provider process groups when the MCP server stops.
Leave planning, parallelism, review, synthesis, retries, permissions, and worktree management to the calling agent manager.
AgentNave
AgentNave is a local STDIO MCP server for agents that need to launch Antigravity CLI, Claude Code, CodeBuddy Code, Codex CLI, or Grok CLI as subagents. It deliberately leaves planning, parallelism, review, synthesis, retries, permissions, and worktree management to the calling Agent Manager.
AgentNave has no human-facing CLI. The agentnave-mcp command only starts the MCP process for a
compatible host.
Requirements
macOS or Linux
uvand Git (for installation from a release tag)At least one authenticated provider CLI
uv installs AgentNave in an isolated Python 3.12 environment. A separately managed system
Python is not required.
AgentNave supports POSIX process supervision on macOS and Linux. Native Windows support requires Job Object ownership first.
Related MCP server: pokeclaw
Install
Install the agentnave-mcp runtime and register it in your MCP host. Model-selection guidance,
lifecycle instructions, and tool schemas are delivered through MCP; no Skill is required.
Install the runtime with uv tool so the MCP launcher does not depend on a source checkout:
uv tool install --python 3.12 \
"git+https://github.com/TimWongUp/agentnave.git@v0.4.0"The release tag is part of the install source. Do not replace it with the mutable main branch.
uv owns the isolated runtime, launcher, upgrades, and removal.
It does not modify host Skills, global instructions, permissions, or provider configuration.
Then register the runtime with a host-specific AGENTNAVE_EXCLUDED_PROVIDERS environment value:
Codex hosts exclude codex, Claude Code hosts exclude claude, and other matching hosts exclude
their corresponding CLI provider. The server rejects excluded providers before creating an
invocation. The detailed guide covers:
Codex;
Claude Code;
Gemini CLI;
OpenCode; and
other agents that support local STDIO MCP servers.
Read the installation guide for host-specific MCP registration, provider exclusions, verification, upgrades, and removal.
AgentNave creates no durable user data. Provider authentication and configuration remain owned by their respective CLIs.
MCP tools
start_agent
Starts one provider invocation and immediately returns an in-memory invocation_id. Required
arguments are provider, prompt, and an absolute existing cwd. Optional arguments are
session_id, timeout_seconds, and explicit provider_options.
Supported providers are antigravity, claude, codebuddy, codex, and grok. MCP instructions
provide model and effort defaults for the Manager to pass explicitly through allowlisted options.
User choices override that guidance; omitted options still inherit native settings. Exclusions are
configured per host process, independently of the model it uses. For Codex calls outside a Git
repository, the Manager must explicitly pass
{"skip_git_repo_check": true} in provider_options.
wait_agent
Waits for at most wait_timeout_seconds. A running response leaves the invocation active and
includes a lifecycle snapshot. A finished response contains the normalized provider result.
cancel_agent
Stops one invocation and returns its terminal result. Use it only when the Manager intends to stop
active provider work; wait_agent observes work without cancelling it.
All tools publish input and output JSON Schemas. Agent-correctable request errors are returned as MCP Tool errors with retry guidance; provider launch and execution outcomes remain structured Invocation Results.
Lifecycle and security
Invocation handles exist only for the current MCP server process. When the server stops, AgentNave
makes a best-effort attempt to terminate processes that remain in the provider process group. Old
handles cannot be recovered after restart, although a provider session_id can be supplied to a new
start_agent call if the provider retained it.
A running snapshot reports the lifecycle phase, elapsed time, and age of the latest official provider
stream event. It does not claim semantic task progress. Terminal output contains the provider's
final response rather than streamed intermediate narration.
AgentNave is not a sandbox. A same-user provider with command permission can deliberately daemonize, kill its supervisor, or otherwise escape ordinary POSIX process-group cleanup. Provider-native permissions are the security boundary; use OS-level isolation when adversarial containment is required.
Verify
The commands below are for a source checkout used for development, not for the uv tool
installation above. See CONTRIBUTING.md for the complete contributor workflow.
uv sync --locked --all-groups
uv run ruff format --check .
uv run ruff check .
uv run pyright
uv run pytestContributing and security
Contributions are welcome through GitHub Issues and pull requests. See CONTRIBUTING.md for the development workflow and validation requirements.
Do not report security vulnerabilities in a public Issue. Follow SECURITY.md to use the repository's private vulnerability reporting channel.
License
AgentNave is licensed under the MIT License.
Available Tools
3 toolscancel_agentCancel a subagent invocationADestructiveIdempotent
Stop one invocation and return its final cancelled or already-terminal result.
Use this only when the Manager intends to stop active provider work; use wait_agent to observe work without stopping it.
| Name | Required | Description | Default |
|---|---|---|---|
| invocation_id | Yes | Invocation ID returned by start_agent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| state | Yes | |
| result | Yes | |
| invocation_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds value beyond those flags by disclosing the already-terminal case — calling cancel on a finished invocation returns its terminal result rather than failing — which explains the idempotency semantics. This aligns cleanly with the annotations, so 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The core action and return behavior are front-loaded in sentence one, and the routing guidance in sentence two earns its place by preventing misuse of a destructive operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with full annotation coverage and an output schema present, the description covers the action, the return behavior, and the when/when-not decision. The only absent details (exact result shape) are already handled by the output schema, so nothing an agent needs to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the single required parameter invocation_id is documented as 'Invocation ID returned by start_agent,' which tells the agent where the value comes from. The description references 'one invocation' consistently but adds no syntax or format detail beyond the schema, so the baseline for high coverage applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource — 'Stop one invocation' — and specifies the return behavior ('return its final cancelled or already-terminal result'). It also names the sibling it is not (wait_agent), so an agent can distinguish cancel from the observe-only tool without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence is explicit: 'Use this only when the Manager intends to stop active provider work' gives the exact triggering condition. It then names the alternative ('use wait_agent to observe work without stopping it'), leaving no ambiguity about when to pick each sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_agentStart a local CLI subagentADestructive
Start one subagent and return its in-memory invocation ID without waiting for completion.
Use wait_agent with the returned ID to observe the invocation. The launched provider may read, write, or run commands in cwd subject to its native permission controls.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes | Absolute existing directory where the subagent runs. | |
| prompt | Yes | Complete, self-contained task for the subagent. | |
| provider | Yes | Local subagent provider to launch. | |
| session_id | No | Provider session ID returned by an earlier finished invocation. | |
| timeout_seconds | No | Maximum provider runtime in seconds. | |
| provider_options | No | Explicit provider-native options. Omit to inherit the provider's own settings; supported keys depend on the selected provider. |
Output Schema
| Name | Required | Description |
|---|---|---|
| state | Yes | |
| invocation_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavior beyond annotations: the call returns immediately without waiting, and the launched provider may read, write, or run commands in cwd subject to native permission controls. This adds meaningful safety and async semantics that annotations alone do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core behavior is stated first, follow-up observation guidance is second, and the side-effect caveat is third. Every sentence contributes necessary information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential invocation flow and side-effect profile, and the output schema plus 100% parameter descriptions complete the picture. It does not mention the cancel_agent sibling or explicitly state that the returned ID works with it, but that is inferable from sibling context and not a critical gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters, including cwd, prompt, provider, session_id, timeout_seconds, and provider_options. The description does not add further parameter-level meaning, but it does not need to because the schema carries the full load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action: start one subagent and return an in-memory invocation ID without waiting. It also names wait_agent, directly distinguishing this tool from siblings. The title reinforces the resource and action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context by stating that wait_agent should be used with the returned ID to observe the invocation. It does not explicitly mention cancellation or when not to use this tool, but the asynchronous-start versus observe/cancel relationship is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wait_agentWait for a subagent invocationARead-onlyIdempotent
Wait briefly for one invocation and return either a running snapshot or its final result.
A running response leaves the invocation active; call wait_agent again later. Use cancel_agent only when the invocation should be stopped.
| Name | Required | Description | Default |
|---|---|---|---|
| invocation_id | Yes | Invocation ID returned by start_agent. | |
| wait_timeout_seconds | No | Maximum time to wait during this call, in seconds. |
Output Schema
| Name | Required | Description |
|---|---|---|
| state | Yes | |
| result | No | |
| snapshot | No | |
| invocation_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as readOnly, idempotent, and non-destructive. The description adds stateful behavior beyond annotations: a running response leaves the invocation active and that wait_agent may be called multiple times. It also clarifies that cancellation is handled by a separate sibling, not by this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs, with the core purpose in the first sentence and operational guidance in the second paragraph. Every sentence adds information; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the key operational distinction (running vs. final result) and what to do in each case, plus the explicit pointer to cancel_agent. With an output schema present, it doesn't need to detail the return structure, and the timeout semantics are reasonably implied by the running-snapshot outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 any parameter-level meaning beyond the schema, but the schema already documents invocation_id and wait_timeout_seconds clearly, including defaults and bounds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb-resource pairing ('Wait briefly for one invocation') and the expected outcome ('return either a running snapshot or its final result'). It distinguishes itself from cancel_agent by explicitly naming the cancellation path, and from start_agent by position (waiting follows starting).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on how to respond to a running result: 'call wait_agent again later.' It also delineates the boundary with cancel_agent: 'Use cancel_agent only when the invocation should be stopped.' This is sufficient for an agent to decide between polling and cancelling.
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. Dates show when Glama detected each change.
3 tool updates
v0.3.0- Changed
cancel_agent1 field changed- changed
Output schema / $defs / ProviderName / enumPrevious value: -[ - "antigravity", - "claude", - "codebuddy", - "grok" -]New value: +[ + "antigravity", + "claude", + "codebuddy", + "codex", + "grok" +]
- Changed
start_agent1 field changed- changed
Input schema / $defs / ProviderName / enumPrevious value: -[ - "antigravity", - "claude", - "codebuddy", - "grok" -]New value: +[ + "antigravity", + "claude", + "codebuddy", + "codex", + "grok" +]
- Changed
wait_agent1 field changed- changed
Output schema / $defs / ProviderName / enumPrevious value: -[ - "antigravity", - "claude", - "codebuddy", - "grok" -]New value: +[ + "antigravity", + "claude", + "codebuddy", + "codex", + "grok" +]
3 tool updates
v0.2.0- First observed
cancel_agent - First observed
start_agent - First observed
wait_agent
TDQS
Each tool targets a distinct lifecycle phase: starting, observing, or stopping an invocation. wait_agent and cancel_agent are clearly differentiated by whether the caller wants to continue observing or actively terminate the work.
All three names follow the same verb_agent convention with clear verbs: start, wait, cancel. There are no mixed naming styles or vague identifiers.
Three tools is a well-scoped count for a focused agent lifecycle server. Each tool fulfills a necessary operation without redundancy or bloat.
The lifecycle is complete: start an agent, wait for its progress or final result, and cancel when needed. wait_agent also returns final results, so there is no dead-end after an invocation completes.
Maintenance
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
Agent-native launch platform and tool directory: search, alternatives, trending, launch via MCP.
Agent-native collaboration network: orchestrate a team of long-running agents from any MCP client.
One MCP endpoint for Claude, GPT & Gemini: 100+ tools + no-code connectors + agent workers.
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables any MCP-compatible client to use existing Claude Code agents from .claude/agents/ directories. Spawns agents in separate CLI sessions for better context optimization and performance across Codex, Gemini CLI, and other AI coding assistants.3MIT
- AlicenseNot gradedqualityDmaintenanceEnables MCP clients to spawn and control Codex CLI and Claude Code sessions on the host machine, with session management and filesystem access.4MIT
- AlicenseNot gradedqualityCmaintenanceMCP bridge for calling local coding-agent CLIs (Codex, Claude) from another agent, enabling bounded tasks like code review, verification, and bug hunting.MIT
- FlicenseNot gradedqualityCmaintenanceEnables ISLI agents and MCP clients to dispatch natural-language coding and terminal tasks to a locally-installed Claude Code CLI, supporting both one-shot execution and persistent sessions with workspace and security controls.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/TimWongUp/agentnave'
If you have feedback or need assistance with the MCP directory API, please join our Discord server