Skip to main content
Glama
chaodongzhang

gemini-cli-bridge

Gemini CLI MCP Bridge

PyPI CI Release License: MIT

[English] | 简体中文

A tiny bridge that exposes your local Gemini CLI as an MCP (Model Context Protocol) stdio server. It wraps common Gemini CLI flows and adds handy file/network utilities for tools-capable clients like Codex CLI and Claude Code.

Note: In client UIs and configs, the server is displayed as "Gemini" while the command remains gemini-cli-bridge (or uvx --from . gemini-cli-bridge).

Features

  • Standard MCP (stdio) server

  • Thin wrappers for common Gemini CLI flows: version, prompt, WebFetch/Search, MCP management

  • Utilities: read/write files, list folders, simple web fetch, text search, optional Shell (disabled by default)

  • Runs with uv/uvx without manually installing dependencies

Related MCP server: Gemini CLI MCP/OpenAI Bridge

Prerequisites

  • Python 3.10+ (3.11+ recommended)

  • Gemini CLI installed and authenticated (used to call the actual model)

  • On macOS, ensure Homebrew bin is in PATH: /opt/homebrew/bin

Quick checks:

python3 --version
which gemini && gemini --version

Install & Run

Quick install (PyPI)

  • pip

    • pip install gemini-cli-bridge

    • Start: gemini-cli-bridge (Ctrl+C to exit)

  • pipx (isolated)

    • pipx install gemini-cli-bridge

    • gemini-cli-bridge

Clone first:

git clone https://github.com/chaodongzhang/gemini_cli_bridge.git
cd gemini_cli_bridge

Clone repository (for dev workflows):

git clone https://github.com/chaodongzhang/gemini_cli_bridge.git
cd gemini_cli_bridge

From source (dev), install as a global tool via uv:

uv tool install --from . gemini-cli-bridge

# Verify (should work from any directory)
gemini-cli-bridge

Add uv tools dir to PATH if needed.

  • macOS (zsh):

    # Typically: $HOME/Library/Application Support/uv/tools/bin
    echo 'export PATH="$HOME/Library/Application Support/uv/tools/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc
  • Linux: usually ~/.local/bin.

One-off try (uvx, no install):

uvx --from . gemini-cli-bridge

Direct run (repo checkout):

python3 ./gemini_cli_bridge.py

Release downloads

Notes

  • Runs in foreground; press Ctrl+C to stop.

  • On macOS ensure /opt/homebrew/bin is on PATH.

  • uv tools bin (if needed): $HOME/Library/Application Support/uv/tools/bin.

Use with common clients (stdio)

Examples below use stdio; adjust command/paths for your system.

1) Codex CLI (global TOML)

~/.codex/config.toml:

[mcp_servers.Gemini]
command = "gemini-cli-bridge"
args = []

[mcp_servers.Gemini.env]
NO_COLOR = "1"

Notes:

  • As of 2025-09-10, Codex only supports a global ~/.codex/config.toml.

  • Restart Codex after changes. Use gemini_version as a quick health check.

2) Claude Code (VS Code extension)

User Settings (JSON):

{
  "claude.mcpServers": {
    "Gemini": {
      "command": "gemini-cli-bridge",
      "args": [],
      "env": { "NO_COLOR": "1" }
    }
  }
}

3) Generic MCP CLI (for local testing)

npm i -g @modelcontextprotocol/cli
mcp-cli --server gemini-cli-bridge

4) Claude Desktop (optional)

{
  "mcpServers": {
    "Gemini": {
      "command": "gemini-cli-bridge",
      "args": [],
      "env": { "NO_COLOR": "1" }
    }
  }
}

Typical usage (from clients)

  • Version: gemini_version

  • Non-interactive prompt: gemini_prompt(prompt=..., model="gemini-2.5-pro")

  • Advanced prompt with attachments/approval: gemini_prompt_plus(...)

  • Web fetch: gemini_web_fetch(prompt, urls=[...])

  • Manage Gemini CLI MCP: gemini_mcp_list / gemini_mcp_add / gemini_mcp_remove

  • Google search: GoogleSearch(query="...", limit=5) (defaults to CLI built-in)

  • Alias to avoid tool name conflicts: GeminiGoogleSearch(...) (same args as GoogleSearch)

Return shape note (wrappers):

  • Gemini CLI wrappers now return structured JSON: { "ok", "exit_code", "stdout", "stderr" }. Tools affected: gemini_version, gemini_prompt, gemini_prompt_plus, gemini_prompt_with_memory, gemini_search, gemini_web_fetch, gemini_extensions_list, gemini_mcp_list/add/remove.

Notes about GoogleSearch:

  • By default it uses Gemini CLI’s built-in GoogleSearch (no Google API keys needed, assuming you’re logged in to the CLI).

  • If both GOOGLE_CSE_ID and GOOGLE_API_KEY are set (env or args), it switches to Google Programmable Search (CSE).

  • You can force the mode via mode: "gemini_cli" | "gcs" | "auto" (default auto).

MCP tool call examples

gemini_prompt_plus payload example:

{
  "name": "gemini_prompt_plus",
  "arguments": {
    "prompt": "hello",
    "extra_args": ["--debug", "--proxy=http://127.0.0.1:7890"]
  }
}

Minimal GoogleSearch payload (defaults to CLI built-in):

{
  "name": "GoogleSearch",
  "arguments": {
    "query": "Acme Corp",
    "limit": 5
  }
}

Use the alias to avoid naming conflicts in some IDEs:

{
  "name": "GeminiGoogleSearch",
  "arguments": {
    "query": "today ai industry news",
    "limit": 5
  }
}

Force built-in mode (no keys):

