Skip to main content
Glama

cli-agent-mcp

中文文档

Unified MCP (Model Context Protocol) server for CLI AI agents. Provides a single interface to invoke Codex, Gemini, Claude, OpenCode CLI tools, and Nano Banana Pro image generation.

Why cli-agent-mcp?

This is more than a CLI wrapper — it's an orchestration pattern for multi-model collaboration.

Can't articulate your requirements clearly? Let Claude orchestrate. Describe what you want, and it will decompose your vague idea into concrete tasks for the right agent. The act of delegation forces clarity.

Planning a grand product vision? Each model brings a unique lens:

  • Codex: The critic. Its analytical eye catches what you missed, challenges assumptions, finds edge cases.

  • Gemini: The creative. Divergent thinking, unexpected connections, the spark you didn't know you needed.

  • Claude: The scribe. Faithful execution, clear documentation, turning ideas into working code.

  • Banana: The artist. High-fidelity image generation for UI mockups, product visuals, and creative assets.

Want persistent results? Use handoff_file to capture agent outputs, then let Claude synthesize insights across multiple analyses.

We don't just wrap CLIs — we provide a thinking framework for human-AI collaboration.

Related MCP server: climux

Features

  • Unified Interface: Single MCP server exposing multiple CLI agents

  • GUI Dashboard: Real-time task monitoring with pywebview

  • Request Isolation: Per-request execution context for safe concurrent usage

  • Signal Handling: Graceful cancellation via SIGINT without killing the server

  • Debug Logging: Comprehensive subprocess output capture for debugging

Screenshot

CLI Agent MCP GUI

Installation

# Install from PyPI (when published)
uvx cli-agent-mcp

# Install from GitHub
uvx --from git+https://github.com/shiharuharu/cli-agent-mcp.git cli-agent-mcp

# Install from source (editable mode for development)
uvx --from /path/to/cli-agent-mcp cli-agent-mcp

# Or use pip
pip install -e .

Configuration

Configure via environment variables:

Variable

Description

Default

CAM_ENABLE

Comma-separated list of enabled tools (empty = all)

"" (all)

CAM_DISABLE

Comma-separated list of disabled tools (subtracted from enable)

""

CAM_GUI

Enable GUI dashboard

true

CAM_GUI_DETAIL

GUI detail mode

false

CAM_GUI_KEEP

Keep GUI on exit

false

CAM_GUI_HOST

GUI bind host

127.0.0.1

CAM_GUI_PORT

GUI bind port (set a fixed port to keep URL stable across restarts)

0 (random)

CAM_DEBUG

Include debug info in MCP responses

false

CAM_LOG_DEBUG

Write debug logs to temp file

false

CAM_SIGINT_MODE

SIGINT handling (cancel/exit/cancel_then_exit)

cancel

CAM_SIGINT_DOUBLE_TAP_WINDOW

Double-tap exit window (seconds)

1.0

Tools

codex

Invoke OpenAI Codex CLI agent for deep code analysis and critical review.

Best for: Code review, bug hunting, security analysis

Parameter

Type

Required

Default

Description

prompt

string

-

Task instruction for the agent

workspace

string

-

Absolute path to the project directory

handoff_file

string

-

REQUIRED. Server-side append-only output capture (always wrapped in <agent-output ...>)

continuation_id

string

""

Pass from previous response to continue conversation

permission

string

read-only

Permission level: read-only, workspace-write, unlimited

model

string

""

Model override (only specify if explicitly requested)

report_mode

boolean

false

Generate standalone report format

compact_response

boolean

false

Return compact status message instead of full output (full output still written to handoff_file)

verbose_output

boolean

false

Return detailed output including reasoning

context_paths

array

[]

Reference file/directory paths to provide context

image

array

[]

Absolute paths to image files for visual context

task_note

string

""

Display label for GUI

debug

boolean

(global)

Override debug setting for this call

gemini

Invoke Google Gemini CLI agent for UI design and comprehensive analysis.

Best for: UI mockups, image analysis, requirement discovery, full-text analysis

Parameter

Type

Required

Default

Description

prompt

string

-

Task instruction for the agent

workspace

string

-

Absolute path to the project directory

handoff_file

string

-

REQUIRED. Server-side append-only output capture (always wrapped in <agent-output ...>)

continuation_id

string

""

Pass from previous response to continue conversation

permission

string

read-only

Permission level: read-only, workspace-write, unlimited

model

string

""

Model override

report_mode

boolean

false

Generate standalone report format

compact_response

boolean

false

Return compact status message instead of full output (full output still written to handoff_file)

verbose_output

boolean

false

Return detailed output including reasoning

context_paths

array

[]

Reference file/directory paths to provide context

task_note

string

""

Display label for GUI

debug

boolean

(global)

Override debug setting for this call

claude

Invoke Anthropic Claude CLI agent for code implementation.

Best for: Feature implementation, refactoring, code generation

Parameter

Type

Required

Default

Description

prompt

string

-

Task instruction for the agent

workspace

string

-

Absolute path to the project directory

handoff_file

string

-

REQUIRED. Server-side append-only output capture (always wrapped in <agent-output ...>)

continuation_id

string

""

Pass from previous response to continue conversation

permission

string

read-only

Permission level: read-only, workspace-write, unlimited

model

string

""

Model override (sonnet, opus, or full model name)

report_mode

boolean

false

Generate standalone report format

compact_response

boolean

false

Return compact status message instead of full output (full output still written to handoff_file)

verbose_output

boolean

false

Return detailed output including reasoning

context_paths

array

[]

Reference file/directory paths to provide context

system_prompt

string

""

Complete replacement for the default system prompt

append_system_prompt

string

""

Additional instructions appended to default prompt

agent

string

""

Specify agent name (overrides default agent setting)

task_note

string

""

Display label for GUI

debug

boolean

(global)

Override debug setting for this call

opencode

Invoke OpenCode CLI agent for full-stack development.

Best for: Rapid prototyping, multi-framework projects

Parameter

Type

Required

Default

Description

prompt

string

-

Task instruction for the agent

workspace

string

-

Absolute path to the project directory

handoff_file

string

-

REQUIRED. Server-side append-only output capture (always wrapped in <agent-output ...>)

continuation_id

string

""

Pass from previous response to continue conversation

permission

string

read-only

Permission level: read-only, workspace-write, unlimited

model

string

""

Model override (format: provider/model)

report_mode

boolean

false

Generate standalone report format

compact_response

boolean

false

Return compact status message instead of full output (full output still written to handoff_file)

verbose_output

boolean

false

Return detailed output including reasoning

context_paths

array

[]

Reference file/directory paths to provide context

file

array

[]

Absolute paths to files to attach

agent

string

build

Agent type: build, plan, etc.

task_note

string

""

Display label for GUI

debug

boolean

(global)

Override debug setting for this call

banana

Generate high-fidelity images via the Nano Banana Pro API.

Best for: UI mockups, product visuals, infographics, architectural renders, character art

Nano Banana Pro has exceptional understanding and visual expression capabilities—your prompt creativity is the only limit, not the model.

Parameter

Type

Required

Default

Description

prompt

string

-

Image generation prompt

save_path

string

-

Base directory for saving images

task_note

string

-

Subdirectory name (English recommended, e.g., 'hero-banner'). Files saved to {save_path}/{task_note}/

images

array

[]

Reference images (absolute paths) with optional role and label

aspect_ratio

string

"1:1"

Image aspect ratio: 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9

resolution

string

"1K"

Image resolution: 1K, 2K, 4K

include_thoughts

boolean

false

Include thinking process in response

Environment Variables:

Variable

Required

Default

Description

BANANA_AUTH_TOKEN

-

Google API key or Bearer token

BANANA_ENDPOINT

https://generativelanguage.googleapis.com

API endpoint (version path auto-appended)

Prompt Best Practices:

  • Explicitly request an image (e.g., start with "Generate an image:" or include "output":"image")

  • Use structured specs (JSON / XML tags / labeled sections) for complex requests

  • Use MUST/STRICT/CRITICAL for non-negotiable constraints

  • Add negative constraints (e.g., "no watermark", "no distorted hands")

image

Generate images via OpenRouter-compatible or OpenAI-compatible endpoints.

Best for: General image generation when you need compatibility with various providers. For best results with Gemini models, use the banana tool instead.

Parameter

Type

Required

Default

Description

prompt

string

-

Image generation prompt

save_path

string

-

Base directory for saving images

task_note

string

-

Subdirectory name (English recommended, e.g., 'hero-banner'). Files saved to {save_path}/{task_note}/

images

array

[]

Reference images (absolute paths) with optional role and label

aspect_ratio

string

"1:1"

Image aspect ratio: 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9

resolution

string

"1K"

Image resolution: 1K, 2K, 4K

model

string

(env)

Model to use for generation

api_type

string

(env)

API type: openrouter_chat, openai_images, openai_responses

Environment Variables:

Variable

Required

Default

Description

IMAGE_AUTH_TOKEN

-

API key for image generation

IMAGE_ENDPOINT

https://openrouter.ai/api

API endpoint (version path auto-appended)

IMAGE_MODEL

gpt-image-1

Default model

IMAGE_API_TYPE

openrouter_chat

API type: openrouter_chat, openai_images, openai_responses

*_parallel_with_template

Batch task execution using simple placeholder templates. Available for all CLI agents:

  • codex_parallel_with_template

  • gemini_parallel_with_template

  • claude_parallel_with_template

  • opencode_parallel_with_template

