CLI Agent MCP
CLI Agent MCP is a unified Model Context Protocol server that orchestrates multiple AI agents through a single interface for collaborative development and creative tasks.
Core Agents & Tools:
Codex: Deep code analysis, critical review, bug hunting, and security analysis
Gemini: UI design, image analysis, requirement discovery, and comprehensive text analysis
Claude: Code implementation, refactoring, and feature development
OpenCode: Full-stack rapid prototyping with multiple framework support
Banana: High-fidelity image generation via Nano Banana Pro (Gemini 3 Pro) with style transfer, multi-image fusion, and multiple aspect ratios (1:1 to 21:9) at 1K/2K/4K resolutions
Image: OpenRouter/OpenAI-compatible image generation endpoints
Key Capabilities:
Parallel Execution: Run up to 100 concurrent tasks per agent type with configurable concurrency and fail-fast options
Persistent Output Capture: Required
handoff_fileparameter enables append-only output with XML wrappers for stateful tracking across stateless callsMulti-Agent Collaboration: Chain agent tasks using metadata-wrapped outputs for different perspectives (critical review, creative design, implementation)
Context Management: Provide reference files/directories via
context_pathsand image attachments for visual contextContinuation Support: Resume conversations with agent-specific continuation IDs
Permission Levels: Three security controls (read-only, workspace-write, unlimited) for each agent
Report Mode: Generate standalone, shareable documents with optional verbose reasoning
GUI Dashboard: Real-time task monitoring with pywebview
Request Isolation: Per-request execution context for safe concurrent usage
Signal Handling: Graceful SIGINT cancellation without killing the server
Configuration: Highly customizable via environment variables for enabling/disabling tools, GUI settings, debug modes, and concurrency limits. Compatible with MCP clients like Claude Desktop through JSON configuration.
Invokes Google Gemini CLI agent for UI design mockups, image analysis, requirement discovery, and comprehensive full-text analysis of projects.
Invokes OpenAI Codex CLI agent for deep code analysis, critical code review, bug hunting, and security analysis with image context support.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CLI Agent MCPclaude implement user authentication in /home/projects/api with workspace-write permission"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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

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 |
| Comma-separated list of enabled tools (empty = all) |
|
| Comma-separated list of disabled tools (subtracted from enable) |
|
| Enable GUI dashboard |
|
| GUI detail mode |
|
| Keep GUI on exit |
|
| GUI bind host |
|
| GUI bind port (set a fixed port to keep URL stable across restarts) |
|
| Include debug info in MCP responses |
|
| Write debug logs to temp file |
|
| SIGINT handling ( |
|
| Double-tap exit window (seconds) |
|
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 |
| string | ✓ | - | Task instruction for the agent |
| string | ✓ | - | Absolute path to the project directory |
| string | ✓ | - | REQUIRED. Server-side append-only output capture (always wrapped in |
| string |
| Pass from previous response to continue conversation | |
| string |
| Permission level: | |
| string |
| Model override (only specify if explicitly requested) | |
| boolean |
| Generate standalone report format | |
| boolean |
| Return compact status message instead of full output (full output still written to handoff_file) | |
| boolean |
| Return detailed output including reasoning | |
| array |
| Reference file/directory paths to provide context | |
| array |
| Absolute paths to image files for visual context | |
| string |
| Display label for GUI | |
| 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 |
| string | ✓ | - | Task instruction for the agent |
| string | ✓ | - | Absolute path to the project directory |
| string | ✓ | - | REQUIRED. Server-side append-only output capture (always wrapped in |
| string |
| Pass from previous response to continue conversation | |
| string |
| Permission level: | |
| string |
| Model override | |
| boolean |
| Generate standalone report format | |
| boolean |
| Return compact status message instead of full output (full output still written to handoff_file) | |
| boolean |
| Return detailed output including reasoning | |
| array |
| Reference file/directory paths to provide context | |
| string |
| Display label for GUI | |
| 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 |
| string | ✓ | - | Task instruction for the agent |
| string | ✓ | - | Absolute path to the project directory |
| string | ✓ | - | REQUIRED. Server-side append-only output capture (always wrapped in |
| string |
| Pass from previous response to continue conversation | |
| string |
| Permission level: | |
| string |
| Model override ( | |
| boolean |
| Generate standalone report format | |
| boolean |
| Return compact status message instead of full output (full output still written to handoff_file) | |
| boolean |
| Return detailed output including reasoning | |
| array |
| Reference file/directory paths to provide context | |
| string |
| Complete replacement for the default system prompt | |
| string |
| Additional instructions appended to default prompt | |
| string |
| Specify agent name (overrides default agent setting) | |
| string |
| Display label for GUI | |
| 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 |
| string | ✓ | - | Task instruction for the agent |
| string | ✓ | - | Absolute path to the project directory |
| string | ✓ | - | REQUIRED. Server-side append-only output capture (always wrapped in |
| string |
| Pass from previous response to continue conversation | |
| string |
| Permission level: | |
| string |
| Model override (format: | |
| boolean |
| Generate standalone report format | |
| boolean |
| Return compact status message instead of full output (full output still written to handoff_file) | |
| boolean |
| Return detailed output including reasoning | |
| array |
| Reference file/directory paths to provide context | |
| array |
| Absolute paths to files to attach | |
| string |
| Agent type: | |
| string |
| Display label for GUI | |
| 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 |
| string | ✓ | - | Image generation prompt |
| string | ✓ | - | Base directory for saving images |
| string | ✓ | - | Subdirectory name (English recommended, e.g., 'hero-banner'). Files saved to |
| array |
| Reference images (absolute paths) with optional role and label | |
| string |
| Image aspect ratio: | |
| string |
| Image resolution: | |
| boolean |
| Include thinking process in response |
Environment Variables:
Variable | Required | Default | Description |
| ✓ | - | Google API key or Bearer token |
|
| 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/CRITICALfor non-negotiable constraintsAdd 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 |
| string | ✓ | - | Image generation prompt |
| string | ✓ | - | Base directory for saving images |
| string | ✓ | - | Subdirectory name (English recommended, e.g., 'hero-banner'). Files saved to |
| array |
| Reference images (absolute paths) with optional role and label | |
| string |
| Image aspect ratio: | |
| string |
| Image resolution: | |
| string | (env) | Model to use for generation | |
| string | (env) | API type: |
Environment Variables:
Variable | Required | Default | Description |
| ✓ | - | API key for image generation |
|
| API endpoint (version path auto-appended) | |
|
| Default model | |
|
| API type: |
*_parallel_with_template
Batch task execution using simple placeholder templates. Available for all CLI agents:
codex_parallel_with_templategemini_parallel_with_templateclaude_parallel_with_templateopencode_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 %} # LoopsParameter | Type | Required | Default | Description |
| string | ✓ | - | Placeholder template for generating prompts |
| array | ✓ | - | List of variable dicts (each generates one task) |
| string | ✓ | - | Absolute path to the project directory |
| string | ✓ | - | Server-side append-only output capture |
| string |
| Template for per-task labels | |
| string |
| Permission level | |
| integer |
| Max concurrent tasks | |
| boolean |
| Stop on first failure | |
| array |
| Shared context paths for all tasks | |
| 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 tasktask_count: Total number of tasksvars: 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:
Provide
continuation_idfrom a previous response, ORExpand 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 ...>withagent,continuation_id,task_note,task_index,statustask_index: single task =0; parallel tasks =1..NOn failure, still appends with
status="error"and anError: ...message
Safety notes:
Avoid concurrent writes to the same path (outputs may interleave)
Avoid double-write conflict: do NOT point
handoff_fileat a file the agent is asked to editRecommended: 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_file → handoff_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 |
| Can only read files |
| Read-only tools only |
|
| Read workspace images only |
| Can modify files within workspace |
| All tools + sandbox |
|
| Write to workspace only |
| Full system access (use with caution) |
| All tools, no sandbox |
|
| 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=trueWhen CAM_LOG_DEBUG=true, logs are written to:
/tmp/cli-agent-mcp/cam_debug_YYYYMMDD_HHMMSS.logDebug 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
pytestLicense
MIT
Available Tools
11 toolsbananaA
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.).
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Image 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> | |
| images | No | Reference 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_ratio | No | Output image aspect ratio. Default: 1:1 (square). | 1:1 |
| resolution | No | Output resolution. 1K (1024px), 2K (2048px), 4K (4096px). Default: 4K. | 4K |
| use_search | No | Enable search grounding for factual content. Adds text to response. | |
| include_thoughts | No | Include model's thinking process in response. | |
| temperature | No | Controls randomness (0.0-2.0). Higher = more creative. Default: 1.0. | |
| top_p | No | Nucleus sampling threshold (0.0-1.0). Default: 0.95. | |
| top_k | No | Top-k sampling (1-100). Default: 40. | |
| num_images | No | Number of images to generate (1-4). Default: 1. | |
| save_path | Yes | Base directory for saving images. Files saved to {save_path}/{task_note}/. | |
| task_note | Yes | Subdirectory name for saving images (English recommended, e.g., 'hero-banner', 'product-shot'). Also shown in GUI. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | 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. | |
| workspace | Yes | Project root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths. | |
| continuation_id | No | 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. | |
| permission | No | Security level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'. | read-only |
| model | No | Optional model override (e.g., 'gemini-2.5-pro'). Use only if specifically requested. | |
| save_file | No | 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. | |
| save_file_with_wrapper | No | When 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_mode | No | When true AND save_file is set, append instead of overwrite. For multi-agent collaboration on same document. | |
| report_mode | No | Generate a standalone, document-style report (no chat filler) suitable for sharing. | |
| context_paths | No | List of relevant files/dirs to preload as context hints. | |
| system_prompt | No | Complete 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_prompt | No | Additional instructions appended to the default system prompt. Recommended way to customize behavior. Example: 'Focus on performance optimization, avoid adding new dependencies' | |
| agent | No | Specify an agent for the current session (overrides the default agent setting). Use predefined agent names configured in Claude Code settings. | |
| task_note | No | 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. | |
| debug | No | Enable execution stats (tokens, duration) for this call. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | Yes | Project root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths. | |
| permission | No | Security level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'. | read-only |
| save_file | Yes | 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. | |
| report_mode | No | Generate a standalone, document-style report (no chat filler) suitable for sharing. | |
| context_paths | No | List of relevant files/dirs to preload as context hints. | |
| model | No | Model 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_prompt | No | Complete 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_prompt | No | Additional instructions appended to the default system prompt. Recommended way to customize behavior. Example: 'Focus on performance optimization, avoid adding new dependencies' | |
| agent | No | Specify an agent for the current session (overrides the default agent setting). Use predefined agent names configured in Claude Code settings. | |
| parallel_prompts | Yes | Complete prompts for parallel execution. Each spawns an independent subprocess. | |
| parallel_task_notes | Yes | Labels for each task. Length MUST equal parallel_prompts. | |
| parallel_max_concurrency | No | Max concurrent subprocesses. | |
| parallel_fail_fast | No | Stop spawning new tasks when any fails (already running tasks continue). | |
| debug | No | Enable execution stats (tokens, duration) for this call. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | 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. | |
| workspace | Yes | Project root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths. | |
| continuation_id | No | 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. | |
| permission | No | Security level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'. | read-only |
| model | No | Optional model override (e.g., 'gemini-2.5-pro'). Use only if specifically requested. | |
| save_file | No | 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. | |
| save_file_with_wrapper | No | When 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_mode | No | When true AND save_file is set, append instead of overwrite. For multi-agent collaboration on same document. | |
| report_mode | No | Generate a standalone, document-style report (no chat filler) suitable for sharing. | |
| context_paths | No | List of relevant files/dirs to preload as context hints. | |
| image | No | Absolute paths to image files for visual context. Use for: UI screenshots, error dialogs, design mockups. Example: ['/path/to/screenshot.png'] | |
| task_note | No | 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. | |
| debug | No | Enable execution stats (tokens, duration) for this call. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | Yes | Project root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths. | |
| permission | No | Security level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'. | read-only |
| save_file | Yes | 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. | |
| report_mode | No | Generate a standalone, document-style report (no chat filler) suitable for sharing. | |
| context_paths | No | List of relevant files/dirs to preload as context hints. | |
| model | No | Model 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. | |
| image | No | Absolute paths to image files for visual context. Use for: UI screenshots, error dialogs, design mockups. Example: ['/path/to/screenshot.png'] | |
| parallel_prompts | Yes | Complete prompts for parallel execution. Each spawns an independent subprocess. | |
| parallel_task_notes | Yes | Labels for each task. Length MUST equal parallel_prompts. | |
| parallel_max_concurrency | No | Max concurrent subprocesses. | |
| parallel_fail_fast | No | Stop spawning new tasks when any fails (already running tasks continue). | |
| debug | No | Enable execution stats (tokens, duration) for this call. |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | 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. | |
| workspace | Yes | Project root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths. | |
| continuation_id | No | 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. | |
| permission | No | Security level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'. | read-only |
| model | No | Optional model override (e.g., 'gemini-2.5-pro'). Use only if specifically requested. | |
| save_file | No | 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. | |
| save_file_with_wrapper | No | When 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_mode | No | When true AND save_file is set, append instead of overwrite. For multi-agent collaboration on same document. | |
| report_mode | No | Generate a standalone, document-style report (no chat filler) suitable for sharing. | |
| context_paths | No | List of relevant files/dirs to preload as context hints. | |
| task_note | No | 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. | |
| debug | No | Enable execution stats (tokens, duration) for this call. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | Yes | Project root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths. | |
| permission | No | Security level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'. | read-only |
| save_file | Yes | 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. | |
| report_mode | No | Generate a standalone, document-style report (no chat filler) suitable for sharing. | |
| context_paths | No | List of relevant files/dirs to preload as context hints. | |
| model | No | Model 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_prompts | Yes | Complete prompts for parallel execution. Each spawns an independent subprocess. | |
| parallel_task_notes | Yes | Labels for each task. Length MUST equal parallel_prompts. | |
| parallel_max_concurrency | No | Max concurrent subprocesses. | |
| parallel_fail_fast | No | Stop spawning new tasks when any fails (already running tasks continue). | |
| debug | No | Enable execution stats (tokens, duration) for this call. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Image 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> | |
| images | No | Reference images for editing or style transfer. | |
| model | No | Model to use (default: from IMAGE_MODEL env). | |
| aspect_ratio | No | Output image aspect ratio. Default: 1:1 (square). | 1:1 |
| resolution | No | Output resolution. 1K (1024px), 2K (2048px), 4K (4096px). Default: 1K. | 1K |
| quality | No | Image quality (OpenAI generations API). Options: standard, hd. | standard |
| save_path | Yes | Base directory for saving images. Files saved to {save_path}/{task_note}/. | |
| api_type | No | API type to use. Default: from IMAGE_API_TYPE env var (openrouter_chat). | openrouter_chat |
| task_note | Yes | Subdirectory name for saving images (English recommended, e.g., 'hero-banner', 'product-shot'). Also shown in GUI. |
TDQS
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.
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.
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.
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.
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.
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.).
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | 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. | |
| workspace | Yes | Project root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths. | |
| continuation_id | No | 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. | |
| permission | No | Security level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'. | read-only |
| model | No | Optional model override (e.g., 'gemini-2.5-pro'). Use only if specifically requested. | |
| save_file | No | 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. | |
| save_file_with_wrapper | No | When 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_mode | No | When true AND save_file is set, append instead of overwrite. For multi-agent collaboration on same document. | |
| report_mode | No | Generate a standalone, document-style report (no chat filler) suitable for sharing. | |
| context_paths | No | List of relevant files/dirs to preload as context hints. | |
| file | No | Absolute 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'] | |
| agent | No | Agent type to use for the task. Common agents: 'build' (default, general development), 'plan' (planning). Example: 'build' | build |
| task_note | No | 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. | |
| debug | No | Enable execution stats (tokens, duration) for this call. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | Yes | Project root directory. Boundary for 'workspace-write'. Use absolute paths or relative paths. | |
| permission | No | Security level: 'read-only' (analyze files), 'workspace-write' (modify inside workspace), 'unlimited' (full system access). Default: 'read-only'. | read-only |
| save_file | Yes | 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. | |
| report_mode | No | Generate a standalone, document-style report (no chat filler) suitable for sharing. | |
| context_paths | No | List of relevant files/dirs to preload as context hints. | |
| model | No | Model 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. | |
| file | No | Absolute 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'] | |
| agent | No | Agent type to use for the task. Common agents: 'build' (default, general development), 'plan' (planning). Example: 'build' | build |
| parallel_prompts | Yes | Complete prompts for parallel execution. Each spawns an independent subprocess. | |
| parallel_task_notes | Yes | Labels for each task. Length MUST equal parallel_prompts. | |
| parallel_max_concurrency | No | Max concurrent subprocesses. | |
| parallel_fail_fast | No | Stop spawning new tasks when any fails (already running tasks continue). | |
| debug | No | Enable execution stats (tokens, duration) for this call. |
TDQS
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.
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.
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.
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.
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.
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.
11 tool updates
v1.0.0- Added
banana - Changed
claude15 fields changed- added
Input schema / properties / context_pathsAdded value: +{ + "default": [], + "description": "List of relevant files/dirs to preload as context hints.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / continuation_idAdded 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" +} - changed
Input schema / properties / debug / descriptionPrevious 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." - removed
Input schema / properties / full_outputRemoved value: -{ - "default": false, - "description": "Return detailed output including reasoning and tool calls. Recommended for Gemini research/analysis tasks. Default: false (concise output)", - "type": "boolean" -} - changed
Input schema / properties / model / descriptionPrevious 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." - changed
Input schema / properties / permission / descriptionPrevious 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'." - changed
Input schema / properties / prompt / descriptionPrevious 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." - added
Input schema / properties / report_modeAdded value: +{ + "default": false, + "description": "Generate a standalone, document-style report (no chat filler) suitable for sharing.", + "type": "boolean" +} - changed
Input schema / properties / save_file / descriptionPrevious 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." - added
Input schema / properties / save_file_with_append_modeAdded value: +{ + "default": false, + "description": "When true AND save_file is set, append instead of overwrite. For multi-agent collaboration on same document.", + "type": "boolean" +} - removed
Input schema / properties / save_file_with_promptRemoved 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" -} - added
Input schema / properties / save_file_with_wrapperAdded 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" +} - removed
Input schema / properties / session_idRemoved 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" -} - changed
Input schema / properties / task_note / descriptionPrevious 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." - changed
Input schema / properties / workspace / descriptionPrevious 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."
- Added
claude_parallel - Changed
codex15 fields changed- added
Input schema / properties / context_pathsAdded value: +{ + "default": [], + "description": "List of relevant files/dirs to preload as context hints.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / continuation_idAdded 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" +} - changed
Input schema / properties / debug / descriptionPrevious 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." - removed
Input schema / properties / full_outputRemoved value: -{ - "default": false, - "description": "Return detailed output including reasoning and tool calls. Recommended for Gemini research/analysis tasks. Default: false (concise output)", - "type": "boolean" -} - changed
Input schema / properties / model / descriptionPrevious 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." - changed
Input schema / properties / permission / descriptionPrevious 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'." - changed
Input schema / properties / prompt / descriptionPrevious 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." - added
Input schema / properties / report_modeAdded value: +{ + "default": false, + "description": "Generate a standalone, document-style report (no chat filler) suitable for sharing.", + "type": "boolean" +} - changed
Input schema / properties / save_file / descriptionPrevious 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." - added
Input schema / properties / save_file_with_append_modeAdded value: +{ + "default": false, + "description": "When true AND save_file is set, append instead of overwrite. For multi-agent collaboration on same document.", + "type": "boolean" +} - removed
Input schema / properties / save_file_with_promptRemoved 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" -} - added
Input schema / properties / save_file_with_wrapperAdded 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" +} - removed
Input schema / properties / session_idRemoved 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" -} - changed
Input schema / properties / task_note / descriptionPrevious 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." - changed
Input schema / properties / workspace / descriptionPrevious 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."
- Added
codex_parallel - Changed
gemini15 fields changed- added
Input schema / properties / context_pathsAdded value: +{ + "default": [], + "description": "List of relevant files/dirs to preload as context hints.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / continuation_idAdded 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" +} - changed
Input schema / properties / debug / descriptionPrevious 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." - removed
Input schema / properties / full_outputRemoved value: -{ - "default": false, - "description": "Return detailed output including reasoning and tool calls. Recommended for Gemini research/analysis tasks. Default: false (concise output)", - "type": "boolean" -} - changed
Input schema / properties / model / descriptionPrevious 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." - changed
Input schema / properties / permission / descriptionPrevious 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'." - changed
Input schema / properties / prompt / descriptionPrevious 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." - added
Input schema / properties / report_modeAdded value: +{ + "default": false, + "description": "Generate a standalone, document-style report (no chat filler) suitable for sharing.", + "type": "boolean" +} - changed
Input schema / properties / save_file / descriptionPrevious 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." - added
Input schema / properties / save_file_with_append_modeAdded value: +{ + "default": false, + "description": "When true AND save_file is set, append instead of overwrite. For multi-agent collaboration on same document.", + "type": "boolean" +} - removed
Input schema / properties / save_file_with_promptRemoved 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" -} - added
Input schema / properties / save_file_with_wrapperAdded 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" +} - removed
Input schema / properties / session_idRemoved 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" -} - changed
Input schema / properties / task_note / descriptionPrevious 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." - changed
Input schema / properties / workspace / descriptionPrevious 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."
- Added
gemini_parallel - Added
get_gui_url - Added
image - Changed
opencode15 fields changed- added
Input schema / properties / context_pathsAdded value: +{ + "default": [], + "description": "List of relevant files/dirs to preload as context hints.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / continuation_idAdded 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" +} - changed
Input schema / properties / debug / descriptionPrevious 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." - removed
Input schema / properties / full_outputRemoved value: -{ - "default": false, - "description": "Return detailed output including reasoning and tool calls. Recommended for Gemini research/analysis tasks. Default: false (concise output)", - "type": "boolean" -} - changed
Input schema / properties / model / descriptionPrevious 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." - changed
Input schema / properties / permission / descriptionPrevious 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'." - changed
Input schema / properties / prompt / descriptionPrevious 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." - added
Input schema / properties / report_modeAdded value: +{ + "default": false, + "description": "Generate a standalone, document-style report (no chat filler) suitable for sharing.", + "type": "boolean" +} - changed
Input schema / properties / save_file / descriptionPrevious 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." - added
Input schema / properties / save_file_with_append_modeAdded value: +{ + "default": false, + "description": "When true AND save_file is set, append instead of overwrite. For multi-agent collaboration on same document.", + "type": "boolean" +} - removed
Input schema / properties / save_file_with_promptRemoved 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" -} - added
Input schema / properties / save_file_with_wrapperAdded 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" +} - removed
Input schema / properties / session_idRemoved 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" -} - changed
Input schema / properties / task_note / descriptionPrevious 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." - changed
Input schema / properties / workspace / descriptionPrevious 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."
- Added
opencode_parallel
4 tool updates
- First observed
claude - First observed
codex - First observed
gemini - First observed
opencode
TDQS
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.
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.
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.
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
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
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
- DazbenchOAuthapp.dazbench
Task management your AI agents can actually run. One line becomes a context-ready task over MCP.
One MCP endpoint for Claude, GPT & Gemini: 100+ tools + no-code connectors + agent workers.
Related MCP Servers
- AlicenseBqualityFmaintenanceEnables 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.141314MIT
- AlicenseNot gradedqualityDmaintenanceUnified 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.1519MIT
- AlicenseAqualityBmaintenanceUnified MCP interface to monitor and control coding agents across OpenCode, Claude Code, and Codex CLI.101MIT
- AlicenseNot gradedqualityCmaintenanceProvides a unified MCP interface to interact with Codex CLI, Claude Code, and Grok API, allowing seamless switching between AI models in VS Code or Claude Code.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/shiharuharu/cli-agent-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server