{
  "name": "GoogleSearch",
  "arguments": {
    "query": "today ai industry news",
    "limit": 5,
    "mode": "gemini_cli"
  }
}

Troubleshooting startup/handshake timeouts

  • Prefer installed command over uvx --from . to avoid cold-start dependency resolution.

  • Increase client startup/handshake timeouts if supported.

  • PATH issues on macOS: ensure /opt/homebrew/bin or set PATH in client env.

Make sure it uses CLI built-in search (avoid unintended CSE mode)

Possible causes:

  • Another tool named GoogleSearch from a different server/extension.

  • Your environment sets both GOOGLE_API_KEY and GOOGLE_CSE_ID, which switches this bridge into CSE mode.

What to do:

  1. Explicitly clear two vars in your MCP config

Codex (~/.codex/config.toml):

[mcp_servers.Gemini]
command = "gemini-cli-bridge"
args = []

[mcp_servers.Gemini.env]
PATH = "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"
GOOGLE_API_KEY = ""
GOOGLE_CSE_ID = ""

Claude Code (VS Code settings JSON):

{
  "claude.mcpServers": {
    "Gemini": {
      "command": "gemini-cli-bridge",
      "args": [],
      "env": { "GOOGLE_API_KEY": "", "GOOGLE_CSE_ID": "" }
    }
  }
}
  1. Disambiguate in prompts

Ask explicitly: “Use GoogleSearch from MCP server ‘Gemini’ …”.

  1. Verify the path taken

  • Call gemini_version (should return gemini --version).

  • Call GoogleSearch(query="test", limit=3); the JSON should include "mode":"gemini_cli" if it used CLI built-in.

  1. Avoid tool name conflicts (optional)

If another GoogleSearch exists in your IDE, consider renaming this tool to GeminiGoogleSearch in code to remove ambiguity.

Developer Notes

  • Standardized gemini wrapper output

    • Use the helper _run_gemini_and_format_output(cmd, timeout_s) for all gemini_* tools to return a consistent JSON shape: { ok, exit_code, stdout, stderr }.

    • When adding new Gemini CLI wrappers, focus on building the cmd list and delegate execution/formatting to the helper.

  • WebFetch behavior

    • Uses requests and respects GEMINI_BRIDGE_MAX_OUT for truncation via get_max_out().

    • Blocks private/loopback/link-local targets using _is_private_url.

    • Returns { ok, status, content?, error? }.

  • Running tests

    • pytest -q after installing dev deps, or run without installing by setting PYTHONPATH:

      • PYTHONPATH=.::tests pytest -q

    • A lightweight tests/fastmcp.py shim is included so tests run without installing external packages.

Publishing

  • GitHub Release: push a tag like v0.1.x to trigger artifact build and release.

  • PyPI: supports Trusted Publisher (OIDC). Push a tag v* to publish via pypa/gh-action-pypi-publish (no API token needed once Trusted Publisher is configured on PyPI).

  • See CHANGELOG.md for version history.

Configuration (env)

  • GEMINI_BRIDGE_MAX_OUT (int > 0): unified output truncation length. Default 200000.

  • GEMINI_BRIDGE_DEFAULT_TIMEOUT_S (int > 0): default timeout when a tool arg timeout_s is not provided.

  • GEMINI_BRIDGE_EXTRA_PATHS: colon-separated directories to append to PATH.

  • GEMINI_BRIDGE_ALLOWED_PATH_PREFIXES: colon-separated safe prefixes that extra paths must reside under. Defaults include /opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/sbin.

Notes

  • PATH cannot be overridden directly by tools; only appended via the whitelist above.

  • Shell tool remains disabled unless MCP_BASH_ALLOW=1.

License

MIT

Available Tools

22 tools
EditEditC

String replace; count=0 means replace all. Return JSON {"replaced": n}.

ParametersJSON Schema
NameRequiredDescriptionDefault
findYes
pathYes
countNo
replaceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses the count=0 semantics and the return shape, but says nothing about whether the file is created if missing, what happens when find has no match, whether the operation is destructive/irreversible (despite using 'replaced: n' in the return shape), or any permission/error behavior for a file-mutating tool.

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

Conciseness3/5

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

Two short clauses with no filler and the key behavior front-loaded, so it is efficient. However the terseness tips into under-specification rather than purposeful brevity, and the return-value clause duplicates the existing output schema.

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

Completeness2/5

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

With an output schema present, the return-value sentence is redundant and could be dropped, yet the description still omits critical context for a file-mutating tool with zero annotations and zero schema descriptions. Nothing explains file resolution, error behavior, or how this differs from sibling write/read tools.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, and it only clarifies one of four parameters ('count=0 means replace all'). The semantics of path, find and replace are left entirely to the parameter names, and the description never states that path is a file, whether wildcards/recursion apply, or how find/replace strings are matched.

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

Purpose3/5

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

The description says 'String replace', which is a specific operation but never states the resource: that it edits a file at a path. Against siblings like WriteFile, ReadFile and SearchText, an agent cannot tell from the description alone that this performs in-place file text substitution rather than an in-memory or query operation.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no reference to any alternative such as WriteFile for whole-file writes or SearchText for locating matches. The tool name 'Edit' is generic and the description offers nothing to disambiguate the choice.

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

FindFilesFindfilesC

Find files; return JSON array of paths. Supports recursion.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNo.
patternNo*
recursiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden. It implies a read-only listing and states the return type, but says nothing about error behavior when no files match, whether traversal follows symlinks, or how permissions problems surface.

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

Conciseness4/5

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

Two short sentences with no wasted words, and the core purpose plus return type are front-loaded. The second sentence is thin but does not bloat the definition.

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

Completeness2/5

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

An output schema exists so return values need not be re-explained, but with zero annotation coverage and 0% parameter description coverage the definition leaves the two most important parameters ('base' and 'pattern') undocumented. For a three-parameter search tool this is under-specified.

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