Best for: Batch code review, batch file processing, batch analysis with structured data

Template Syntax:

Supported:
  {{ name }}              # Simple variable substitution
  {{ vars.file_path }}    # Dotted dict path (nested dict lookup)
  {{{{                    # Escape to output {{
  }}}}                    # Escape to output }}

NOT supported:
  {{ a | default(...) }}  # Filters
  {{ foo.bar() }}         # Function calls
  {{ a + b }}             # Expressions
  {% if %}...{% endif %}  # Conditionals
  {% for %}...{% endfor %} # Loops

Parameter

Type

Required

Default

Description

template

string

-

Placeholder template for generating prompts

variables

array

-

List of variable dicts (each generates one task)

workspace

string

-

Absolute path to the project directory

handoff_file

string

-

Server-side append-only output capture

task_note_template

string

""

Template for per-task labels

permission

string

read-only

Permission level

parallel_max_concurrency

integer

20

Max concurrent tasks

parallel_fail_fast

boolean

false

Stop on first failure

context_paths

array

[]

Shared context paths for all tasks

context_paths_parallel

array

[]

Per-task context paths (length must match variables)

Auto-injected variables (available in templates, override same-named keys in variables[i]):

  • task_index: 1-based index of current task

  • task_count: Total number of tasks

  • vars: The original variables[i] dict

Example: Batch Code Review

{
  "template": "Review {{ file_path }} focusing on {{ focus }}. Task {{ task_index }}/{{ task_count }}.",
  "variables": [
    {"file_path": "src/handlers/cli.py", "focus": "error handling"},
    {"file_path": "src/handlers/parallel.py", "focus": "concurrency safety"},
    {"file_path": "src/server.py", "focus": "input validation"}
  ],
  "task_note_template": "[Review] {{ file_path }}",
  "workspace": "/path/to/project",
  "handoff_file": ".agent-handoff/review_batch.md",
  "parallel_max_concurrency": 3
}

get_gui_url

Get the GUI dashboard URL. Returns the HTTP URL where the live event viewer is accessible.

No parameters required.

Prompt Injection

Some parameters automatically inject additional content into the prompt using <mcp-injection> XML tags. These tags make it easy to debug and identify system-injected content.

report_mode

When report_mode is set, output format requirements are injected:

<your prompt>

<mcp-injection type="output-format">
  <output-requirements>
    <rule>This response will be saved as a standalone document.</rule>
    <rule>Write so it can be understood WITHOUT any prior conversation context.</rule>
    <rule>Do NOT reference "above", "previous messages", or "as discussed".</rule>
    <rule>Use the same language as the user's request.</rule>
  </output-requirements>
  <structure>
    <section name="Summary">3-7 bullet points with key findings and conclusions</section>
    <section name="Context">Restate the task/problem so readers understand without chat history</section>
    <section name="Analysis">Step-by-step reasoning with evidence; include file:line references</section>
    <section name="Recommendations">Actionable next steps ordered by priority</section>
  </structure>
  <note>Write with enough detail to be useful standalone, but avoid unnecessary filler.</note>
</mcp-injection>

context_paths

When context_paths is provided, reference paths are injected:

<your prompt>

<mcp-injection type="reference-paths">
  <description>
    These paths are provided as reference for project structure.
    You may use them to understand naming conventions and file organization.
  </description>
  <paths>
    <path>/src/api/handlers.py</path>
    <path>/config/settings.json</path>
  </paths>
</mcp-injection>

Stateless Design

Important: Each tool call is stateless - the agent has NO memory of previous calls.

  • New conversation (no continuation_id): Include ALL relevant context in your prompt - background, specifics, constraints, and prior findings.

  • Continuing conversation (with continuation_id): The agent retains context from that session, so you can be brief.

If your request references prior context (e.g., "fix that bug", "continue the work"), you must either:

  1. Provide continuation_id from a previous response, OR

  2. Expand the reference into concrete details

Handoff File

handoff_file is REQUIRED for all CLI tools. The server appends each tool output to this file after execution.

Behavior (always):

  • Append-only (never overwrite)

  • Wrapped as <agent-output ...> with agent, continuation_id, task_note, task_index, status

  • task_index: single task = 0; parallel tasks = 1..N

  • On failure, still appends with status="error" and an Error: ... message

Safety notes:

  • Avoid concurrent writes to the same path (outputs may interleave)

  • Avoid double-write conflict: do NOT point handoff_file at a file the agent is asked to edit

  • Recommended: use .agent-handoff/ (e.g., .agent-handoff/handoff_chain.md)

Example wrapper:

<agent-output agent="gemini" continuation_id="abc123" task_note="UI audit" task_index="0" status="success">
... agent response (Markdown) ...
</agent-output>

Migration: save_filehandoff_file

save_file, save_file_with_wrapper, and save_file_with_append_mode were removed. Use handoff_file instead (required; always append; always wrapper).

Response Format

All responses are wrapped in XML format:

Success Response

<response>
  <thought_process>...</thought_process>  <!-- Only when verbose_output=true -->
  <answer>
    Agent's response content...
  </answer>
  <continuation_id>session-id-here</continuation_id>
  <debug_info>...</debug_info>  <!-- Only when debug=true -->
</response>

Error Response

Error responses include partial progress to enable retry:

<response>
  <error>Error message</error>
  <thought_process>...</thought_process>  <!-- Collected steps before error -->
  <partial_answer>...</partial_answer>    <!-- Partial output if any -->
  <continuation_id>session-id</continuation_id>
  <hint>Task failed. Above is the output collected so far. You can send 'continue' with this continuation_id to retry.</hint>
  <debug_info>...</debug_info>
</response>

Permission Levels

Level

Description

Codex

Gemini

Claude

OpenCode

Banana

read-only

Can only read files

--sandbox read-only

Read-only tools only

--tools Read,Grep,Glob

edit: deny, bash: deny

Read workspace images only

workspace-write

Can modify files within workspace

--sandbox workspace-write

All tools + sandbox

--tools Read,Edit,Write,Bash

edit: allow, bash: ask

Write to workspace only

unlimited

Full system access (use with caution)

--sandbox danger-full-access

All tools, no sandbox

--tools default

edit: allow, bash: allow

Full access

Debug Mode

Enable debug mode to get detailed execution information:

# Enable debug info in responses
export CAM_DEBUG=true

# Enable detailed log file
export CAM_LOG_DEBUG=true

When CAM_LOG_DEBUG=true, logs are written to:

/tmp/cli-agent-mcp/cam_debug_YYYYMMDD_HHMMSS.log

Debug output includes:

  • Full subprocess command

  • Complete stdout/stderr output

  • Return codes

  • MCP request/response summaries

MCP Configuration

Add to your MCP client configuration (e.g., Claude Desktop claude_desktop_config.json):

Basic Configuration

{
  "mcpServers": {
    "cli-agent-mcp": {
      "command": "uvx",
      "args": ["cli-agent-mcp"]
    }
  }
}

Install from GitHub

{
  "mcpServers": {
    "cli-agent-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/shiharuharu/cli-agent-mcp.git",
        "cli-agent-mcp"
      ]
    }
  }
}

With Debug Mode

{
  "mcpServers": {
    "cli-agent-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/shiharuharu/cli-agent-mcp.git",
        "cli-agent-mcp"
      ],
      "env": {
        "CAM_DEBUG": "true",
        "CAM_LOG_DEBUG": "true"
      }
    }
  }
}

Disable GUI

{
  "mcpServers": {
    "cli-agent-mcp": {
      "command": "uvx",
      "args": ["cli-agent-mcp"],
      "env": {
        "CAM_GUI": "false"
      }
    }
  }
}

Limit Available Tools

{
  "mcpServers": {
    "cli-agent-mcp": {
      "command": "uvx",
      "args": ["cli-agent-mcp"],
      "env": {
        "CAM_ENABLE": "claude,gemini"
      }
    }
  }
}

Disable Image Tools

{
  "mcpServers": {
    "cli-agent-mcp": {
      "command": "uvx",
      "args": ["cli-agent-mcp"],
      "env": {
        "CAM_DISABLE": "banana,image"
      }
    }
  }
}

Project Structure

cli-agent-mcp/
├── src/cli_agent_mcp/
│   ├── __init__.py          # Package exports
│   ├── __main__.py          # Entry point
│   ├── app.py               # Server lifecycle (run_server, main)
│   ├── server.py            # MCP protocol adapter (create_server)
│   ├── tool_schema.py       # Tool descriptions and JSON schemas
│   ├── config.py            # Configuration management
│   ├── gui_manager.py       # GUI dashboard manager
│   ├── orchestrator.py      # Request registry
│   ├── signal_manager.py    # Signal handling (SIGINT/SIGTERM)
│   ├── handlers/            # Tool handlers
│   │   ├── base.py          # ToolContext, ToolHandler base class
│   │   ├── cli.py           # CLI tools (codex/gemini/claude/opencode)
│   │   ├── parallel.py      # Parallel execution (*_parallel tools)
│   │   ├── parallel_with_template.py  # Template-based parallel (*_parallel_with_template)
│   │   └── image_tools.py   # Image tools (banana/image)
│   ├── utils/               # Utility functions
│   │   ├── xml_wrapper.py   # XML escaping and wrapper building
│   │   ├── prompt_injection.py  # Prompt injection helpers
│   │   └── simple_template.py   # Simple placeholder template engine
│   └── shared/              # Shared modules
│       ├── invokers/        # CLI invoker implementations
│       ├── parsers/         # Output parsers
│       ├── gui/             # GUI components
│       └── response_formatter.py  # Response formatting
└── tests/