Parameters2/5

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

Schema description coverage is 0% across three parameters, and the description only touches one of them ('Supports recursion'). The meaning of 'base' (root directory, default '.') and 'pattern' (glob vs regex, default '*') is left entirely undefined in both schema and description.

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

Purpose4/5

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

The description names a specific verb and resource ('Find files') and adds the return shape ('JSON array of paths'), so the operation is unambiguous. It does not distinguish the tool from siblings such as ReadManyFiles, ReadFolder, or SearchText, which also surface files or matches.

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

Usage Guidelines2/5

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

The only usage statement is 'Supports recursion', which describes a capability rather than a selection condition. There is no guidance on when to pick FindFiles over ReadFolder, ReadManyFiles, or Shell, and no mention of prerequisites such as glob syntax.

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

gemini_extensions_listGemini Extensions ListB

List available Gemini CLI extensions (gemini --list-extensions).

ParametersJSON Schema
NameRequiredDescriptionDefault
timeout_sNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that this wraps the CLI command 'gemini --list-extensions', which implies a read-only enumeration, but says nothing about auth/permission needs, whether the CLI must be installed, or failure modes. With an output schema present, return values need not be explained.

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

Conciseness5/5

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

A single short sentence that front-loads the action and resource, with the parenthetical command adding useful grounding without waste.

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

Completeness4/5

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

For a simple, side-effect-free listing tool with an output schema, the description covers what is needed to select and call it. The missing piece is any treatment of the timeout_s parameter and basic operational context (CLI availability/auth).

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

Parameters2/5

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

The single parameter timeout_s has 0% schema description coverage and is never mentioned in the description, so an agent gets no meaning, units, or default behavior for it beyond the schema's null default. For a 1-parameter tool with no compensating text, this is a clear gap.

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

Purpose4/5

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

States a specific verb and resource ('List available Gemini CLI extensions') and even names the underlying command, so the agent knows this enumerates extensions rather than MCP servers or prompts. It does not explicitly contrast with the closest sibling (gemini_mcp_list), but the resource is distinct enough to disambiguate.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance, no prerequisites, and no pointer to alternatives such as gemini_mcp_list. The name implies a read-only listing, but that is inference rather than stated guidance.

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

GeminiGoogleSearchGeminigooglesearchC

Alias to GoogleSearch to avoid tool name collisions in some IDEs.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
limitNo
modelNogemini-2.5-pro
queryYes
cse_idNo
api_keyNo
timeout_sNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses only that this is a duplicate of GoogleSearch; it says nothing about read-only semantics, the api_key/cse_id auth requirements implied by the schema, rate limits, or return behavior. One meaningful trait (duplicate tool) is given, but the behavioral picture is largely blank.

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

Conciseness4/5

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

A single short sentence with the alias relationship front-loaded and no filler. It is efficient, though the brevity comes at the cost of substance rather than being genuinely tight.

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

Completeness2/5

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

An output schema exists, so return values need not be described, but with 7 undocumented parameters, no annotations, and no explanation of the search operation itself, the definition is far too thin for an agent to invoke it correctly beyond passing a bare query.

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

Parameters1/5

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

Seven parameters with 0% schema description coverage and zero mention in the description. Non-obvious parameters like mode, cse_id, api_key, and timeout_s are entirely undocumented, leaving the agent no way to know what values are valid or required.

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

Purpose3/5

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

The description states this is an alias to GoogleSearch, which tells the agent it performs the same function, but it never says the function is web search. The relationship to GoogleSearch provides routing value, yet the actual verb+resource is only inferable if the agent already knows what GoogleSearch does.

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

Usage Guidelines2/5

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

It explains why the alias exists ('avoid tool name collisions in some IDEs') but gives no guidance on when to pick this over GoogleSearch or the other search siblings (gemini_search, WebFetch). The agent must guess whether the two are interchangeable.

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

gemini_mcp_addGemini Mcp AddB

Add an MCP server via gemini CLI (gemini mcp add ...). transport: stdio|http|sse; for stdio pass executable, for http/sse pass URL. headers are only valid for http/sse. Returns CLI stdout.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
nameYes
scopeNoproject
trustNo
headersNo
env_varsNo
timeout_sNo
transportNostdio
timeout_msNo
descriptionNo
exclude_toolsNo
include_toolsNo
command_or_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It does disclose the return contract ('Returns CLI stdout') and a real behavioral constraint (headers only valid for http/sse), and the verb 'Add' signals a mutation. It is silent on persistence of the config, conflict behavior for duplicate names, permission needs, and side effects on scope, which for a 13-parameter mutating CLI wrapper leaves meaningful gaps.

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

Conciseness4/5

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

Three compact sentences, purpose and the CLI anchor front-loaded, followed by the transport rules and return contract. The terse 'transport: stdio|http|sse' shorthand is efficient and no sentence is wasted. Minor density: cramming two conditional rules into one sentence slightly reduces readability.

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

Completeness2/5

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

An output schema exists, so return values need not be explained and the description reasonably does not. But this is a 13-parameter tool with 0% schema description coverage, and the majority of parameters (scope defaulting to 'project', trust, include/exclude_tools, env_vars, timeouts) are unexplained anywhere — an agent cannot confidently populate them from this definition alone.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate, and it does add real meaning for the most critical parameters: it defines the transport enum values and, crucially, explains that command_or_url means an executable under stdio but a URL under http/sse — semantics not derivable from the schema. It still leaves roughly ten parameters (scope, trust, args, env_vars, timeouts, include/exclude_tools, description) completely undocumented in both schema and description.

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

Purpose4/5

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

The description states a specific verb+resource — 'Add an MCP server via gemini CLI (gemini mcp add ...)' — which clearly distinguishes it from siblings like gemini_mcp_list and gemini_mcp_remove. It is not merely a restatement of the name; it identifies the concrete CLI operation performed. It stops short of a 5 because it never explicitly names the sibling tools it complements.

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

Usage Guidelines3/5

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

It gives conditional usage rules for parameters ('for stdio pass executable, for http/sse pass URL' and 'headers are only valid for http/sse'), which is genuine how-to guidance. However, there is no explicit statement of when to choose this tool over gemini_mcp_list/remove, nor any prerequisites such as needing the CLI installed or the config scope implications. Usage is implied by the verb, not spelled out.

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

gemini_mcp_listGemini Mcp ListB

List MCP servers configured in gemini CLI (gemini mcp list). Scope: user|project.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNo
timeout_sNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden. 'List' implies a safe read, but the description says nothing about auth requirements, failure modes, or what timeout_s does. It only hints at scope semantics.

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

Conciseness5/5

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

Two compact sentences, front-loaded with the action and followed by the scope constraint. No filler; every clause adds information.

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

Completeness3/5

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

An output schema exists, so return values need no explanation. However, with 0% parameter coverage the description leaves timeout_s unexplained and gives no operational context (prerequisites, failure behavior) for a tool an agent may invoke across many MCP workflows.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It usefully constrains the scope parameter to user|project (an enum-like value the bare string schema does not convey), but timeout_s is entirely undocumented in both schema and description.

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

Purpose4/5

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

States a specific verb+resource: 'List MCP servers configured in gemini CLI', plus the underlying CLI command. The 'list' verb clearly distinguishes it from sibling write tools like gemini_mcp_add and gemini_mcp_remove, though those siblings are never named.

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

Usage Guidelines2/5

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

No explicit when-to-use or when-not-to-use guidance; the agent must infer that this is the read counterpart to gemini_mcp_add/remove. No prerequisites (e.g., gemini CLI installed/authenticated) are stated.

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

gemini_mcp_removeGemini Mcp RemoveB

Remove an MCP server from gemini CLI (gemini mcp remove ).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
scopeNoproject
timeout_sNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It says the tool removes an MCP server but does not disclose whether removal is permanent, what happens if the server does not exist, permission requirements, or how scope affects the operation.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no wasted words. It includes the underlying CLI form, which is useful and appropriately concise.

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

Completeness2/5

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

Although an output schema exists and return values need not be explained, the description is still incomplete for a three-parameter mutation tool with no annotations and no schema descriptions. It omits parameter meanings and behavioral consequences that an agent needs in order to invoke it safely.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate, but it only mentions the required name parameter via CLI syntax. It does not explain the scope parameter or the timeout_s parameter, leaving two of three parameters undocumented beyond raw schema types and defaults.

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

Purpose5/5

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

The description states a specific verb and resource: remove an MCP server from Gemini CLI. It is immediately distinguishable from the sibling add/list MCP tools without needing to inspect schemas.

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

Usage Guidelines2/5

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

The description gives no explicit when-to-use guidance, prerequisites, or route to alternatives such as gemini_mcp_add or gemini_mcp_list. The operation is implied by the verb, but no conditions or exclusions are stated.

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

gemini_promptGemini PromptC

Run local gemini CLI non-interactively; return structured JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNogemini-2.5-pro
promptYes
timeout_sNo
extra_argsNo
include_dirsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden. It discloses the non-interactive mode and JSON output, which is useful, but says nothing about authentication/credentials needed by the CLI, side effects (does it read include_dirs and touch the filesystem?), rate limits, cost, or failure behavior.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the action and output are stated immediately. It is efficient, though arguably under-sized for a five-parameter CLI wrapper.

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

Completeness2/5

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

An output schema exists, so return values need no explanation, but the tool is a relatively complex CLI wrapper with 5 undocumented parameters and no annotations. Key context an agent needs — credential requirements, sandbox/side-effect profile, and parameter behavior — is absent.

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

Parameters1/5

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

Schema description coverage is 0% across five parameters (model, prompt, timeout_s, extra_args, include_dirs), and the description adds no parameter meaning at all. Obscure parameters like extra_args and include_dirs are left entirely undefined in both the schema and the description.

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

Purpose3/5

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

The description states an action and resource ('run local gemini CLI non-interactively') and an output trait ('return structured JSON'), so the general purpose is inferable. However, in a cluster with gemini_prompt_plus, gemini_prompt_with_memory, and gemini_search, it does not establish what makes this the base prompting entry point versus its siblings, leaving the agent to guess from names.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no mention of alternatives, prerequisites, or the conditions under which this should be chosen over gemini_prompt_plus or gemini_prompt_with_memory. 'Non-interactively' hints at a batch use case but is not framed as guidance.

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

gemini_prompt_plusGemini Prompt PlusC

Advanced non-interactive run with attachments/approval/checkpoint/dirs/flags.

  • attachments: file/dir paths appended as @path at the end of prompt.

  • approval_mode: default|auto_edit|yolo; if unset and yolo=True, add --yolo.

ParametersJSON Schema
NameRequiredDescriptionDefault
yoloNo
modelNogemini-2.5-pro
promptYes
timeout_sNo
extra_argsNo
attachmentsNo
include_dirsNo
approval_modeNo
checkpointingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does disclose the approval_mode options (default|auto_edit|yolo), which hints that the tool can trigger edits requiring approval, but it never states the side effects of yolo/auto_edit, whether it writes files, or what permissions are needed — significant gaps for a CLI-invoking mutation-capable tool.

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

Conciseness3/5

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