Development

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

License

MIT

Available Tools

11 tools
bananaA

Generate images using Nano Banana Pro (Gemini 3 Pro Image).

CAPABILITIES:

  • Text-to-image generation with high quality output

  • Image editing and transformation with reference images

  • Multiple aspect ratios and resolutions (1K/2K/4K)

  • Style transfer and multi-image fusion

  • Optional search grounding for factual content

RESPONSE FORMAT:

  • Returns XML with file paths to generated images

  • Images are saved to disk (no base64 in response)

  • Includes text descriptions and optional thinking process

BEST PRACTICES:

  • Be descriptive: describe scenes, not just keywords

  • Use negative constraints in prompt: "no text", "no watermark"

  • For editing: provide reference image and specify what to keep

  • For style transfer: provide style reference image

Supports: reference images with roles (edit_base, style_ref, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesImage generation prompt. Structure: <goal>what you want to generate (can be a statement)</goal> <context>detailed background info - the more the better</context> <hope>desired visual outcome, can be abstract</hope>. Example: <goal>Generate 6 weather icons for a mobile app</goal> <context>Target users are young professionals, app has a friendly casual vibe, needs to match existing UI with rounded corners</context> <hope>pastel colors, consistent 3px stroke, 64x64 base size</hope>
imagesNoReference images for editing or style transfer. Roles: edit_base (image to edit), subject_ref (person/character), style_ref (style reference), layout_ref (layout), background_ref, object_ref.
aspect_ratioNoOutput image aspect ratio. Default: 1:1 (square).1:1
resolutionNoOutput resolution. 1K (1024px), 2K (2048px), 4K (4096px). Default: 4K.4K
use_searchNoEnable search grounding for factual content. Adds text to response.
include_thoughtsNoInclude model's thinking process in response.
temperatureNoControls randomness (0.0-2.0). Higher = more creative. Default: 1.0.
top_pNoNucleus sampling threshold (0.0-1.0). Default: 0.95.
top_kNoTop-k sampling (1-100). Default: 40.
num_imagesNoNumber of images to generate (1-4). Default: 1.
save_pathYesBase directory for saving images. Files saved to {save_path}/{task_note}/.
task_noteYesSubdirectory name for saving images (English recommended, e.g., 'hero-banner', 'product-shot'). Also shown in GUI.

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well by disclosing key behaviors: 'Images are saved to disk (no base64 in response)', 'Returns XML with file paths', and mentions capabilities like style transfer and multi-image fusion. It doesn't cover rate limits or authentication needs, but provides substantial operational context.

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 well-structured with clear sections (CAPABILITIES, RESPONSE FORMAT, BEST PRACTICES) and every sentence earns its place by providing actionable information. It's appropriately sized for a complex tool without unnecessary verbosity, making it easy to scan and understand.

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 complexity (12 parameters, no output schema, no annotations), the description does a strong job covering capabilities, response format, and best practices. It could benefit from more explicit error handling or performance characteristics, but provides sufficient context for effective use despite the missing structured 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 description coverage is 100%, so the schema already documents all 12 parameters thoroughly. The description adds minimal parameter-specific information beyond the schema (e.g., briefly mentions reference images with roles), but doesn't provide significant additional semantic value. This meets the baseline for high schema coverage.

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 'Generate images using Nano Banana Pro (Gemini 3 Pro Image)' which specifies the verb (generate) and resource (images) with the specific model. However, it doesn't explicitly differentiate from sibling tools like 'image' or 'gemini' which might also handle image-related tasks, preventing a perfect score.

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 'BEST PRACTICES' section provides clear guidance on when and how to use the tool effectively (e.g., 'Be descriptive', 'Use negative constraints', 'For editing: provide reference image'). It doesn't explicitly mention when NOT to use it or name specific alternatives among siblings, but the practical advice is comprehensive for proper usage.

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

claudeA

Run Anthropic Claude CLI agent (code implementation).

NO SHARED MEMORY:

  • Cannot see messages/outputs from codex/gemini/opencode.

  • Only sees: (1) this prompt, (2) files in context_paths, (3) its own history via continuation_id.

CROSS-AGENT HANDOFF:

  • Small data: paste into prompt.

  • Large data: save_file -> context_paths -> prompt says "Read ".

CAPABILITIES:

  • Strongest code writing and implementation abilities

  • Excellent at translating requirements into working code

  • Good at following patterns and conventions

BEST PRACTICES:

  • Be explicit about target: "Replace old implementation completely"

  • Specify cleanup: "Remove deprecated code paths"

Supports: system_prompt, append_system_prompt, agent parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesDetailed instructions for the agent. IMPORTANT: If 'continuation_id' is NOT set, you MUST include ALL context (background, file contents, errors, constraints), as the agent has no memory. If 'continuation_id' IS set, you may be brief and reference previous context.
workspaceYesProject root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths.
continuation_idNoResume session WITHIN THIS TOOL ONLY. Use only the <continuation_id> returned by this same tool. IDs are agent-specific: codex ID won't work with gemini/claude/opencode. Switching agents does NOT sync info; pass updates via prompt or context_paths.
permissionNoSecurity level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'.read-only
modelNoOptional model override (e.g., 'gemini-2.5-pro'). Use only if specifically requested.
save_fileNoPREFERRED when agent needs to write files or produce lengthy output. Output is written directly to this path, avoiding context overflow. This write is permitted even in read-only mode (server-handled). Essential for: code generation, detailed reports, documentation.
save_file_with_wrapperNoWhen true AND save_file is set, wrap output in <agent-output> XML tags with metadata (agent name, continuation_id). For multi-agent assembly.
save_file_with_append_modeNoWhen true AND save_file is set, append instead of overwrite. For multi-agent collaboration on same document.
report_modeNoGenerate a standalone, document-style report (no chat filler) suitable for sharing.
context_pathsNoList of relevant files/dirs to preload as context hints.
system_promptNoComplete replacement for the default system prompt. Use only when you need full control over agent behavior. Prefer append_system_prompt for most cases.
append_system_promptNoAdditional instructions appended to the default system prompt. Recommended way to customize behavior. Example: 'Focus on performance optimization, avoid adding new dependencies'
agentNoSpecify an agent for the current session (overrides the default agent setting). Use predefined agent names configured in Claude Code settings.
task_noteNoREQUIRED user-facing label. Summarize action in < 60 chars (e.g., '[Fix] Auth logic' or '[Read] config.py'). Shown in GUI progress bar to inform user.
debugNoEnable execution stats (tokens, duration) for this call.

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and delivers comprehensive behavioral disclosure. It explains critical constraints (no shared memory, agent-specific continuation IDs), security implications through permission parameter context, cross-agent collaboration patterns, and practical limitations like context overflow management. This goes well beyond basic functional description.

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 well-structured with clear sections (NO SHARED MEMORY, CROSS-AGENT HANDOFF, CAPABILITIES, BEST PRACTICES, Supports) that make information easy to find. While comprehensive, some sections could be more concise - the CAPABILITIES and BEST PRACTICES sections contain some redundancy with the opening statement. Overall, most sentences earn their place by adding important operational context.

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 complex 15-parameter tool with no annotations and no output schema, the description provides substantial context about behavioral constraints, collaboration patterns, and practical usage. It effectively compensates for the lack of structured metadata. The main gap is not explaining return values or output format, but given the tool's nature as an agent runner, the operational context provided is quite complete.

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 schema already documents all 15 parameters thoroughly. The description adds some context about parameter usage (e.g., prompt context requirements, save_file benefits, cross-agent considerations), but doesn't provide significant semantic value beyond what's in the parameter descriptions themselves. Baseline 3 is appropriate given complete schema coverage.

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's purpose: 'Run Anthropic Claude CLI agent (code implementation)' - a specific verb+resource combination. It distinguishes Claude from other agents by highlighting its unique capabilities ('Strongest code writing and implementation abilities'), but doesn't explicitly differentiate from all sibling tools like codex or gemini beyond mentioning they have separate memory spaces.

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

Usage Guidelines5/5

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

The description provides excellent usage guidance with explicit when/when-not scenarios. It explains memory limitations ('NO SHARED MEMORY'), cross-agent handoff procedures, when to use save_file vs prompt inclusion, and best practices for code replacement and cleanup. It clearly defines the tool's specific role among agents based on capabilities.

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

claude_parallelA

Run multiple claude tasks in parallel. All tasks share workspace/permission/save_file. Results are appended to save_file with XML wrappers (). Max 100 tasks. Model can be array: single element shared by all, or one per task.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceYesProject root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths.
permissionNoSecurity level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'.read-only
save_fileYesPREFERRED when agent needs to write files or produce lengthy output. Output is written directly to this path, avoiding context overflow. This write is permitted even in read-only mode (server-handled). Essential for: code generation, detailed reports, documentation.
report_modeNoGenerate a standalone, document-style report (no chat filler) suitable for sharing.
context_pathsNoList of relevant files/dirs to preload as context hints.
modelNoModel override(s). If single element, all tasks use that model. If multiple elements, must match parallel_prompts length - each task uses corresponding model. Empty array uses CLI default.
system_promptNoComplete replacement for the default system prompt. Use only when you need full control over agent behavior. Prefer append_system_prompt for most cases.
append_system_promptNoAdditional instructions appended to the default system prompt. Recommended way to customize behavior. Example: 'Focus on performance optimization, avoid adding new dependencies'
agentNoSpecify an agent for the current session (overrides the default agent setting). Use predefined agent names configured in Claude Code settings.
parallel_promptsYesComplete prompts for parallel execution. Each spawns an independent subprocess.
parallel_task_notesYesLabels for each task. Length MUST equal parallel_prompts.
parallel_max_concurrencyNoMax concurrent subprocesses.
parallel_fail_fastNoStop spawning new tasks when any fails (already running tasks continue).
debugNoEnable execution stats (tokens, duration) for this call.

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: output format with XML wrappers, shared resource model, task limits, and model configuration options. It doesn't cover error handling, performance characteristics, or authentication needs, but provides substantial operational context for a complex parallel execution tool.

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 efficiently structured in three sentences that cover purpose, output format, and key constraints. Each sentence adds value without redundancy. While dense, it's appropriately sized for a complex parallel execution tool with many parameters.

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 complex 14-parameter tool with no annotations and no output schema, the description provides good operational context but lacks information about return values, error responses, or performance expectations. It covers the parallel execution model and output formatting well, but doesn't fully compensate for the missing structured metadata about this mutation-capable 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?

With 100% schema description coverage, the schema already documents all 14 parameters thoroughly. The description adds minimal parameter-specific information beyond the schema, mentioning only that 'Model can be array: single element shared by all, or one per task' and output formatting details. This meets the baseline for high schema 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?

The description clearly states the tool's purpose: 'Run multiple claude tasks in parallel' with specific details about shared resources and output format. It distinguishes from siblings like 'claude' (single task) and 'codex_parallel' (different model family), making the scope and differentiation explicit.

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 clear context for when to use this tool ('All tasks share workspace/permission/save_file') and mentions capacity limits ('Max 100 tasks'). However, it doesn't explicitly state when NOT to use it or name alternatives like 'claude' for single tasks, though the parallel nature is implied as the distinguishing factor.

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

codexA

Run OpenAI Codex CLI agent (deep analysis / critical review).

NO SHARED MEMORY:

  • Cannot see messages/outputs from gemini/claude/opencode.

  • Only sees: (1) this prompt, (2) files in context_paths, (3) its own history via continuation_id.

CROSS-AGENT HANDOFF:

  • Small data: paste into prompt.

  • Large data: save_file -> context_paths -> prompt says "Read ".

CAPABILITIES:

  • Strongest deep analysis and reflection abilities

  • Excellent at finding issues, edge cases, and potential bugs

  • Good at critical code review and architectural assessment

BEST PRACTICES:

  • Be explicit about scope: "Only fix X, don't refactor Y"

  • Specify constraints: "Keep it simple, no new abstractions"

Supports: image attachments.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesDetailed instructions for the agent. IMPORTANT: If 'continuation_id' is NOT set, you MUST include ALL context (background, file contents, errors, constraints), as the agent has no memory. If 'continuation_id' IS set, you may be brief and reference previous context.
workspaceYesProject root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths.
continuation_idNoResume session WITHIN THIS TOOL ONLY. Use only the <continuation_id> returned by this same tool. IDs are agent-specific: codex ID won't work with gemini/claude/opencode. Switching agents does NOT sync info; pass updates via prompt or context_paths.
permissionNoSecurity level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'.read-only
modelNoOptional model override (e.g., 'gemini-2.5-pro'). Use only if specifically requested.
save_fileNoPREFERRED when agent needs to write files or produce lengthy output. Output is written directly to this path, avoiding context overflow. This write is permitted even in read-only mode (server-handled). Essential for: code generation, detailed reports, documentation.
save_file_with_wrapperNoWhen true AND save_file is set, wrap output in <agent-output> XML tags with metadata (agent name, continuation_id). For multi-agent assembly.
save_file_with_append_modeNoWhen true AND save_file is set, append instead of overwrite. For multi-agent collaboration on same document.
report_modeNoGenerate a standalone, document-style report (no chat filler) suitable for sharing.
context_pathsNoList of relevant files/dirs to preload as context hints.
imageNoAbsolute paths to image files for visual context. Use for: UI screenshots, error dialogs, design mockups. Example: ['/path/to/screenshot.png']
task_noteNoREQUIRED user-facing label. Summarize action in < 60 chars (e.g., '[Fix] Auth logic' or '[Read] config.py'). Shown in GUI progress bar to inform user.
debugNoEnable execution stats (tokens, duration) for this call.

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure and does so comprehensively. It explains memory limitations ('NO SHARED MEMORY'), cross-agent handoff procedures, capabilities, best practices, and even notes 'Supports: image attachments.' This provides rich behavioral context beyond what any structured annotations would typically cover.

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 well-structured with clear sections (NO SHARED MEMORY, CROSS-AGENT HANDOFF, CAPABILITIES, BEST PRACTICES) and uses bullet points for readability. While comprehensive, it could be slightly more concise as some information (like cross-agent handoff details) might be inferred from the tool's purpose. Every sentence earns its place by providing essential operational context.

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?

Given the complexity of this tool (13 parameters, no annotations, no output schema), the description provides complete contextual information. It explains the agent's capabilities, limitations, memory behavior, cross-agent workflows, and best practices. This fully compensates for the lack of annotations and output schema, making the tool's behavior and appropriate usage clear.

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 schema already documents all 13 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. However, it does provide important context about how parameters like 'prompt' and 'continuation_id' interact with the agent's memory limitations, which adds some semantic value.

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 tool's purpose: 'Run OpenAI Codex CLI agent (deep analysis / critical review).' It specifies the exact action ('Run') and resource ('OpenAI Codex CLI agent'), and distinguishes it from siblings by highlighting its unique capabilities ('Strongest deep analysis and reflection abilities', 'Excellent at finding issues, edge cases, and potential bugs', 'Good at critical code review and architectural assessment').

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool vs alternatives. It states 'NO SHARED MEMORY' and clarifies what the agent can see, specifies 'CROSS-AGENT HANDOFF' procedures for small vs large data, lists 'CAPABILITIES' that make it suitable for specific tasks, and gives 'BEST PRACTICES' for effective use. It also distinguishes from siblings by noting it 'Cannot see messages/outputs from gemini/claude/opencode'.

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

codex_parallelA

Run multiple codex tasks in parallel. All tasks share workspace/permission/save_file. Results are appended to save_file with XML wrappers (). Max 100 tasks. Model can be array: single element shared by all, or one per task.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceYesProject root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths.
permissionNoSecurity level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'.read-only
save_fileYesPREFERRED when agent needs to write files or produce lengthy output. Output is written directly to this path, avoiding context overflow. This write is permitted even in read-only mode (server-handled). Essential for: code generation, detailed reports, documentation.
report_modeNoGenerate a standalone, document-style report (no chat filler) suitable for sharing.
context_pathsNoList of relevant files/dirs to preload as context hints.
modelNoModel override(s). If single element, all tasks use that model. If multiple elements, must match parallel_prompts length - each task uses corresponding model. Empty array uses CLI default.
imageNoAbsolute paths to image files for visual context. Use for: UI screenshots, error dialogs, design mockups. Example: ['/path/to/screenshot.png']
parallel_promptsYesComplete prompts for parallel execution. Each spawns an independent subprocess.
parallel_task_notesYesLabels for each task. Length MUST equal parallel_prompts.
parallel_max_concurrencyNoMax concurrent subprocesses.
parallel_fail_fastNoStop spawning new tasks when any fails (already running tasks continue).
debugNoEnable execution stats (tokens, duration) for this call.

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well at disclosing key behavioral traits: results are appended to save_file with XML wrappers, max 100 tasks, model can be array with sharing options, and tasks run as independent subprocesses. It doesn't mention error handling beyond fail_fast or performance characteristics, but covers the essential execution model.

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 appropriately sized with three sentences that each add value: first states core functionality, second describes output format and limits, third explains model configuration. It's front-loaded with the main purpose and avoids unnecessary repetition. Could be slightly more structured but efficiently conveys key information.

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 complex parallel execution tool with 12 parameters and no annotations/output_schema, the description provides good coverage of the execution model, output format, and constraints. It explains the parallel nature, resource sharing, and key limitations. Missing details about error responses or specific use cases, but covers the essential operational context given the 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 schema already documents all 12 parameters thoroughly. The description adds minimal parameter-specific information beyond the schema, mentioning only the model array behavior and XML output format. It doesn't provide additional semantic context about how parameters interact or usage patterns.

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 tool's purpose: 'Run multiple codex tasks in parallel' with specific details about shared workspace/permission/save_file and XML output formatting. It distinguishes from sibling tools like 'codex' (single task) and 'claude_parallel' (different model family) by specifying it's for codex tasks with parallel execution.

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 clear context about when to use this tool: for running multiple codex tasks concurrently with shared resources. It mentions the 100-task limit and model configuration options. However, it doesn't explicitly state when NOT to use it or name specific alternatives among siblings like 'codex' for single tasks.

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

geminiA

Run Google Gemini CLI agent (UI design / comprehensive analysis).

NO SHARED MEMORY:

  • Cannot see messages/outputs from codex/claude/opencode.

  • Only sees: (1) this prompt, (2) files in context_paths, (3) its own history via continuation_id.

CROSS-AGENT HANDOFF:

  • Small data: paste into prompt.

  • Large data: save_file -> context_paths -> prompt says "Read ".

CAPABILITIES:

  • Strongest UI design and image understanding abilities

  • Excellent at rapid UI prototyping and visual tasks

  • Great at inferring original requirements from code clues

  • Best for full-text analysis and detective work

BEST PRACTICES:

  • Good first choice for "understand this codebase" tasks

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesDetailed instructions for the agent. IMPORTANT: If 'continuation_id' is NOT set, you MUST include ALL context (background, file contents, errors, constraints), as the agent has no memory. If 'continuation_id' IS set, you may be brief and reference previous context.
workspaceYesProject root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths.
continuation_idNoResume session WITHIN THIS TOOL ONLY. Use only the <continuation_id> returned by this same tool. IDs are agent-specific: codex ID won't work with gemini/claude/opencode. Switching agents does NOT sync info; pass updates via prompt or context_paths.
permissionNoSecurity level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'.read-only
modelNoOptional model override (e.g., 'gemini-2.5-pro'). Use only if specifically requested.
save_fileNoPREFERRED when agent needs to write files or produce lengthy output. Output is written directly to this path, avoiding context overflow. This write is permitted even in read-only mode (server-handled). Essential for: code generation, detailed reports, documentation.
save_file_with_wrapperNoWhen true AND save_file is set, wrap output in <agent-output> XML tags with metadata (agent name, continuation_id). For multi-agent assembly.
save_file_with_append_modeNoWhen true AND save_file is set, append instead of overwrite. For multi-agent collaboration on same document.
report_modeNoGenerate a standalone, document-style report (no chat filler) suitable for sharing.
context_pathsNoList of relevant files/dirs to preload as context hints.
task_noteNoREQUIRED user-facing label. Summarize action in < 60 chars (e.g., '[Fix] Auth logic' or '[Read] config.py'). Shown in GUI progress bar to inform user.
debugNoEnable execution stats (tokens, duration) for this call.

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure and does so comprehensively. It clearly explains the 'NO SHARED MEMORY' constraint, cross-agent handoff procedures, specific capabilities, and best practices. This provides crucial operational context that isn't captured in the input schema alone.

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 well-structured with clear sections (NO SHARED MEMORY, CROSS-AGENT HANDOFF, CAPABILITIES, BEST PRACTICES) and uses bullet points effectively. While comprehensive, some sections could be more concise, but overall it's efficiently organized with minimal 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?

For a complex 12-parameter tool with no annotations and no output schema, the description provides substantial operational context about memory limitations, multi-agent workflows, and capability strengths. However, it doesn't explain what the tool returns (output format) or error handling, which would be helpful given the absence of an output schema.

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?

The schema description coverage is 100%, so the schema already documents all 12 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. However, it does provide important context about how parameters like 'continuation_id' and 'context_paths' fit into the broader multi-agent workflow.

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's purpose: 'Run Google Gemini CLI agent (UI design / comprehensive analysis).' It specifies the agent type and its primary capabilities. However, it doesn't explicitly distinguish this tool from its siblings like 'claude' or 'codex' beyond mentioning Gemini's specific strengths.

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

Usage Guidelines5/5

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

The description provides excellent usage guidance with explicit when-to-use recommendations: 'Good first choice for "understand this codebase" tasks' and lists specific capabilities where Gemini excels (UI design, image understanding, rapid prototyping, full-text analysis). It also explains cross-agent handoff procedures and memory limitations, giving clear operational context.

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

gemini_parallelA

Run multiple gemini tasks in parallel. All tasks share workspace/permission/save_file. Results are appended to save_file with XML wrappers (). Max 100 tasks. Model can be array: single element shared by all, or one per task.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceYesProject root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths.
permissionNoSecurity level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'.read-only
save_fileYesPREFERRED when agent needs to write files or produce lengthy output. Output is written directly to this path, avoiding context overflow. This write is permitted even in read-only mode (server-handled). Essential for: code generation, detailed reports, documentation.
report_modeNoGenerate a standalone, document-style report (no chat filler) suitable for sharing.
context_pathsNoList of relevant files/dirs to preload as context hints.
modelNoModel override(s). If single element, all tasks use that model. If multiple elements, must match parallel_prompts length - each task uses corresponding model. Empty array uses CLI default.
parallel_promptsYesComplete prompts for parallel execution. Each spawns an independent subprocess.
parallel_task_notesYesLabels for each task. Length MUST equal parallel_prompts.
parallel_max_concurrencyNoMax concurrent subprocesses.
parallel_fail_fastNoStop spawning new tasks when any fails (already running tasks continue).
debugNoEnable execution stats (tokens, duration) for this call.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: results are appended to save_file with XML wrappers, tasks share workspace/permission/save_file, and model configuration options. However, it doesn't cover important aspects like error handling (beyond fail_fast), performance characteristics, or what happens when tasks exceed max concurrency.

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 appropriately sized with three sentences that each add value. It's front-loaded with the core purpose, followed by implementation details and configuration options. There's minimal waste, though the final sentence about model configuration could be slightly more concise.

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 complex parallel execution tool with 11 parameters and no annotations or output schema, the description provides adequate but incomplete coverage. It explains the parallel nature and some behavioral aspects, but doesn't address error scenarios, output interpretation beyond XML wrappers, or how results from multiple tasks are organized in the save_file.

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 100% schema description coverage, the schema already documents all 11 parameters thoroughly. The description adds minimal value beyond the schema - it mentions the model array behavior and max 100 tasks limit (which is also in the schema). The baseline of 3 is appropriate when the schema does the heavy lifting.

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 specific action ('Run multiple gemini tasks in parallel') and distinguishes it from its sibling 'gemini' by emphasizing parallel execution. It specifies the resource (gemini tasks) and scope (max 100 tasks, shared workspace/permission/save_file).

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 clear context for when to use this tool (parallel execution of multiple tasks) and implicitly distinguishes it from non-parallel alternatives like 'gemini'. However, it doesn't explicitly state when NOT to use it or name specific alternative tools for different scenarios.

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

get_gui_urlA

Get the GUI dashboard URL. Returns the HTTP URL where the live event viewer is accessible.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool returns an HTTP URL, which is useful behavioral context. However, it lacks details on potential errors, authentication needs, or rate limits, leaving gaps for a tool that likely involves network access.

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 two sentences with zero waste: it front-loads the core purpose and adds clarifying detail about the return value. Every sentence earns its place by providing essential information without fluff.

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 tool's simplicity (0 parameters, no output schema), the description is adequate but has gaps. It explains the return value but lacks context on error handling or integration with sibling tools. For a tool that likely fetches a URL, more behavioral details would enhance completeness.

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?

The tool has zero parameters, and the schema description coverage is 100% (as there are no parameters to cover). The description does not need to add parameter semantics, so a baseline of 4 is appropriate, as it efficiently avoids redundancy.

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 specific action ('Get') and resource ('GUI dashboard URL'), and distinguishes its purpose by specifying it returns 'the HTTP URL where the live event viewer is accessible.' This is precise and unambiguous, avoiding tautology with the tool name.

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 provides no guidance on when to use this tool versus alternatives (e.g., sibling tools like 'claude' or 'codex'), nor does it mention any prerequisites or exclusions. It only states what the tool does, leaving usage context implied at best.

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

imageA

Generate images via OpenRouter-compatible or OpenAI-compatible endpoints.

CAPABILITIES:

  • Text-to-image generation with multiple providers

  • Image editing and transformation with reference images

  • Multiple aspect ratios and resolutions (1K/2K/4K)

RESPONSE FORMAT:

  • Returns XML with file paths to generated images

  • Images saved to disk (no base64 in response)

  • Includes text descriptions when available

BEST PRACTICES:

  • Be descriptive: describe scenes, lighting, style, composition

  • Use negative constraints in prompt: "no text", "no watermark", "no blur"

  • For editing: provide reference image and specify what to keep

Supports: reference images for editing.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesImage generation prompt. Structure: <goal>what you want to generate (can be a statement)</goal> <context>detailed background info - the more the better</context> <hope>desired visual outcome, can be abstract</hope>. Example: <goal>Create a 4-panel comic about debugging</goal> <context>Developer finds a bug at 3am, tries multiple fixes, finally discovers it was a typo, comedic relief for tech blog</context> <hope>simple black-white line art, speech bubbles, exaggerated tired expressions</hope>
imagesNoReference images for editing or style transfer.
modelNoModel to use (default: from IMAGE_MODEL env).
aspect_ratioNoOutput image aspect ratio. Default: 1:1 (square).1:1
resolutionNoOutput resolution. 1K (1024px), 2K (2048px), 4K (4096px). Default: 1K.1K
qualityNoImage quality (OpenAI generations API). Options: standard, hd.standard
save_pathYesBase directory for saving images. Files saved to {save_path}/{task_note}/.
api_typeNoAPI type to use. Default: from IMAGE_API_TYPE env var (openrouter_chat).openrouter_chat
task_noteYesSubdirectory name for saving images (English recommended, e.g., 'hero-banner', 'product-shot'). Also shown in GUI.

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it describes the response format (XML with file paths, images saved to disk), mentions that images are saved rather than returned as base64, and includes best practices for effective usage. It doesn't cover rate limits, authentication needs, or error handling, but provides substantial operational context.

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 well-structured with clear sections (CAPABILITIES, RESPONSE FORMAT, BEST PRACTICES) and efficiently conveys information. While slightly longer than minimal, each section adds value and the structure helps with quick scanning. The final 'Supports:' line feels redundant but doesn't significantly detract.

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 complex 9-parameter tool with no annotations and no output schema, the description provides substantial context about capabilities, response format, and best practices. It covers the tool's scope well but doesn't address potential limitations, error cases, or provide examples of the XML response structure that would help the agent understand what to expect.

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 schema already documents all 9 parameters thoroughly. The description adds some context about reference images for editing and general capabilities, but doesn't provide additional parameter semantics beyond what's in the schema. This meets the baseline expectation when schema coverage is complete.

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 tool's purpose as 'Generate images via OpenRouter-compatible or OpenAI-compatible endpoints' with specific capabilities listed including text-to-image generation, image editing, and multiple aspect ratios/resolutions. It distinguishes from sibling tools (which appear to be text/chat models) by focusing exclusively on image generation and manipulation.

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 clear context for when to use this tool (image generation and editing) and includes 'BEST PRACTICES' section with specific guidance on prompt construction and editing workflows. However, it doesn't explicitly state when NOT to use this tool or name alternatives for similar functionality.

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

opencodeA

Run OpenCode CLI agent (full-stack development).

NO SHARED MEMORY:

  • Cannot see messages/outputs from codex/gemini/claude.

  • Only sees: (1) this prompt, (2) files in context_paths, (3) its own history via continuation_id.

CROSS-AGENT HANDOFF:

  • Small data: paste into prompt.

  • Large data: save_file -> context_paths -> prompt says "Read ".

CAPABILITIES:

  • Excellent at rapid prototyping and development tasks

  • Good at working with multiple frameworks and tools

  • Supports multiple AI providers (Anthropic, OpenAI, Google, etc.)

BEST PRACTICES:

  • Specify agent type for specialized tasks (e.g., --agent build)

  • Use file attachments for context-heavy tasks

Supports: file attachments, multiple agents (build, plan, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesDetailed instructions for the agent. IMPORTANT: If 'continuation_id' is NOT set, you MUST include ALL context (background, file contents, errors, constraints), as the agent has no memory. If 'continuation_id' IS set, you may be brief and reference previous context.
workspaceYesProject root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths.
continuation_idNoResume session WITHIN THIS TOOL ONLY. Use only the <continuation_id> returned by this same tool. IDs are agent-specific: codex ID won't work with gemini/claude/opencode. Switching agents does NOT sync info; pass updates via prompt or context_paths.
permissionNoSecurity level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'.read-only
modelNoOptional model override (e.g., 'gemini-2.5-pro'). Use only if specifically requested.
save_fileNoPREFERRED when agent needs to write files or produce lengthy output. Output is written directly to this path, avoiding context overflow. This write is permitted even in read-only mode (server-handled). Essential for: code generation, detailed reports, documentation.
save_file_with_wrapperNoWhen true AND save_file is set, wrap output in <agent-output> XML tags with metadata (agent name, continuation_id). For multi-agent assembly.
save_file_with_append_modeNoWhen true AND save_file is set, append instead of overwrite. For multi-agent collaboration on same document.
report_modeNoGenerate a standalone, document-style report (no chat filler) suitable for sharing.
context_pathsNoList of relevant files/dirs to preload as context hints.
fileNoAbsolute paths to files to attach to the message. Use for: Source code files, configuration files, documentation. Example: ['/path/to/main.py', '/path/to/config.json']
agentNoAgent type to use for the task. Common agents: 'build' (default, general development), 'plan' (planning). Example: 'build'build
task_noteNoREQUIRED user-facing label. Summarize action in < 60 chars (e.g., '[Fix] Auth logic' or '[Read] config.py'). Shown in GUI progress bar to inform user.
debugNoEnable execution stats (tokens, duration) for this call.

TDQS

A4.2/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure and does so comprehensively. It details critical behavioral traits: memory limitations ('NO SHARED MEMORY'), what the agent can see, cross-agent handoff procedures, capabilities, best practices, and supported features. This goes well beyond basic functionality to explain how the tool behaves in practice.

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

Conciseness3/5

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

The description is well-structured with clear sections (NO SHARED MEMORY, CROSS-AGENT HANDOFF, etc.), but it's quite lengthy at 12 sentences. While most content is valuable given the tool's complexity, some sentences could be more concise (e.g., the capabilities section lists three bullet points that could be condensed). It's front-loaded with critical information but could be tighter overall.

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 high complexity (14 parameters, no annotations, no output schema), the description provides substantial context about behavioral characteristics, usage patterns, and limitations. It covers memory constraints, handoff procedures, capabilities, and best practices. The main gap is lack of output format information, but otherwise it's quite complete for helping an agent understand when and how to use this 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 100%, so the schema already documents all 14 parameters thoroughly. The description doesn't add significant parameter-specific information beyond what's in the schema. It mentions concepts like 'context_paths' and 'file attachments' generally but doesn't explain individual parameters. The baseline of 3 is appropriate when the schema does the heavy lifting.

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's purpose: 'Run OpenCode CLI agent (full-stack development).' It specifies the verb ('Run') and resource ('OpenCode CLI agent') with additional context about its domain ('full-stack development'). However, it doesn't explicitly differentiate from sibling tools like 'codex' or 'gemini' beyond mentioning OpenCode supports multiple AI providers.

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

Usage Guidelines5/5

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

The description provides excellent usage guidelines. It explicitly states when to use this tool: 'Excellent at rapid prototyping and development tasks' and 'Good at working with multiple frameworks and tools.' It offers best practices like 'Specify agent type for specialized tasks' and 'Use file attachments for context-heavy tasks.' It also details cross-agent handoff procedures for small vs. large data, giving clear operational guidance.

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

opencode_parallelA

Run multiple opencode tasks in parallel. All tasks share workspace/permission/save_file. Results are appended to save_file with XML wrappers (). Max 100 tasks. Model can be array: single element shared by all, or one per task.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceYesProject root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths.
permissionNoSecurity level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'.read-only
save_fileYesPREFERRED when agent needs to write files or produce lengthy output. Output is written directly to this path, avoiding context overflow. This write is permitted even in read-only mode (server-handled). Essential for: code generation, detailed reports, documentation.
report_modeNoGenerate a standalone, document-style report (no chat filler) suitable for sharing.
context_pathsNoList of relevant files/dirs to preload as context hints.
modelNoModel override(s). If single element, all tasks use that model. If multiple elements, must match parallel_prompts length - each task uses corresponding model. Empty array uses CLI default.
fileNoAbsolute paths to files to attach to the message. Use for: Source code files, configuration files, documentation. Example: ['/path/to/main.py', '/path/to/config.json']
agentNoAgent type to use for the task. Common agents: 'build' (default, general development), 'plan' (planning). Example: 'build'build
parallel_promptsYesComplete prompts for parallel execution. Each spawns an independent subprocess.
parallel_task_notesYesLabels for each task. Length MUST equal parallel_prompts.
parallel_max_concurrencyNoMax concurrent subprocesses.
parallel_fail_fastNoStop spawning new tasks when any fails (already running tasks continue).
debugNoEnable execution stats (tokens, duration) for this call.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: results are appended to save_file with XML wrappers, tasks share workspace/permission/save_file, and there's a max of 100 tasks. It also explains the model array behavior. However, it doesn't mention error handling, performance implications, or what happens when tasks fail beyond the parallel_fail_fast 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?

The description is efficiently structured in three sentences that each earn their place: first establishes the core functionality, second describes the output format and constraints, third explains the model parameter behavior. No wasted words, front-loaded with the most important information about parallel execution.

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 complex tool with 13 parameters, no annotations, and no output schema, the description does well by covering the parallel nature, shared resources, output format, and model behavior. However, it doesn't explain what the tool returns (only mentions output is written to save_file) or provide guidance on error scenarios, leaving some gaps in completeness.

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 100% schema description coverage, the baseline is 3. The description adds some value by explaining that 'All tasks share workspace/permission/save_file' and mentioning the model array behavior, but it doesn't provide significant additional parameter semantics beyond what's already thoroughly documented in the schema descriptions for all 13 parameters.

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 specific action ('Run multiple opencode tasks in parallel') and distinguishes it from its sibling 'opencode' by emphasizing parallel execution and shared workspace/permission/save_file. It also mentions the XML output format and max task limit, providing a comprehensive purpose statement.

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 clear context for when to use this tool (for parallel execution of opencode tasks) and mentions the max 100 tasks limit. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools (like 'opencode' for single tasks or other *_parallel variants), which prevents a perfect score.

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.

  1. 11 tool updatesv1.0.0
    • Addedbanana
    • Changedclaude15 fields changed
      • addedInput schema / properties / context_paths
        Added value: +{
        +  "default": [],
        +  "description": "List of relevant files/dirs to preload as context hints.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / continuation_id
        Added value: +{
        +  "default": "",
        +  "description": "Resume session WITHIN THIS TOOL ONLY. Use only the <continuation_id> returned by this same tool. IDs are agent-specific: codex ID won't work with gemini/claude/opencode. Switching agents does NOT sync info; pass updates via prompt or context_paths.",
        +  "type": "string"
        +}
      • changedInput schema / properties / debug / description
        Previous value: -"Override global debug setting for this call. When true, response includes execution stats (model, duration, tokens). When omitted, uses global CAM_DEBUG setting."New value: +"Enable execution stats (tokens, duration) for this call."
      • removedInput schema / properties / full_output
        Removed value: -{
        -  "default": false,
        -  "description": "Return detailed output including reasoning and tool calls. Recommended for Gemini research/analysis tasks. Default: false (concise output)",
        -  "type": "boolean"
        -}
      • changedInput schema / properties / model / description
        Previous value: -"Model override. Only specify if user explicitly requests a specific model."New value: +"Optional model override (e.g., 'gemini-2.5-pro'). Use only if specifically requested."
      • changedInput schema / properties / permission / description
        Previous value: -"File system permission level:\n- 'read-only': Can only read files, safe for analysis tasks\n- 'workspace-write': Can modify files within workspace only (recommended for most tasks)\n- 'unlimited': (DANGER) Full system access, use only when explicitly needed"New value: +"Security level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'."
      • changedInput schema / properties / prompt / description
        Previous value: -"Detailed task instruction for the agent. Include specific file paths, function names, or error messages when available. Be explicit about scope and constraints to avoid over-engineering. Example: 'Fix the TypeError in utils.py:42, only modify that function'"New value: +"Detailed instructions for the agent. IMPORTANT: If 'continuation_id' is NOT set, you MUST include ALL context (background, file contents, errors, constraints), as the agent has no memory. If 'continuation_id' IS set, you may be brief and reference previous context."
      • addedInput schema / properties / report_mode
        Added value: +{
        +  "default": false,
        +  "description": "Generate a standalone, document-style report (no chat filler) suitable for sharing.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / save_file / description
        Previous value: -"Save agent output to a file at the specified path. The file will contain the agent's response without debug info. This saves the orchestrator from having to write files separately. Example: '/path/to/output.md'\n\nNOTE: This is intentionally exempt from permission restrictions. It serves as a convenience for persisting analysis results, not as a general file-write capability. The CLI agent's actual file operations are still governed by the 'permission' parameter."New value: +"PREFERRED when agent needs to write files or produce lengthy output. Output is written directly to this path, avoiding context overflow. This write is permitted even in read-only mode (server-handled). Essential for: code generation, detailed reports, documentation."
      • addedInput schema / properties / save_file_with_append_mode
        Added value: +{
        +  "default": false,
        +  "description": "When true AND save_file is set, append instead of overwrite. For multi-agent collaboration on same document.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / save_file_with_prompt
        Removed value: -{
        -  "default": false,
        -  "description": "When true AND save_file is set, injects a note into the prompt asking the model to verbalize its analysis and insights. The model's detailed reasoning will be automatically saved to the file. Useful for generating comprehensive analysis reports.",
        -  "type": "boolean"
        -}
      • addedInput schema / properties / save_file_with_wrapper
        Added value: +{
        +  "default": false,
        +  "description": "When true AND save_file is set, wrap output in <agent-output> XML tags with metadata (agent name, continuation_id). For multi-agent assembly.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / session_id
        Removed value: -{
        -  "default": "",
        -  "description": "Session ID to continue a previous conversation. Reuse the ID from prior tool calls to maintain context. Leave empty for new conversations.",
        -  "type": "string"
        -}
      • changedInput schema / properties / task_note / description
        Previous value: -"Display label for GUI, e.g., '[Review] PR #123'"New value: +"REQUIRED user-facing label. Summarize action in < 60 chars (e.g., '[Fix] Auth logic' or '[Read] config.py'). Shown in GUI progress bar to inform user."
      • changedInput schema / properties / workspace / description
        Previous value: -"Absolute path to the project directory. Use the path mentioned in conversation, or the current project root. Supports relative paths (resolved against server CWD). Example: '/Users/dev/my-project' or './src'"New value: +"Project root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths."
    • Addedclaude_parallel
    • Changedcodex15 fields changed
      • addedInput schema / properties / context_paths
        Added value: +{
        +  "default": [],
        +  "description": "List of relevant files/dirs to preload as context hints.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / continuation_id
        Added value: +{
        +  "default": "",
        +  "description": "Resume session WITHIN THIS TOOL ONLY. Use only the <continuation_id> returned by this same tool. IDs are agent-specific: codex ID won't work with gemini/claude/opencode. Switching agents does NOT sync info; pass updates via prompt or context_paths.",
        +  "type": "string"
        +}
      • changedInput schema / properties / debug / description
        Previous value: -"Override global debug setting for this call. When true, response includes execution stats (model, duration, tokens). When omitted, uses global CAM_DEBUG setting."New value: +"Enable execution stats (tokens, duration) for this call."
      • removedInput schema / properties / full_output
        Removed value: -{
        -  "default": false,
        -  "description": "Return detailed output including reasoning and tool calls. Recommended for Gemini research/analysis tasks. Default: false (concise output)",
        -  "type": "boolean"
        -}
      • changedInput schema / properties / model / description
        Previous value: -"Model override. Only specify if user explicitly requests a specific model."New value: +"Optional model override (e.g., 'gemini-2.5-pro'). Use only if specifically requested."
      • changedInput schema / properties / permission / description
        Previous value: -"File system permission level:\n- 'read-only': Can only read files, safe for analysis tasks\n- 'workspace-write': Can modify files within workspace only (recommended for most tasks)\n- 'unlimited': (DANGER) Full system access, use only when explicitly needed"New value: +"Security level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'."
      • changedInput schema / properties / prompt / description
        Previous value: -"Detailed task instruction for the agent. Include specific file paths, function names, or error messages when available. Be explicit about scope and constraints to avoid over-engineering. Example: 'Fix the TypeError in utils.py:42, only modify that function'"New value: +"Detailed instructions for the agent. IMPORTANT: If 'continuation_id' is NOT set, you MUST include ALL context (background, file contents, errors, constraints), as the agent has no memory. If 'continuation_id' IS set, you may be brief and reference previous context."
      • addedInput schema / properties / report_mode
        Added value: +{
        +  "default": false,
        +  "description": "Generate a standalone, document-style report (no chat filler) suitable for sharing.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / save_file / description
        Previous value: -"Save agent output to a file at the specified path. The file will contain the agent's response without debug info. This saves the orchestrator from having to write files separately. Example: '/path/to/output.md'\n\nNOTE: This is intentionally exempt from permission restrictions. It serves as a convenience for persisting analysis results, not as a general file-write capability. The CLI agent's actual file operations are still governed by the 'permission' parameter."New value: +"PREFERRED when agent needs to write files or produce lengthy output. Output is written directly to this path, avoiding context overflow. This write is permitted even in read-only mode (server-handled). Essential for: code generation, detailed reports, documentation."
      • addedInput schema / properties / save_file_with_append_mode
        Added value: +{
        +  "default": false,
        +  "description": "When true AND save_file is set, append instead of overwrite. For multi-agent collaboration on same document.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / save_file_with_prompt
        Removed value: -{
        -  "default": false,
        -  "description": "When true AND save_file is set, injects a note into the prompt asking the model to verbalize its analysis and insights. The model's detailed reasoning will be automatically saved to the file. Useful for generating comprehensive analysis reports.",
        -  "type": "boolean"
        -}
      • addedInput schema / properties / save_file_with_wrapper
        Added value: +{
        +  "default": false,
        +  "description": "When true AND save_file is set, wrap output in <agent-output> XML tags with metadata (agent name, continuation_id). For multi-agent assembly.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / session_id
        Removed value: -{
        -  "default": "",
        -  "description": "Session ID to continue a previous conversation. Reuse the ID from prior tool calls to maintain context. Leave empty for new conversations.",
        -  "type": "string"
        -}
      • changedInput schema / properties / task_note / description
        Previous value: -"Display label for GUI, e.g., '[Review] PR #123'"New value: +"REQUIRED user-facing label. Summarize action in < 60 chars (e.g., '[Fix] Auth logic' or '[Read] config.py'). Shown in GUI progress bar to inform user."
      • changedInput schema / properties / workspace / description
        Previous value: -"Absolute path to the project directory. Use the path mentioned in conversation, or the current project root. Supports relative paths (resolved against server CWD). Example: '/Users/dev/my-project' or './src'"New value: +"Project root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths."
    • Addedcodex_parallel
    • Changedgemini15 fields changed
      • addedInput schema / properties / context_paths
        Added value: +{
        +  "default": [],
        +  "description": "List of relevant files/dirs to preload as context hints.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / continuation_id
        Added value: +{
        +  "default": "",
        +  "description": "Resume session WITHIN THIS TOOL ONLY. Use only the <continuation_id> returned by this same tool. IDs are agent-specific: codex ID won't work with gemini/claude/opencode. Switching agents does NOT sync info; pass updates via prompt or context_paths.",
        +  "type": "string"
        +}
      • changedInput schema / properties / debug / description
        Previous value: -"Override global debug setting for this call. When true, response includes execution stats (model, duration, tokens). When omitted, uses global CAM_DEBUG setting."New value: +"Enable execution stats (tokens, duration) for this call."
      • removedInput schema / properties / full_output
        Removed value: -{
        -  "default": false,
        -  "description": "Return detailed output including reasoning and tool calls. Recommended for Gemini research/analysis tasks. Default: false (concise output)",
        -  "type": "boolean"
        -}
      • changedInput schema / properties / model / description
        Previous value: -"Model override. Only specify if user explicitly requests a specific model."New value: +"Optional model override (e.g., 'gemini-2.5-pro'). Use only if specifically requested."
      • changedInput schema / properties / permission / description
        Previous value: -"File system permission level:\n- 'read-only': Can only read files, safe for analysis tasks\n- 'workspace-write': Can modify files within workspace only (recommended for most tasks)\n- 'unlimited': (DANGER) Full system access, use only when explicitly needed"New value: +"Security level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'."
      • changedInput schema / properties / prompt / description
        Previous value: -"Detailed task instruction for the agent. Include specific file paths, function names, or error messages when available. Be explicit about scope and constraints to avoid over-engineering. Example: 'Fix the TypeError in utils.py:42, only modify that function'"New value: +"Detailed instructions for the agent. IMPORTANT: If 'continuation_id' is NOT set, you MUST include ALL context (background, file contents, errors, constraints), as the agent has no memory. If 'continuation_id' IS set, you may be brief and reference previous context."
      • addedInput schema / properties / report_mode
        Added value: +{
        +  "default": false,
        +  "description": "Generate a standalone, document-style report (no chat filler) suitable for sharing.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / save_file / description
        Previous value: -"Save agent output to a file at the specified path. The file will contain the agent's response without debug info. This saves the orchestrator from having to write files separately. Example: '/path/to/output.md'\n\nNOTE: This is intentionally exempt from permission restrictions. It serves as a convenience for persisting analysis results, not as a general file-write capability. The CLI agent's actual file operations are still governed by the 'permission' parameter."New value: +"PREFERRED when agent needs to write files or produce lengthy output. Output is written directly to this path, avoiding context overflow. This write is permitted even in read-only mode (server-handled). Essential for: code generation, detailed reports, documentation."
      • addedInput schema / properties / save_file_with_append_mode
        Added value: +{
        +  "default": false,
        +  "description": "When true AND save_file is set, append instead of overwrite. For multi-agent collaboration on same document.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / save_file_with_prompt
        Removed value: -{
        -  "default": false,
        -  "description": "When true AND save_file is set, injects a note into the prompt asking the model to verbalize its analysis and insights. The model's detailed reasoning will be automatically saved to the file. Useful for generating comprehensive analysis reports.",
        -  "type": "boolean"
        -}
      • addedInput schema / properties / save_file_with_wrapper
        Added value: +{
        +  "default": false,
        +  "description": "When true AND save_file is set, wrap output in <agent-output> XML tags with metadata (agent name, continuation_id). For multi-agent assembly.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / session_id
        Removed value: -{
        -  "default": "",
        -  "description": "Session ID to continue a previous conversation. Reuse the ID from prior tool calls to maintain context. Leave empty for new conversations.",
        -  "type": "string"
        -}
      • changedInput schema / properties / task_note / description
        Previous value: -"Display label for GUI, e.g., '[Review] PR #123'"New value: +"REQUIRED user-facing label. Summarize action in < 60 chars (e.g., '[Fix] Auth logic' or '[Read] config.py'). Shown in GUI progress bar to inform user."
      • changedInput schema / properties / workspace / description
        Previous value: -"Absolute path to the project directory. Use the path mentioned in conversation, or the current project root. Supports relative paths (resolved against server CWD). Example: '/Users/dev/my-project' or './src'"New value: +"Project root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths."
    • Addedgemini_parallel
    • Addedget_gui_url
    • Addedimage
    • Changedopencode15 fields changed
      • addedInput schema / properties / context_paths
        Added value: +{
        +  "default": [],
        +  "description": "List of relevant files/dirs to preload as context hints.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / continuation_id
        Added value: +{
        +  "default": "",
        +  "description": "Resume session WITHIN THIS TOOL ONLY. Use only the <continuation_id> returned by this same tool. IDs are agent-specific: codex ID won't work with gemini/claude/opencode. Switching agents does NOT sync info; pass updates via prompt or context_paths.",
        +  "type": "string"
        +}
      • changedInput schema / properties / debug / description
        Previous value: -"Override global debug setting for this call. When true, response includes execution stats (model, duration, tokens). When omitted, uses global CAM_DEBUG setting."New value: +"Enable execution stats (tokens, duration) for this call."
      • removedInput schema / properties / full_output
        Removed value: -{
        -  "default": false,
        -  "description": "Return detailed output including reasoning and tool calls. Recommended for Gemini research/analysis tasks. Default: false (concise output)",
        -  "type": "boolean"
        -}
      • changedInput schema / properties / model / description
        Previous value: -"Model override. Only specify if user explicitly requests a specific model."New value: +"Optional model override (e.g., 'gemini-2.5-pro'). Use only if specifically requested."
      • changedInput schema / properties / permission / description
        Previous value: -"File system permission level:\n- 'read-only': Can only read files, safe for analysis tasks\n- 'workspace-write': Can modify files within workspace only (recommended for most tasks)\n- 'unlimited': (DANGER) Full system access, use only when explicitly needed"New value: +"Security level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'."
      • changedInput schema / properties / prompt / description
        Previous value: -"Detailed task instruction for the agent. Include specific file paths, function names, or error messages when available. Be explicit about scope and constraints to avoid over-engineering. Example: 'Fix the TypeError in utils.py:42, only modify that function'"New value: +"Detailed instructions for the agent. IMPORTANT: If 'continuation_id' is NOT set, you MUST include ALL context (background, file contents, errors, constraints), as the agent has no memory. If 'continuation_id' IS set, you may be brief and reference previous context."
      • addedInput schema / properties / report_mode
        Added value: +{
        +  "default": false,
        +  "description": "Generate a standalone, document-style report (no chat filler) suitable for sharing.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / save_file / description
        Previous value: -"Save agent output to a file at the specified path. The file will contain the agent's response without debug info. This saves the orchestrator from having to write files separately. Example: '/path/to/output.md'\n\nNOTE: This is intentionally exempt from permission restrictions. It serves as a convenience for persisting analysis results, not as a general file-write capability. The CLI agent's actual file operations are still governed by the 'permission' parameter."New value: +"PREFERRED when agent needs to write files or produce lengthy output. Output is written directly to this path, avoiding context overflow. This write is permitted even in read-only mode (server-handled). Essential for: code generation, detailed reports, documentation."
      • addedInput schema / properties / save_file_with_append_mode
        Added value: +{
        +  "default": false,
        +  "description": "When true AND save_file is set, append instead of overwrite. For multi-agent collaboration on same document.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / save_file_with_prompt
        Removed value: -{
        -  "default": false,
        -  "description": "When true AND save_file is set, injects a note into the prompt asking the model to verbalize its analysis and insights. The model's detailed reasoning will be automatically saved to the file. Useful for generating comprehensive analysis reports.",
        -  "type": "boolean"
        -}
      • addedInput schema / properties / save_file_with_wrapper
        Added value: +{
        +  "default": false,
        +  "description": "When true AND save_file is set, wrap output in <agent-output> XML tags with metadata (agent name, continuation_id). For multi-agent assembly.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / session_id
        Removed value: -{
        -  "default": "",
        -  "description": "Session ID to continue a previous conversation. Reuse the ID from prior tool calls to maintain context. Leave empty for new conversations.",
        -  "type": "string"
        -}
      • changedInput schema / properties / task_note / description
        Previous value: -"Display label for GUI, e.g., '[Review] PR #123'"New value: +"REQUIRED user-facing label. Summarize action in < 60 chars (e.g., '[Fix] Auth logic' or '[Read] config.py'). Shown in GUI progress bar to inform user."
      • changedInput schema / properties / workspace / description
        Previous value: -"Absolute path to the project directory. Use the path mentioned in conversation, or the current project root. Supports relative paths (resolved against server CWD). Example: '/Users/dev/my-project' or './src'"New value: +"Project root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths."
    • Addedopencode_parallel
  2. 4 tool updates
    • First observedclaude
    • First observedcodex
    • First observedgemini
    • First observedopencode

TDQS

A3.9/5.0
Disambiguation4/5

Most tools have distinct purposes targeting different AI agents or functions (e.g., banana for image generation, claude for code implementation, get_gui_url for dashboard access). However, there is some overlap between 'banana' and 'image' as both handle text-to-image generation and editing, which could cause confusion despite different backend providers.

Naming Consistency3/5

The naming is mixed: some tools use simple names (banana, image, claude, codex, gemini, opencode), while others append '_parallel' for parallel execution variants (claude_parallel, codex_parallel, gemini_parallel, opencode_parallel). This pattern is somewhat consistent for parallel tools, but the base names lack a uniform verb_noun structure, making it less predictable overall.

Tool Count4/5

With 11 tools, the count is reasonable for a CLI agent server that orchestrates multiple AI agents and utilities. It covers core agents, their parallel versions, and auxiliary functions like image generation and GUI access, though it might be slightly heavy if some tools are rarely used.

Completeness4/5

The tool set provides good coverage for running various AI agents (claude, codex, gemini, opencode) with parallel execution options, plus image generation and GUI access. A minor gap is the lack of tools for managing agent sessions or configurations, but core workflows are well-supported.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

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

  • A
    license
    B
    quality
    F
    maintenance
    Enables orchestrating multiple AI CLI agents (Claude Code, Codex, Gemini CLI, Copilot CLI) through a unified MCP interface for task delegation, cross-agent comparison, and specialized tools like code review and debugging.
    14
    13
    14
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Unified CLI multiplexer for AI coding agents, enabling orchestration of multiple coding CLI tools through a single interface with session persistence, cost tracking, and MCP tool support.
    15
    19
    MIT

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/shiharuharu/cli-agent-mcp'

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