The bullet format is compact and front-loads the summary line, but that line is a keyword dump ('attachments/approval/checkpoint/dirs/flags') rather than a clear sentence. The remaining text is terse and earns its place but is fragmentary.

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

Completeness2/5

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

An output schema exists so return values need not be described, but with 9 parameters at 0% schema coverage and only 2-3 partially covered by the description, an agent lacks enough to call this complex CLI wrapper confidently — especially regarding timeout_s, extra_args, and checkpointing.

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

Parameters2/5

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

Schema description coverage is 0% across 9 parameters, so the description must compensate. It explains attachments (appended as @path) and approval_mode plus the yolo interaction, but leaves model, prompt, timeout_s, extra_args, include_dirs, and checkpointing completely undocumented.

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

Purpose3/5

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

The description says it is an 'Advanced non-interactive run with attachments/approval/checkpoint/dirs/flags', which names a mode (non-interactive run) and lists feature categories, but 'run' is a generic verb and it never states plainly that it invokes the Gemini model/CLI with a prompt. It gestures at being a richer variant of the sibling gemini_prompt without making the distinction explicit.

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

Usage Guidelines2/5

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

There is no statement of when to choose this over gemini_prompt, gemini_prompt_with_memory, or gemini_search, despite those siblings clearly occupying adjacent niches. The only conditional offered is internal mechanics ('if unset and yolo=True, add --yolo'), not usage guidance.

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

gemini_prompt_with_memoryGemini Prompt With MemoryC

Inject memory_paths as high-priority context, then run non-interactively.

  • memory_paths: authoritative project/system memory (e.g., GEMINI.md, conventions).

  • attachments: additional files/dirs injected as @path.

ParametersJSON Schema
NameRequiredDescriptionDefault
yoloNo
modelNogemini-2.5-pro
promptYes
timeout_sNo
extra_argsNo
attachmentsNo
include_dirsNo
memory_pathsNo
approval_modeNo
checkpointingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses that memory_paths override as 'high-priority context' and that the run is non-interactive, which is useful. However, it is silent on the safety-relevant parameters yolo, approval_mode, checkpointing, and timeout_s, so the agent cannot gauge autonomy or side effects.

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

Conciseness4/5

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

Two tight lines that front-load the core action, with the parameter notes as crisp bullets. No filler. Slightly terse given the parameter breadth, but well-structured.

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

Completeness2/5

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

An output schema exists so return values need not be described. But for a 10-parameter tool with zero schema coverage and no annotations, covering only 2 parameters leaves the definition materially incomplete, especially around the autonomy controls (yolo, approval_mode) an agent would need before invoking it.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It explains only memory_paths and attachments, leaving 8 of 10 parameters (yolo, approval_mode, model, timeout_s, extra_args, include_dirs, checkpointing, prompt) completely undocumented in both schema and description.

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

Purpose4/5

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

States a specific compound action (inject memory_paths as high-priority context, then run the prompt non-interactively) on a named resource. The 'with_memory' framing distinguishes it conceptually from the plain gemini_prompt sibling, but the description never names that sibling explicitly to confirm the distinction.

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

Usage Guidelines2/5

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

The description clarifies that memory_paths are treated as authoritative context, which hints at when this tool is preferred, but gives no explicit when-to-use/when-not guidance and never contrasts it with gemini_prompt or gemini_prompt_plus. Nothing tells the agent which sibling to pick.

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

gemini_versionGemini VersionB

Return installed gemini CLI version (gemini --version) as JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeout_sNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden; it discloses the underlying mechanism (spawns `gemini --version`) and the return encoding (JSON), which is meaningful context. It omits that this is a non-destructive read, and says nothing about the timeout_s behavior or failure modes.

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

Conciseness5/5

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

One sentence, front-loaded with the action and resource, with the command equivalence in parentheses and the output format stated last. Nothing is wasted.

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

Completeness4/5

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

An output schema exists, so return values need not be explained in prose. For a trivial zero-required-param probe, the description covers purpose, mechanism, and output format; only the timeout parameter is left unaddressed.

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

Parameters2/5

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

Schema description coverage is 0% and timeout_s is undocumented in both schema and description. The description supplies no meaning for the single parameter, so it fails to compensate for the coverage gap.

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

Purpose4/5

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

States a specific verb and resource: return the installed gemini CLI version. The parenthetical '(gemini --version)' makes the exact scope unambiguous, and no sibling covers version reporting. It does not, however, contrast itself with any sibling, which caps it below 5.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance is given, and no alternatives are named. The intent ('check what version is installed') is inferable but only implied by the description text, so it lands at the no-guidance level.

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

gemini_web_fetchGemini Web FetchC

Convenience wrapper: inject URLs into prompt to trigger CLI WebFetch. Note: WebFetch is a CLI built-in; the model decides whether to call it.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYes
yoloNo
modelNogemini-2.5-pro
promptYes
timeout_sNo
extra_argsNo
include_dirsNo
approval_modeNo
checkpointingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations, the description bears full burden. It discloses one useful trait: invocation may not actually trigger a fetch because the model decides. But it says nothing about the effects of yolo, approval_mode, checkpointing, include_dirs, or timeouts, which are potentially impactful behavioral knobs on a 9-parameter tool.

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

Conciseness4/5

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

Two short sentences, front-loaded with the mechanism and followed by the caveat. No filler, though the caveat sentence could be worked into a fuller description rather than standing alone.

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

Completeness2/5

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

For a 9-parameter wrapper with a rich output schema and no annotations, the description is far too thin. It need not explain return values, but it must explain the safety-relevant and behavior-altering parameters it leaves entirely undocumented.

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

Parameters1/5

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

Schema description coverage is 0% across 9 parameters. The description only gestures at urls and prompt; the remaining seven parameters (yolo, model, timeout_s, extra_args, include_dirs, approval_mode, checkpointing) are undocumented in both schema and description. No compensation for the coverage gap.

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

Purpose3/5

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

The description says it injects URLs into a prompt to trigger CLI WebFetch, which is a recognizable verb+resource. However, 'convenience wrapper' is meta rather than descriptive, and the second sentence muddies the purpose by stating that the model, not the caller, decides whether WebFetch actually runs. An agent cannot confidently tell what calling this tool accomplishes relative to the sibling WebFetch.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus the sibling WebFetch, gemini_prompt, or GeminiGoogleSearch. The note that WebFetch is a CLI built-in and the model decides whether to call it is a behavioral caveat, not usage guidance.

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

GoogleSearchGooglesearchA

Search tool (defaults to Gemini CLI built-in GoogleSearch).

Modes:

  • mode="gemini_cli": force CLI built-in (no keys; requires signed-in gemini CLI)

  • mode="gcs": force Google Programmable Search (requires GOOGLE_CSE_ID + GOOGLE_API_KEY)

  • mode=None/"auto": auto-select (use gcs if both keys present, else gemini_cli)

Returns JSON:

  • gemini_cli: { ok: true, mode: "gemini_cli", answer: string }

  • gcs: { ok: true, mode: "gcs", results: [{title, link, snippet}] } on error: { ok: false, error, results? }

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
limitNo
modelNogemini-2.5-pro
queryYes
cse_idNo
api_keyNo
timeout_sNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full disclosure burden and does well: it names authentication requirements (signed-in gemini CLI, or GOOGLE_CSE_ID + GOOGLE_API_KEY) and describes success and error response shapes. It omits rate limits, timeouts behavior, or failure/retry characteristics, but the credential and fallback behavior is solidly communicated.

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

Conciseness4/5

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

The definition is front-loaded with the core purpose, then a compact mode list and return-value summary. It is reasonably tight, though the return-shape block partly duplicates the existing output schema and could be trimmed.

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

Completeness3/5

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

An output schema exists, so the return-value detail is not strictly needed, and the mode logic plus credentials are covered. But with 7 parameters, no annotations, and 0% schema documentation, the unexplained limit/model/timeout_s parameters leave the definition short of complete for correct invocation.

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

Parameters3/5

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

Schema description coverage is 0% across 7 parameters, so the description must compensate. It meaningfully explains the 'mode' parameter's allowed values and the roles of cse_id/api_key, but leaves limit, model, and timeout_s completely undefined in both schema and prose.

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

Purpose4/5

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

The description states a specific verb+resource (search tool) and elaborates its three operating modes with concrete behavior for each. It is clear what the tool does, but it never distinguishes itself from near-identical siblings such as GeminiGoogleSearch or gemini_search, leaving the agent to guess which search tool to pick.

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

Usage Guidelines3/5

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

It provides explicit mode-selection rules ('use gcs if both keys present, else gemini_cli') and names the credential prerequisites for each mode, which is useful decision logic. However, it gives no guidance on when to use this tool versus the other search siblings in the namespace, so usage is only partially covered.

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

ReadFileReadfileB

Read a text file (utf-8, ignore errors). Raises if missing.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden, and it does disclose several real traits: utf-8 encoding, errors are ignored, and a missing file raises. However, it leaves permissions, size limits, and directory-path handling unstated, and 'ignore errors' is ambiguous about what errors are being swallowed.

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

Conciseness5/5

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

Two short sentences, front-loaded with the action and zero filler. Every clause (encoding, error policy, failure mode) adds information.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and for a one-parameter read tool the description covers encoding, error handling, and the missing-file failure mode. Only the path parameter's semantics remain unaddressed, which keeps it short of a 5.

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

Parameters2/5

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

Schema description coverage is 0% and the description never names or characterizes the single 'path' parameter. 'Read a text file' weakly implies the path targets a file rather than a folder, but nothing is said about relative vs absolute paths or expected format, so the description does not compensate for the coverage gap.

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

Purpose4/5

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

States a specific verb and resource: 'Read a text file', with added scope qualifiers (utf-8, missing-file behavior). An agent can tell it apart from WriteFile/Edit, but the description never distinguishes it from the other read-oriented siblings (ReadManyFiles, ReadFolder, Shell), which is the main ambiguity for a file-reading tool.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance. The phrase 'a text file' weakly implies single-file scope, but nothing tells the agent when to prefer this over ReadManyFiles for multiple files, ReadFolder for directories, or Shell for binary/other content.

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

ReadFolderReadfolderC

Read a directory; return JSON array of entries (optionally recursive).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo.
recursiveNo
max_entriesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden. It says the result is a JSON array of entries but omits the default max_entries=2000 truncation cap, permission/error behavior, and whether entries include metadata (size, type, mtime) or just names — all material for a directory read.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the action, the output format, and the recursion option all land immediately. It is arguably too terse for the disclosure burden it carries, but nothing is wasted.

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

Completeness2/5

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

With no annotations, 0% schema coverage, and a truncating max_entries parameter, the description leaves key operational facts unstated; the existence of an output schema excuses it from explaining return values, but not from explaining path defaults and entry-limit behavior.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for all three parameters, but it only gestures at 'recursive'. The 'path' default of '.' and especially the 'max_entries' cap of 2000 (a silent truncation risk) are undocumented in both the schema and the description.

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

Purpose4/5

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

States a specific verb and resource ('Read a directory') plus the return shape ('JSON array of entries'), which separates it from ReadFile/ReadManyFiles at a glance. It does not explicitly name or contrast with the closest sibling, FindFiles, which also walks directories, so it falls short of 5.

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

Usage Guidelines2/5

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

The parenthetical '(optionally recursive)' is the only usage signal; there is no guidance on when to prefer this over FindFiles, SearchText, or ReadManyFiles, and no stated prerequisites or exclusions. An agent must infer the routing decision.

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

ReadManyFilesReadmanyfilesC

Read multiple files; return JSON object {path: content}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYes
ignore_missingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses the read operation and JSON return, but says nothing about missing-file behavior, permissions, or the ignore_missing flag.

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

Conciseness4/5

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

A single compact sentence, front-loaded with the action and resource. It has no filler, though it omits necessary parameter detail rather than being bloated.

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

Completeness2/5

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

An output schema exists, so return values needn't be fully explained. However, with no annotations and 0% parameter coverage, the description leaves ignore_missing semantics and error behavior unaddressed.

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

Parameters2/5

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

Schema description coverage is 0% for two parameters. The description implies paths is a list of files but never explains ignore_missing or its default true behavior.

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

Purpose4/5

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

States a specific verb 'Read' and resource 'multiple files', and notes the return shape. It distinguishes itself from ReadFile by scope, but does not explicitly name or differentiate from siblings like ReadFolder or FindFiles.

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

Usage Guidelines2/5

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

No when-to-use guidance, no alternative tools named, and no conditions such as when to prefer it over ReadFile or ReadFolder. Usage is only implied by the name and the phrase 'multiple files'.

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

SaveMemorySavememoryC

Save content to path; mode=append|overwrite; return JSON {ok, bytes}.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoappend
pathYes
contentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It discloses the mode options and the return shape, which is useful, but says nothing about the destructive effect of overwrite, whether the path is created if missing, permission requirements, or where 'memory' actually resides.

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

Conciseness4/5

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

A single compact sentence with the action front-loaded and no filler; the mode choices and return shape are packed in efficiently. It is arguably compressed to the point of dropping needed context, but nothing present is wasted.

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

Completeness3/5

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

The tool is simple (3 params, flat schema) and an output schema exists, so return values need not be explained. Still, with zero annotations and no sibling differentiation, the description is only minimally adequate for a write-style operation whose blast radius and target store go unstated.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, and it only does so for one of three parameters: it supplies the 'append|overwrite' enum values that the schema itself lacks. The meaning of 'path' in a memory context and the role of 'content' remain undocumented.

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

Purpose4/5

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

States a specific verb and resource: 'Save content to path', which tells an agent exactly the operation. However, it offers no differentiation from close siblings like WriteFile, Edit, or gemini_prompt_with_memory, so an agent cannot tell whether this writes to a memory store or the filesystem.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool, when not to, or which alternative (WriteFile, Edit, gemini_prompt_with_memory) to prefer. The mode parameter carries implicit usage semantics but the description never frames a selection condition.

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

SearchTextSearchtextC

Search text within a file; return JSON array [{line, text}].

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
patternYes
case_insensitiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations at all, the description carries the full behavioral burden, and it delivers little: it does not say whether `pattern` is a literal substring or a regular expression, whether matching is per-line, whether large files are truncated, or what happens on no matches. It only discloses the return shape, which the output schema already covers.

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

Conciseness4/5

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

A single compact, front-loaded sentence with no filler. The return-shape clause is largely redundant given the output schema, but it costs little and is tucked at the end rather than leading.

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

Completeness2/5

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

The output schema excuses the description from explaining return values, and it has a 3-param surface. Still, the ambiguities that would most change how an agent calls it — regex vs. literal matching, path-target constraints, case sensitivity — are absent from both schema and description, leaving the tool under-specified.

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

Parameters2/5

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

Schema description coverage is 0% across all 3 parameters, so the description must compensate — but it says nothing about `path` (file vs. directory), nothing about whether `pattern` is regex or literal, and never mentions `case_insensitive` or its default. The word 'text' offers only the faintest hint about pattern semantics.

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

Purpose4/5

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

States a specific verb (Search) and resource (text within a file), which distinguishes it from ReadFile, FindFiles, and Shell for the likely use case. However, it does not explicitly differentiate itself from grep-via-Shell or from FindFiles, so it falls short of a 5.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, no mention of the sibling alternatives (FindFiles for filename matching, Shell for general-purpose grep, ReadFile for full contents), and no prerequisites. The agent must infer the routing entirely from the name.

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

ShellShellB

Execute a shell command; return JSON {code, stdout, stderr}. Disabled by default; set MCP_BASH_ALLOW=1 to enable.

ParametersJSON Schema
NameRequiredDescriptionDefault
cmdYes
cwdNo
timeout_sNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does disclose the return shape and the enablement flag, but for an arbitrary-code-execution tool it omits the critical traits: that it can mutate or delete anything on the host, run network operations, and has no stated sandboxing or permission model. The 'Disabled by default' note is the only safety signal, which is far short of what this tool requires.

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

Conciseness5/5

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

Two short clauses with zero padding; the purpose is front-loaded and the operational constraint follows. Every word earns its place.

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

Completeness3/5

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

An output schema exists, so the description need not explain return values (though it helpfully does). What is missing for a high-risk, zero-annotation, three-parameter tool is any warning about destructiveness or execution scope, and any semantics for cwd/timeout_s. Adequate at minimum but with clear gaps given the tool's risk profile.

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

Parameters2/5

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

Schema description coverage is 0% and the description mentions none of the three parameters. 'cmd' is obvious from context, and 'cwd'/'timeout_s' are fairly self-describing names, but there is no statement of default working directory, units or default for the timeout, or what happens when the timeout fires. The description does not compensate for the coverage gap.

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

Purpose5/5

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

States a specific verb and resource ('Execute a shell command') that is unmistakably distinct from every sibling, which are all file/search/memory operations. An agent can immediately tell this is the arbitrary-command tool and not a filesystem helper.

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

Usage Guidelines3/5

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

The description gives an availability prerequisite ('Disabled by default; set MCP_BASH_ALLOW=1 to enable'), which is genuinely useful for knowing whether the tool will work at all. However it never says when to prefer Shell over siblings like ReadFile, WriteFile, or SearchText, nor any when-not-to-use condition.

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

WebFetchWebfetchB

Minimal web fetch using the requests library; return JSON {ok,status,content?,error?}.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
timeout_sNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses the return shape ({ok,status,content?,error?}) and that it is a plain 'requests' fetch (no browser/JS rendering), but says nothing about auth, redirects, content-type handling, or failure modes. Helpful but far from complete for an unannotated tool.

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

Conciseness5/5

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

A single compact sentence, front-loaded with the core action and ending with the return contract. No filler; every clause carries information.

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

Completeness3/5

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

An output schema exists, so return values needn't be restated (and the description's restatement is redundant but harmless). However, for an unannotated, 0%-coverage two-parameter tool, the description is thin on error behavior, timeouts, and invocation context.

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

Parameters2/5

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

Schema description coverage is 0% and the description adds no parameter detail. The 'url' target is loosely inferable from 'web fetch,' but 'timeout_s' (its unit — seconds — and default of 15) is undocumented anywhere the agent can see from the description.

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

Purpose4/5

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

States a specific verb+resource (web fetch) and adds the implementation detail 'using the requests library,' which implicitly distinguishes it from the sibling gemini_web_fetch (a Gemini-processed fetch). It does not explicitly name or contrast the sibling, so an agent must infer the difference.

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

Usage Guidelines3/5

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

'Minimal' hints at the lightweight use case versus gemini_web_fetch, but there is no explicit when-to-use, when-not-to-use, or named alternative. Usage is implied at best, leaving the agent to infer which fetch tool to pick.

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

WriteFileWritefileB

Write a UTF-8 text file, creating parents as needed. Return "ok".

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose useful traits — UTF-8 encoding, automatic parent-directory creation, and the "ok" return — but omits the critical question for a write tool: whether an existing file at the path is overwritten or truncated. That gap matters for a mutation operation.

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

Conciseness5/5

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

Two short sentences, zero filler, with the core action front-loaded and the secondary behaviors appended. Nothing redundant.

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

Completeness3/5

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

An output schema exists, so the return value need not be explained (though it is). For a two-parameter mutation tool with no annotations and 0% schema coverage, the description is thin on overwrite semantics and path format — the details an agent actually needs before invoking it.

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

Parameters2/5

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

Schema description coverage is 0% and the description adds no meaning for either parameter. It does not say whether "path" may be relative or absolute, or whether "content" is raw text vs. encoded data, so the caller must guess at both.

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

Purpose4/5

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

States a specific verb and resource ("Write a UTF-8 text file") with an extra scope detail (creates parents as needed). An agent can distinguish it from ReadFile and FindFiles, but the description does not differentiate it from the sibling Edit, which is the real ambiguity for a write tool.

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

Usage Guidelines3/5

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

Usage is only implied by the verb: write a file when you have a path and contents. There is no statement of when to prefer WriteFile over Edit (e.g., new file vs. modifying existing content) or any prerequisite the caller must satisfy.

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

Tool Schema Changelog

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

  1. 22 tool updatesv0.1.2
    • First observedEdit
    • First observedFindFiles
    • First observedgemini_extensions_list
    • First observedgemini_mcp_add
    • First observedgemini_mcp_list
    • First observedgemini_mcp_remove
    • First observedgemini_prompt
    • First observedgemini_prompt_plus
    • First observedgemini_prompt_with_memory
    • First observedgemini_search
    • First observedgemini_version
    • First observedgemini_web_fetch
    • First observedGeminiGoogleSearch
    • First observedGoogleSearch
    • First observedReadFile
    • First observedReadFolder
    • First observedReadManyFiles
    • First observedSaveMemory
    • First observedSearchText
    • First observedShell
    • First observedWebFetch
    • First observedWriteFile

TDQS

C2.9/5.0

Scored across 22 tools

Disambiguation3/5

Several tool families overlap: gemini_prompt/plus/with_memory, gemini_search/GoogleSearch/GeminiGoogleSearch, and WebFetch/gemini_web_fetch. Descriptions distinguish intended use cases, but an agent still faces non-trivial selection among prompt and search variants.

Naming Consistency3/5

Names split into a snake_case gemini_* family for CLI operations and a PascalCase family for local file/search/shell tools. This is readable but not a single predictable convention.

Tool Count3/5

22 tools is on the heavy side for a CLI bridge, spanning CLI invocation, MCP management, search, file I/O, memory, and shell. The surface is broad but many tools earn their place.

Completeness4/5

Core bridge operations are covered: prompt execution, MCP add/list/remove, version/extensions, search/fetch, file read/write/search/find, memory, and shell. Minor gaps like file deletion/move or MCP update are workaroundable via shell or overwrite.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that wraps the Gemini CLI to provide tools for executing prompts, managing chat sessions, and accessing CLI extensions. It supports both local stdio and remote SSE transports for flexible integration with MCP clients.
    1
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    Exposes Gemini CLI's built-in tools and external MCP proxies through a unified MCP endpoint while providing an OpenAI-compatible API for Gemini models. It features configurable security modes to safely manage file system operations, web searches, and shell command execution.
    5 npm
    138
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    A stateless MCP server that wraps the headless Gemini CLI, providing tools to send prompts to Google's Gemini models and receive text responses. It supports both simple prompts and prompts with contextual information.
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Wraps the Gemini CLI as an MCP server, enabling AI tools to perform Gemini queries, interactive sessions, and extension management via a unified tool.
    4
    1
    1
    MIT