Skip to main content
Glama

gemini-pro-mcp

English · Türkçe · Русский · Azərbaycanca

Your Google AI Pro subscription, inside Claude, Codex and the Gemini CLI. Gemini 4 Argon, Deep Research, Flow videos, Gemini Notebooks, Jules and the rest of the plan you already pay for, as up to 36 MCP tools. One command sets it up.

CI License: MIT Python 3.10+ MCP Glama scoreWorks with

uvx --from git+https://github.com/Muzaqil555/gemini-pro-mcp gemini-pro-mcp setup

If it saves you an API bill or a tab switch, a ⭐ helps other AI Pro users find it.

Why use it

  • No extra bill for Gemini. gemini_ask, gemini_research and gemini_code run on your AI Pro plan's limits through the Antigravity CLI, not on a pay-per-token API key.

  • The whole plan, not just chat. The tools reach Deep Research, Flow (any-length videos and every Flow tool), Gemini Notebooks (Audio Overviews, quizzes, slides), AI Mode, Jules and the Gemini app. google_pro_benefits lists each benefit and the tool that reaches it.

  • A second brain for your coding agent. Claude or Codex can ask Gemini for a review, a sourced web search or a delegated edit without leaving the session.

  • Set up in one command, checked in one more. setup adds the server to every client it finds. doctor checks what works and tells you how to fix what does not.

  • Safe by default. Gemini reads in a sandbox and cannot change files unless you call gemini_code. Paid calls ask you first. The browser tools are off until you turn them on, and the server never sees or types your Google password.

Ask your agent things like:

"Get a second opinion from Gemini on src/auth.py." "Research what changed in Flutter 3.47, with sources." "Make a 2 minute video of a fox's journey through a snowy forest with my Flow credits." "Put these three PDFs in a Gemini Notebook and make an Audio Overview." "Turn this logo sketch (./sketch.png) into a clean flat icon, 2K."

Related MCP server: Gemini MCP Server

How it compares

Most Gemini MCP servers give your agent one thing: a chat with Gemini, or the Gemini API's media models. This one covers the whole AI Pro plan.

gemini-pro-mcp

gemini-mcp-tool

RLabs gemini-mcp

GuDaStudio geminimcp

Gemini on your AI Pro plan, no API key

✅ Antigravity CLI

✅ Antigravity CLI (experimental)

❌ API key

Gemini CLIcli

Ask Gemini, review local files

✅

✅

✅

✅

Deep Research

✅

—

✅ (API)

—

Images and video

✅ (API, and Flow on the plan)

—

✅ (API)

—

Google Flow: any-length videos, every Flow tool

✅

—

—

—

Gemini Notebooks (Audio Overviews, quizzes...)

✅

—

—

—

Jules coding agent

✅

—

—

—

One-command setup for Claude Code, Codex, Antigravity and Gemini CLI

✅ setup + doctor

Claude Code and Desktop

Claude Code

Claude Code

Based on each project's README in November 2026. Corrections are welcome in an issue.

One MCP server, five ways into Google's AI:

Group

Tools

Runs on

Cost

Gemini (subscription)

gemini_ask, gemini_research, gemini_code, gemini_agents, gemini_models

Antigravity CLI signed in with your Google AI Pro/Ultra account

Free: uses your plan's limits

Jules

jules_start, jules_status, jules_approve_plan, jules_message, jules_sources, jules_sessions

Official Jules API (JULES_API_KEY)

Your plan's Jules limits

Media (Gemini API)

video_generate, video_edit, video_check, image_generate, video_stitch

Official Gemini API: Omni Flash video, Nano Banana images

Paid per use (AI Pro's monthly Cloud credit can cover it)

Google AI web apps (experimental)

gemini_app, gemini_app_result, google_ai_mode, notebook_*, google_page, google_act, google_pro_benefits

Your own signed-in Chrome: Gemini app, Notebooks, AI Mode, AI Studio, Colab, Flow Music, Docs

Your plan's limits

Flow (experimental)

flow_make_video, flow_job, flow_generate, flow_approve, flow_reject, flow_collect, flow_status, flow_tools, flow_open_tool: every Flow feature and tool

Your own signed-in Chrome at flow.google.com

Your plan's monthly Flow credits (e.g. 12 credits for an 8 s video)

Quick start

1. Prerequisites

  • uv (or Python 3.10+ with pip)

  • For the Gemini tools: install the Antigravity CLI, run agy once and sign in with your Google AI Pro/Ultra account.

  • For the media tools: an API key from Google AI Studio with billing enabled. See Costs.

2. Add it to your clients (one command)

uvx --from git+https://github.com/Muzaqil555/gemini-pro-mcp gemini-pro-mcp setup

setup finds Claude Code, Codex, the Antigravity CLI and the Gemini CLI on your computer, adds the server to each one, and then checks what works: the Antigravity sign-in, your API keys, Chrome and the Flow profile. Each item it reports as missing comes with the fix. Restart the clients afterwards.

  • --browser also enables the Flow, Gemini app, AI Mode and Notebook tools. Run gemini-pro-mcp flow-login once afterwards and sign in to Google in the window that opens.

  • --auto-approve pre-approves spending, so paid tools run without asking first.

  • --client codex (repeatable) sets up only the clients you name. --dry-run shows the changes without making them.

Edited config files are backed up next to themselves (config.toml.bak, settings.json.bak). To check things again later, without changing anything:

uvx --from git+https://github.com/Muzaqil555/gemini-pro-mcp gemini-pro-mcp doctor --flow

To add the server by hand instead, use the client's own command:

Claude Code

claude mcp add gemini-pro --scope user -- uvx --from git+https://github.com/Muzaqil555/gemini-pro-mcp gemini-pro-mcp

Codex

codex mcp add gemini-pro -- uvx --from git+https://github.com/Muzaqil555/gemini-pro-mcp gemini-pro-mcp

Or in ~/.codex/config.toml. Raise the tool timeout: Flow and Deep Research calls take minutes, longer than Codex's default.

[mcp_servers.gemini-pro]
command = "uvx"
args = ["--from", "git+https://github.com/Muzaqil555/gemini-pro-mcp", "gemini-pro-mcp"]
startup_timeout_sec = 60
tool_timeout_sec = 900

Antigravity CLI and Gemini CLI

agy mcp add gemini-pro -- uvx --from git+https://github.com/Muzaqil555/gemini-pro-mcp gemini-pro-mcp
gemini mcp add gemini-pro uvx --from git+https://github.com/Muzaqil555/gemini-pro-mcp gemini-pro-mcp

Settings go in as environment variables, e.g. agy mcp add --env GEMINI_PRO_ENABLE_BROWSER=1 gemini-pro -- ..., or in the .env file below.

Claude Desktop, Cursor, Windsurf and other clients. Add this to the client's MCP config:

{
  "mcpServers": {
    "gemini-pro": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/Muzaqil555/gemini-pro-mcp", "gemini-pro-mcp"]
    }
  }
}

3. Add your API key (media tools only)

Put it in ~/.config/gemini-pro-mcp/.env so it stays out of client configs:

GEMINI_API_KEY=your-key

Or pass it as an env entry in the client config. Restart the client afterwards.

Tools

Gemini on your subscription

Tool

What it does

gemini_ask

Ask Gemini anything. Pass paths to let it read local files or folders, and conversation_id to continue a chat.

gemini_research

Live web research with Google Search. The answer ends with source URLs.

gemini_models

Lists the models your account can use, for example Gemini 4 Argon and Gemini 3.8 Flash.

Every request runs agy --print in plan mode with the sandbox on, so Gemini can read and search but cannot change your files or run commands.

Media through the Gemini API

Tool

What it does

video_generate

Text to video with native audio. Optional first frame, last frame and up to 3 reference images. 16:9 or 9:16, 360p to 4K.

video_edit

Edit a previous result (previous_id) or a local clip of 10 s or less, or extend it, up to 40 s in total.

video_check

Fetches a video that was still rendering. Free.

image_generate

Create or edit images with Nano Banana 2.1, Nano Banana 2 Lite or Nano Banana Pro, at 1K, 2K or 4K.

video_stitch

Joins clips into one MP4, locally and for free (bundled ffmpeg, flow extra).

Files are saved to ~/gemini-pro-output (change it with GEMINI_PRO_OUTPUT_DIR).

Video uses Gemini Omni Flash. Google shut down the Veo 3.1 preview models on 2026-10-22 and recommends Omni Flash instead.

Costs

Prices are taken from Google's pricing page as of October 2026. Check it for current numbers.

What

Price

Free tier

Gemini tools (gemini_*)

Included in Google AI Pro/Ultra (plan limits apply)

n/a

Video, Omni Flash 720p

about $0.10 per second (8 s ≈ $0.80)

none

Image, Nano Banana 2.1

$0.034 (1K) / $0.05 (2K) / $0.11 (4K)

none

Image, Nano Banana Pro

$0.13 (1K/2K) / $0.24 (4K)

none

Does Google AI Pro pay for the API? Not directly. Google says plan benefits apply in the AI Studio web UI, and API-key usage is billed separately. AI Pro does include a monthly Google Cloud credit through the Google Developer Program, which can be spent on the Gemini API once billing is enabled. Google's blog gives the amount as $10/month.

By default the server tells the model to confirm with you before every paid call. If you would rather not be asked, set GEMINI_PRO_AUTO_APPROVE=1: the model then just does it and reports the cost afterwards.

Configuration

Variable

Default

Meaning

GEMINI_API_KEY

(none)

Gemini API key for the media tools

JULES_API_KEY

(none)

Jules API key from jules.google.com/settings, for the jules_* tools

GEMINI_PRO_OUTPUT_DIR

~/gemini-pro-output

Where videos and images are saved

AGY_PATH

agy on PATH

Path to the Antigravity CLI

GEMINI_PRO_AGY_MODEL

agy's default

Default model for gemini_* tools

GEMINI_PRO_AGY_TIMEOUT

600

Seconds per Antigravity request

GEMINI_PRO_ENABLE_BROWSER

off

1 registers the browser tools (Flow, Gemini app, AI Mode, Google AI sites)

GEMINI_PRO_FLOW_PROJECT

open or most recent project

Flow project id to work in

GEMINI_PRO_AUTO_APPROVE

off

1 = spending is pre-approved: no confirmation questions, Flow requests are approved automatically

GEMINI_PRO_ENV_FILE

~/.config/gemini-pro-mcp/.env

Optional file with any of the above

Everything in Google AI Pro

google_pro_benefits lists every benefit of the plan and the tool that reaches it. Here is the short version:

Benefit

How this server reaches it

Gemini app: 4 Argon, 3.1 Pro, thinking levels, files

gemini_app

Deep Research

gemini_app(tool="deep_research"), then gemini_app_result

Images (Nano Banana), Veo videos, music, Canvas, Guided learning in Gemini

gemini_app(tool=...)

Gemini Notebook (former NotebookLM): sources, Audio/Video Overviews, slides, quizzes...

notebook_list, notebook_create, notebook_add_sources, notebook_ask, notebook_studio

AI Mode in Google Search

google_ai_mode

Google Flow: video, images, every Flow tool

flow_* tools

Antigravity: Gemini 4 Argon on your quota

gemini_ask, gemini_research, gemini_code (edits a folder), gemini_agents

Jules coding agent (GitHub, PRs)

jules_start, jules_status, jules_approve_plan, jules_message, jules_sources, jules_sessions (official API, JULES_API_KEY)

AI Studio, Colab, Flow Music, Gemini in Docs

google_page / google_act

$10/month Cloud credit (Developer Program)

video_generate, image_generate (Gemini API)

5 TB storage, Gmail, Calendar

Google's official MCP connectors

Mobile-only or US-only features (Photos AI, Auto browse, TV Create Hub, Earth...)

Listed by google_pro_benefits as out of reach

Buying AI credits

Never automated

google_page and google_act work like a person in your browser. They read a page as numbered elements, then click, type, upload files, choose options and download results, so a new feature in any of these apps is usable on day one. They only operate the Google AI sites listed in google_web.py. Sign-in, payment and account pages are off limits.

Flow (experimental)

Google Flow has no public API. The Flow tools drive the website in a dedicated Chrome profile that you sign in to yourself:

uvx --from "gemini-pro-mcp[flow] @ git+https://github.com/Muzaqil555/gemini-pro-mcp" gemini-pro-mcp flow-login

Then set GEMINI_PRO_ENABLE_BROWSER=1 (the older GEMINI_PRO_ENABLE_FLOW=1 still works). This enables every browser-based tool: Flow, the Gemini app, AI Mode and the other Google AI sites, all in that one signed-in profile.

Tool

What it does

Credits

flow_make_video

Any length (e.g. duration_seconds=120). Gemini splits the idea into 4–8 s shots with matching descriptions, Flow generates each one, and the clips are joined into one MP4. Runs in the background.

~12 per 8 s

flow_job

Progress of flow_make_video: clips done, credits used, final file

none

flow_generate

Sends your request to Flow's agent and returns its answer, including the cost question ("…1 video generation, costing 12 credits?")

none

flow_approve

Answers that question with Approve, waits for the result and saves it (720p MP4 / original image)

spends credits

flow_reject

Declines the pending request

none

flow_collect

Downloads the newest items of the project

none

flow_status

Checks the sign-in and shows the credits left

none

flow_tools

Lists every Flow tool: Google's (Image Editor, Mockup, Shot Explorer, Mask Magic, Video Resizer, Transition Machine, Type Overlays, Shader Effects, Poster Designer…), the community's and your own

none

flow_open_tool

Opens a tool by name and shows its interface (a Google or community tool becomes your own "Remix of …" copy, as in Flow)

none

google_page / google_act

Read any Flow page or tool as numbered elements, then click, type, upload files, pick options or export, like a person. This reaches whatever has no dedicated tool: Characters, Scenes, Library, upscaling, each tool's controls

depends on the button

Every Flow feature is reachable. Flow's agent (flow_generate) handles anything you can ask in words, and google_page + google_act operate anything with buttons. For example, "put my last clip through Video Resizer at 9:16" opens the tool, imports the clip, exports a 9:16 copy and downloads it. That flow was tested end to end.

By default spending is a separate call: flow_generate stops at Flow's own permission question, and the model has to ask you before it calls flow_approve. With GEMINI_PRO_AUTO_APPROVE=1 the tools approve it themselves. Either way, keep Flow's "Confirm before generating: Always" setting on (the default), because the tools rely on that question.

Tested on 2026-10-21 with Omni 1.1 Flash: an 8 s, 1280×720, 24 fps video for 12 credits, end to end.

Read this first. Automating Flow's website may conflict with Google's terms of service, and it breaks whenever Google changes the page. This project never types or stores your credentials and uses no stealth tricks. If Google shows a CAPTCHA, you solve it. Use at your own risk.

How it works

Claude ── MCP (stdio) ──> gemini-pro-mcp ──┬── agy --print (plan + sandbox) ──> Gemini on your AI Pro plan
                                           ├── google-genai Interactions API ──> Omni Flash / Nano Banana
                                           └── Playwright over CDP ──> your Chrome ──> flow.google.com

Roadmap

  • Flow: generate, approve and download videos with plan credits

  • Flow: videos of any length (flow_make_video)

  • Flow: images, characters, smoother shot transitions (extend instead of separate clips)

  • Music generation (Lyria)

  • Publish to PyPI (uvx gemini-pro-mcp)

  • Deep Research reports

  • Animated demo (docs/demo.svg, built by docs/make_demo.py from real output)

  • One-command setup for Claude Code, Codex, Antigravity CLI and Gemini CLI

Ideas and pull requests are welcome. See CONTRIBUTING.md.

Disclaimer

This is an independent open-source project. It is not affiliated with, endorsed by or sponsored by Google or Anthropic. Gemini, Google AI Pro, Flow and Antigravity are trademarks of Google LLC.

License

MIT

  1. Google retired the Gemini CLI for Google AI Pro and Ultra users on 2026-06-18 in favor of the Antigravity CLI. API-key and enterprise users can still use it.

    ↩

Available Tools

17 tools
gemini_agentsA
Read-only

List the custom Antigravity agents the user has made or installed, such as a "reviewer" or "test-writer" agent with its own instructions. Read-only, free and quick. Call it before gemini_code when the user wants a task done by a specific agent.

    Returns:
        The agent names and descriptions as the Antigravity CLI prints them; pass
        a name as `agent` to gemini_code. "No custom agents." if there are none.
    
NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety is covered; the description still adds useful context that the call is 'free and quick' and that returned names feed into gemini_code's `agent` parameter. It also discloses the empty-state message, which helps an agent interpret a sparse result.

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?

Front-loaded with purpose, then usage, then returns; two short paragraphs with little waste. The 'Returns' block is partly redundant with the declared output schema, but the empty-state string and the handoff to gemini_code earn most of its space.

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 parameterless, read-only discovery tool with an output schema, the description covers what it lists, when to use it, and what an empty result looks like. Nothing essential for correct invocation appears to be missing.

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

Parameters4/5

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

Zero parameters, so this dimension is at its baseline; the schema is trivially complete. The description does not need to explain any input, and the note about passing a name as `agent` to gemini_code clarifies downstream usage without inventing input semantics.

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 ('List the custom Antigravity agents the user has made or installed') and gives a concrete example ('reviewer' or 'test-writer' agent with its own instructions), which differentiates it from generative siblings like gemini_code.

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

Usage Guidelines4/5

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

Explicitly says to call it before gemini_code when the user wants a task done by a specific agent, giving a clear trigger and ordering relative to the main sibling. It stops short of stating when not to call it (e.g., no need for discovery if the user already named an agent).

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

gemini_askA
Read-only

Ask Gemini a question or give it a reading task, through the Antigravity CLI on the user's Google AI Pro plan (no API cost; uses the plan's limits).

    Good for a second opinion on code or a design, reviewing local files or
    folders passed in `paths`, and long reasoning. Gemini runs read-only in a
    sandbox: it can read those paths and search the web but cannot change
    files or run commands. For web research with cited sources use
    gemini_research; to let Gemini edit a folder use gemini_code.

    Args:
        prompt: The question or task.
        model: Model id from gemini_models (e.g. "gemini-3.8-flash-medium");
            default is agy's (or GEMINI_PRO_AGY_MODEL).
        paths: Local files or folders Gemini may read.
        conversation_id: Continue an earlier gemini_ask/gemini_research chat.
        effort: Reasoning effort: low, medium, high, xhigh or max.

    Returns:
        Gemini's answer and a conversation_id for follow-ups.
    
NameRequiredDescriptionDefault
modelNo
pathsNo
effortNo
promptYes
conversation_idNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint=false and openWorldHint, but the description adds real behavioral context beyond them: Gemini runs in a sandbox, can read only the supplied paths and search the web, and cannot change files or run commands. It also discloses the cost/quota model (no API cost, consumes the plan's limits), which matters for how freely an agent should call it. It does not discuss latency or nondeterminism, so 4 rather than 5.

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 core routing information is front-loaded in the first two paragraphs, and the Args/Returns block is cleanly structured. The Args section repeats parameter names already visible in the schema, but in each case it attaches semantics rather than restating types, so almost every line earns its place.

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

Completeness5/5

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

For a five-parameter delegation tool with no schema descriptions, the definition covers purpose, use cases, alternatives, sandbox constraints, quota implications, every parameter, and the return contract (answer plus a conversation_id for follow-ups). Nothing an agent needs to invoke it correctly is missing, and the output schema handles return structure.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does: prompt (the question or task), model (id from gemini_models with a concrete example and the default resolution rule), paths (local files or folders Gemini may read), conversation_id (continue an earlier chat), and effort (enumerated low/medium/high/xhigh/max). Every parameter gains meaning the bare schema titles do not provide.

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 ('Ask Gemini a question or give it a reading task') and immediately names the execution path (Antigravity CLI on the user's Google AI Pro plan). It explicitly distinguishes itself from gemini_research (cited web sources) and gemini_code (editing a folder), so an agent can route without opening sibling schemas.

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

Usage Guidelines5/5

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

It names concrete use cases ('a second opinion on code or a design, reviewing local files or folders passed in paths, and long reasoning') and gives explicit exclusions with named alternatives: use gemini_research for cited web research, gemini_code to let Gemini edit a folder. It also explains that conversation_id continues an earlier gemini_ask/gemini_research chat, which is when-to-use guidance for that parameter.

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

gemini_codeA
Destructive

Delegate a coding task to Gemini, which reads and EDITS files in one local folder through the Antigravity agent on the user's Google AI Pro plan (no API cost). This changes files: tell the user, and review the result afterwards, e.g. with git diff. Terminal commands run in a sandbox and only the given folder is writable.

    Good for a well-defined change: fix a bug, add tests, refactor a module.
    For read-only questions use gemini_ask; for a task on a GitHub repo that
    should end in a pull request use jules_start.

    Args:
        task: What to change and how to know it is done, e.g. "Add unit tests
            for parse_date in utils/dates.py; all tests must pass".
        folder: Absolute path of the project folder Gemini may edit.
        model: Model id from gemini_models; omit for agy's default.
        agent: Name of an Antigravity agent from gemini_agents to run the task.
        effort: Reasoning effort: "low", "medium", "high", "xhigh" or "max".
        conversation_id: Continue an earlier gemini_code or gemini_ask chat, e.g.
            to ask for fixes to the previous change.

    Returns:
        Gemini's summary of what it changed, and a conversation_id for follow-up
        requests; or an error if the folder does not exist.
    
NameRequiredDescriptionDefault
taskYes
agentNo
modelNo
effortNo
folderYes
conversation_idNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already flag destructive/openWorld/non-idempotent, and the description adds concrete operator guidance beyond them: tell the user before running, review with `git diff` afterwards, terminal commands are sandboxed, only the given folder is writable, no API cost, and a failure mode (error if the folder does not exist). This is unusually rich behavioral context for a 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.

Conciseness4/5

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

Front-loaded with the most important fact (this changes files) followed by safety guidance, then fit, then parameters. Dense and mostly waste-free, though the Returns block partly restates what the output schema already carries.

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

Completeness5/5

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

Covers the mutation risk, sandbox constraints, prerequisites for optional parameters, sibling routing, and error behavior — everything needed to call a destructive six-parameter tool correctly. An output schema exists, so the brief return summary is sufficient rather than a gap.

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

Parameters5/5

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

Schema coverage is 0%, so the description must carry the full load and does: task is defined as change-plus-done-criteria with an example, folder as an absolute path that Gemini may edit, model and agent are tied to gemini_models/gemini_agents with omission semantics, effort enumerates its five values, and conversation_id explains continuation across both gemini_code and gemini_ask.

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 ('Delegate a coding task to Gemini') plus the exact scope: reads and edits files in one local folder via the Antigravity agent. It explicitly names the siblings it is not (gemini_ask for read-only, jules_start for GitHub PR tasks), so an agent can disambiguate without opening any schema.

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

Usage Guidelines5/5

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

Gives positive guidance ('Good for a well-defined change: fix a bug, add tests, refactor a module') and explicit exclusions routed to named alternatives. The follow-up path via conversation_id is also framed with a concrete use case ('to ask for fixes to the previous change').

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

gemini_modelsA
Read-only

List the models the user's Google account can use through the Antigravity CLI, e.g. Gemini 4 Argon and Gemini 3.8 Flash at several thinking levels. Read-only, free and quick. Call it when the user asks for a specific or stronger model; otherwise the gemini_* tools use agy's default.

    Returns:
        One "id — name" line per model, e.g. "gemini-4-argon-high — Gemini 4
        Argon (High)". Pass the id as `model` to gemini_ask, gemini_research or
        gemini_code.
    
NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered; the description still adds cost and latency characteristics ("free and quick") plus the crucial chaining instruction that the returned id feeds the `model` parameter of gemini_ask, gemini_research and gemini_code. It stops short of stating pagination, quota, or what happens on an empty model list.

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?

Front-loaded with purpose, then usage rule, then return shape; two tight sentences plus a Returns block, with zero filler. The Returns block slightly duplicates information an output schema may already carry, but it earns its place by showing the id-to-`model` handoff.

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

Completeness5/5

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

For a zero-argument, read-only discovery tool with an output schema, this covers purpose, cost/latency, trigger conditions, default fallback, and how the result plugs into sibling tools. Nothing an agent needs to call it correctly and act on the result is missing.

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

Parameters4/5

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

There are zero input parameters, so the baseline is 4 and nothing about inputs needs explaining. The description instead documents output semantics (one "id — name" line per model) and how that id is consumed downstream, which is useful but is output guidance rather than input semantics.

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 ("List the models the user's Google account can use through the Antigravity CLI") with concrete scope, so an agent can distinguish it from gemini_ask, gemini_research, gemini_code and the jules_* siblings without opening a schema.

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

Usage Guidelines5/5

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

Gives an explicit trigger ("Call it when the user asks for a specific or stronger model") and an explicit default path ("otherwise the gemini_* tools use agy's default"), which is exactly the when/when-not routing an agent needs.

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

gemini_researchA
Read-only

Research a question on the live web with Gemini and Google Search, and get an answer that cites its sources. Use it for current facts, releases, prices, docs or comparisons that may be newer than your training data.

    Runs through the Antigravity CLI on the user's Google AI Pro plan: no API
    cost, uses the plan's limits. Read-only. Gemini prefers official sources,
    cross-checks key facts and says when sources disagree. Usually takes about
    a minute. For questions about local files use gemini_ask instead.

    Args:
        question: What to find out, with context that narrows it, e.g.
            "What changed in Flutter 3.47 for Android builds?".
        model: Model id from gemini_models, e.g. "gemini-4-argon-high";
            omit for agy's default (or GEMINI_PRO_AGY_MODEL).
        effort: Reasoning effort: "low", "medium", "high", "xhigh" or "max".

    Returns:
        The answer followed by a "Sources" list of URLs, and a conversation_id;
        pass it to gemini_ask to ask follow-up questions in the same chat.
    
NameRequiredDescriptionDefault
modelNo
effortNo
questionYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

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

Goes well beyond the readOnly/openWorld annotations: it discloses the execution path (Antigravity CLI), the billing model (no API cost, consumes the user's Google AI Pro limits), latency (~a minute), and the answer's sourcing behavior (prefers official sources, cross-checks, flags disagreement). The conversation_id handoff to gemini_ask is an extra behavioral fact an agent could not infer.

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?

Front-loads purpose, then cost/latency/safety, then the sibling pointer, so the most decision-relevant content comes first. The Args/Returns block is standard and tight, though the 'Returns' prose partly restates what the existing output schema already provides.

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

Completeness5/5

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

For a three-parameter open-world research tool with an output schema and full annotations, nothing material is missing: cost, runtime, trustworthiness of sources, follow-up chaining, and the alternative tool are all covered.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates: it explains that 'question' should include narrowing context and gives a concrete example, that 'model' expects an id from gemini_models with a documented default fallback, and what 'effort' controls.

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 concrete verb and resource: 'Research a question on the live web with Gemini and Google Search, and get an answer that cites its sources.' It also distinguishes itself from siblings by naming gemini_ask for local files and gemini_models as the source of model ids.

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

Usage Guidelines5/5

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

Gives explicit when-to-use conditions ('current facts, releases, prices, docs or comparisons that may be newer than your training data') and an explicit exclusion routing local-file questions to gemini_ask. The model parameter even points at gemini_models for valid ids.

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

google_pro_benefitsA

List everything a Google AI Pro plan includes and which tool of this server reaches each part, or why a part cannot be reached (mobile-only, US-only, purchases). Read-only, free and offline. Call it first when the user asks what their plan can do or which tool to use.

    The browser-based tools it names (Flow, Gemini app, Notebooks, AI Mode)
    appear only when the server runs with GEMINI_PRO_ENABLE_BROWSER=1.

    Returns:
        One entry per benefit: what it is, where it lives, and how to use it here.
    
NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full burden and does most of it: it declares 'Read-only, free and offline' and discloses a real environmental dependency, that Flow/Gemini app/Notebooks/AI Mode entries appear only under GEMINI_PRO_ENABLE_BROWSER=1. It does not say whether the benefit list is static or version-dependent, which is the one behavioral detail left implicit.

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 core purpose and the 'call it first' rule are front-loaded in the first two lines, with the environment caveat and return shape following in priority order. The 'Returns:' block mildly repeats the earlier 'which tool reaches each part' phrasing, but the restatement is short and does clarify the per-benefit entry shape.

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

Completeness5/5

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

For a zero-parameter discovery tool with an output schema already defined, the description supplies everything else an agent needs: what it enumerates, when to invoke it, its safety/cost profile, and the environment flag that changes its contents. Nothing material is missing.

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

Parameters4/5

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

There are zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. It correctly signals a no-argument call by describing the tool purely in terms of what it enumerates.

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 opens with a specific verb and resource ('List everything a Google AI Pro plan includes') and immediately clarifies the added value: mapping each benefit to the server tool that reaches it, or the reason it is unreachable. That framing distinguishes it from every sibling, which are action tools (gemini_ask, video_generate, jules_start) rather than a capability-discovery index.

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

Usage Guidelines5/5

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

It gives an explicit routing rule: 'Call it first when the user asks what their plan can do or which tool to use.' That is a concrete trigger condition plus an ordering instruction, which is exactly the when-to-use guidance an agent needs for a discovery tool.

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

image_generateA

Create a new image from a prompt, or edit local images, with Nano Banana through the Gemini API, and save the result in GEMINI_PRO_OUTPUT_DIR. Pass previous_id to refine an earlier result step by step ("make the sky darker") without starting over.

COSTS MONEY: about $0.034 (1K), $0.05 (2K) or $0.11 (4K) per image with Nano Banana 2.1; Nano Banana Pro ("gemini-3-pro-image") is $0.13-0.24. No free tier. Confirm with the user before calling.

Args: prompt: What to draw, or how to change the input images, e.g. "Turn this sketch into a clean flat app icon on a white background". model: "gemini-nano-banana-2.1" (default), "gemini-3.1-flash-lite-image" (cheapest, 1K only) or "gemini-3-pro-image" (best, for hard tasks). aspect_ratio: "1:1" (default), "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9" or "21:9". image_size: "1K" (default), "2K" or "4K". input_images: Local image paths to edit or to use as references. previous_id: The id of an earlier image_generate result to refine. file_name: Optional file name; default is the date plus prompt words.

Returns: The saved image path and an id to pass as previous_id for further edits.

NameRequiredDescriptionDefault
modelNogemini-nano-banana-2.1
promptYes
file_nameNo
image_sizeNo1K
previous_idNo
aspect_ratioNo1:1
input_imagesNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare a non-readonly, open-world, non-idempotent write, and the description goes well beyond them: exact per-image pricing by size and model, an explicit 'No free tier' warning, the output directory, and the requirement to confirm with the user first. It also discloses that results are persisted and addressable by id, which the annotations cannot express.

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?

Front-loaded with purpose, then the cost warning, then per-argument notes - a sensible order that puts the highest-stakes information early. It is long, and the 'Returns' line partially duplicates an output schema that already exists, but nearly every sentence earns its place.

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

Completeness5/5

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

For a 7-parameter, costly, open-world generation tool, the description covers cost, model/size tradeoffs, edit-vs-create flow, output location, and the id needed for iterative refinement. With an output schema present, the brief 'Returns' note is sufficient rather than redundant padding.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does so: every one of the 7 parameters is explained with meaning, allowed values, and defaults, plus tradeoff guidance tying model to cost and image_size. It adds real decision information (e.g. flash-lite is 1K only) that the bare enum in the schema does not convey.

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 first sentence states a specific verb and resource ('Create a new image from a prompt, or edit local images') and names the backend ('Nano Banana through the Gemini API'), which cleanly separates it from the video_* and gemini_ask siblings. It also distinguishes the two modes (fresh generation vs refinement via previous_id) inside the same opening.

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

Usage Guidelines4/5

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

Explicit guidance is given for previous_id ('refine an earlier result step by step ... without starting over'), for model choice ('cheapest, 1K only' vs 'best, for hard tasks'), and a hard gate ('Confirm with the user before calling'). The only gap is that it never names sibling alternatives such as video_generate for non-image media.

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

jules_approve_planA

Approve the plan Jules proposed, so it starts writing code. Only for a session started with jules_start(require_plan_approval=True) whose state is awaiting plan approval; read the plan with jules_status first and show it to the user. To change the plan instead, send feedback with jules_message.

    Args:
        session: Session id from jules_start or jules_sessions.

    Returns:
        A confirmation that Jules is working, or an error such as the session
        not waiting for approval. Follow progress with jules_status.
    
NameRequiredDescriptionDefault
sessionYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare this is a non-destructive, open-world mutation, and the description adds real context beyond them: the required session state, the fact that approval triggers code writing, and the error case when the session is not awaiting approval. It stops short of saying whether approval can be revoked, but otherwise the behavioral surface is well disclosed.

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 main instruction, precondition, and alternative are front-loaded in the first sentence, with Args/Returns sections following in a scannable format. The Returns block restates behavior already implied, but nothing is padded or repetitive.

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

Completeness5/5

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

For a single-parameter state-transition tool, the definition covers preconditions, the alternative action, error conditions, and the follow-up tool for tracking progress, while return shape is covered by the existing output schema. Nothing needed to call it correctly is missing.

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

Parameters4/5

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

Schema coverage is 0% and the single 'session' parameter has no schema description, so the description must compensate. It does by identifying the value as a session id and naming the two sibling tools (jules_start, jules_sessions) that produce it, which is the key information an agent needs to populate the field correctly.

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 ('approve the plan Jules proposed') plus the concrete consequence ('starts writing code'). It is clearly separable from the sibling jules_message, which the description explicitly names as the tool for changing the plan.

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

Usage Guidelines5/5

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

Gives an explicit precondition (session started with jules_start(require_plan_approval=True) and state awaiting plan approval), an ordering instruction (read the plan with jules_status first and show it to the user), and the alternative path (jules_message for feedback). Both when-to-use and when-not-to-use are covered.

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

jules_messageA

Send a message to Jules inside an existing session: answer a question it asked, give feedback on its plan or code, or ask for a change. Jules replies asynchronously, so read the answer later with jules_status. To give Jules a new task, use jules_start instead.

    Args:
        session: Session id from jules_start or jules_sessions.
        message: What to tell Jules, in plain language.

    Returns:
        A confirmation that the message was sent, or an error.
    
NameRequiredDescriptionDefault
messageYes
sessionYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true), the description discloses the key behavioral trait that Jules replies asynchronously and the answer must be retrieved later with jules_status. That is real context the annotations cannot convey. It stops short of detail such as whether the message is queued immediately or whether multiple messages are allowed, so it is strong but not exhaustive.

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

Conciseness4/5

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

The prose is front-loaded with purpose, alternatives, and the async caveat in three tight sentences. The trailing Args/Returns block is slightly redundant with the prose and with the output schema, but it is short and well-structured rather than wasteful.

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

Completeness5/5

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

For a two-parameter messaging tool, nothing an agent needs to call it correctly is missing: purpose, prerequisites for the session id, async follow-up, and sibling routing are all covered. A return value note is present even though an output schema already exists, which is harmless redundancy.

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

Parameters4/5

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

Schema description coverage is 0% and both parameters are required strings, so the description carries the burden. It compensates well: 'session' is defined as the session id obtained from jules_start or jules_sessions, and 'message' is characterized as plain-language content. The only gap is format expectations for the session id (e.g., raw id vs. resource name).

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 opens with a specific verb and resource: 'Send a message to Jules inside an existing session,' and immediately qualifies the scope as a follow-up within an existing session rather than a new engagement. It also names the sibling it is not (jules_start for new tasks), so an agent can route correctly without inspecting other schemas.

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

Usage Guidelines5/5

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

It enumerates concrete use cases (answer a question it asked, give feedback on plan or code, request a change) and explicitly routes two alternatives: jules_start for a new task and jules_status for reading the reply. Both the when-to-use and when-not-to-use conditions are stated.

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

jules_sessionsA
Read-only

List the user's most recent Jules sessions, newest first, to find a session id or see which tasks are still running. Read-only and free.

    Pass an id from the result to jules_status for details, to
    jules_approve_plan or to jules_message.

    Args:
        limit: How many sessions to list (default 10).

    Returns:
        One line per session: id, state (as Jules reports it, for example in
        progress, awaiting plan approval or completed) and title, or
        "No sessions yet."
    
NameRequiredDescriptionDefault
limitNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so 'Read-only and free' partly restates structured data, but 'free' adds a cost signal the annotations don't carry. The description also discloses the return shape and enumerates the state values Jules may report, which is real behavioral context.

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

Conciseness4/5

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

Front-loaded with the purpose in the first sentence, then routing, then structured Args/Returns blocks. Slightly padded by the redundant 'Read-only and free' clause, but no sentence is otherwise wasted.

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

Completeness5/5

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

For a one-parameter read tool, the description covers purpose, when to use, sibling routing, the parameter, and expected output including the empty case. Nothing an agent needs in order to call it correctly is missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must supply meaning — it explains that 'limit' controls how many sessions are listed and that it defaults to 10. That fills the documentation gap for the only parameter, though it omits bounds or maximum allowed values.

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 ('List the user's most recent Jules sessions'), plus ordering ('newest first') and the two concrete reasons to call it. It is clearly distinguishable from siblings like jules_status, which returns details for a single id.

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

Usage Guidelines5/5

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

Gives explicit when-to-use conditions (find a session id, see which tasks are running) and routes the agent onward: pass an id to jules_status, jules_approve_plan, or jules_message. The agent can pick the correct tool from this alone.

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

jules_sourcesA
Read-only

List the GitHub repositories the user has connected to Jules, Google's cloud coding agent. Read-only and free. Call it before jules_start to get the exact repo name; Jules can only work on repositories listed here.

    Returns:
        One source name per line, e.g. "github/owner/repo", to pass as `repo`
        to jules_start; or a note that no repository is connected yet, with the
        link where the user connects GitHub.
    
NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds behavior the annotations don't cover: it states that the tool is free, that the result feeds jules_start's `repo` argument, and it documents the empty-state case (no repo connected, with the link where the user connects GitHub).

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?

It is front-loaded with the purpose and prerequisite, then a clearly delineated 'Returns:' block. Some of the return text overlaps with the existing output schema, and 'Read-only and free' partially restates readOnlyHint, so it is not entirely free of redundancy.

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

Completeness5/5

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

For a zero-parameter, read-only tool, the description covers purpose, prerequisite ordering, the value to hand to the next tool, and the failure/empty state. Nothing an agent needs in order to call it and use its result is missing; the return-format detail is a bonus beyond the output schema.

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

Parameters4/5

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

There are no input parameters, so the baseline is 4. The description goes a step further by explaining how the returned value maps onto another tool's parameter ('to pass as `repo` to jules_start'), which is meaning the empty input schema cannot convey.

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 opens with a specific verb and resource: 'List the GitHub repositories the user has connected to Jules.' It also identifies Jules as Google's cloud coding agent, which distinguishes this tool from the gemini_* siblings and from jules_start/jules_status without opening any schema.

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

Usage Guidelines5/5

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

It states the exact call ordering ('Call it before jules_start') and the condition that enforces it ('Jules can only work on repositories listed here'), plus the reason for calling ('to get the exact repo name'). This is explicit when-to-use and a hard prerequisite, with the consumer tool named.

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

jules_startA

Start a Jules session: Google's coding agent works on a task in one of the user's GitHub repositories, in the cloud and asynchronously, within the Google AI Pro plan's Jules limits (no extra cost). It can push a branch and open a pull request, so confirm the task with the user first.

    Then poll with jules_status, answer questions with jules_message, and
    approve the plan with jules_approve_plan if you asked for approval. For a
    change in a local folder use gemini_code instead.

    Args:
        prompt: The task with acceptance criteria, e.g. "Add input validation
            to the /signup endpoint and tests for it".
        repo: Repository from jules_sources, e.g. "github/owner/repo"; omit for
            a session without a repository.
        branch: Branch Jules starts from (default "main").
        title: Optional session title; Jules makes one up otherwise.
        create_pr: True lets Jules open a pull request automatically when done.
        require_plan_approval: True makes Jules wait for jules_approve_plan
            before it changes any code.

    Returns:
        The session id and its web link (https://jules.google.com/session/<id>),
        or an error such as an unknown repository.
    
NameRequiredDescriptionDefault
repoNo
titleNo
branchNomain
promptYes
create_prNo
require_plan_approvalNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only declare readOnly=false, openWorld=true, destructive=false. The description adds substantive context beyond that: cloud/asynchronous execution, the fact that Jules can push a branch and open a pull request (a real side effect worth warning about), that it operates under the Google AI Pro plan's Jules limits at no extra cost, and that require_plan_approval gates code changes. It also notes error behavior for unknown repositories.

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?

Front-loaded with the purpose and the safety warning, then workflow, then alternatives, then parameters — a sensible ordering. It is somewhat longer than strictly necessary, and the Returns block partially restates what the output schema already provides, though the session-link format is a small extra. Minor redundancy, not bloat.

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

Completeness5/5

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

For a six-parameter, open-world, non-destructive-but-side-effectful tool, nothing an agent needs is missing: cost/quota context, side-effect warning, approval gating mechanism, sibling routing, parameter sourcing, and error cases. Since an output schema exists, the extra return-value sentence is harmless surplus rather than a gap.

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

Parameters5/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 the full burden, and it does: every one of the six parameters is explained with meaning, a concrete example ('Add input validation to the /signup endpoint...'), the source for valid values ('Repository from jules_sources, e.g. github/owner/repo'), stated defaults, and the null/omit case for repo.

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 ('Start a Jules session') and immediately explains what the underlying agent does: Google's coding agent working on a task in one of the user's GitHub repos, in the cloud asynchronously. It also differentiates from the sibling gemini_code for local-folder changes, so the agent can route correctly without opening either schema.

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

Usage Guidelines5/5

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

Explicitly names the alternative ('For a change in a local folder use gemini_code instead'), prescribes the follow-up workflow (poll with jules_status, answer questions with jules_message, approve with jules_approve_plan), and flags the prerequisite of confirming the task with the user before starting. When-to-use, when-not-to-use, and sequencing are all covered.

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

jules_statusA
Read-only

Check on a Jules session started with jules_start: its state, its most recent activities (plan, progress messages, questions, completion) and the pull request it opened, if any. Read-only and free; call it again to poll a session that is still working.

    Use jules_sessions to find a session id, jules_approve_plan when the state
    says it awaits plan approval, and jules_message to answer a question.

    Args:
        session: Session id from jules_start or jules_sessions, or its full
            "sessions/<id>" name or web link.
        activities: How many of the latest activities to show (default 15).

    Returns:
        The session title and state, any pull request links, and one line per
        recent activity with its time, kind and text.
    
NameRequiredDescriptionDefault
sessionYes
activitiesNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, and the description reinforces this with 'Read-only and free' while adding genuinely new context: the polling behavior for in-progress sessions. It stops short of stating rate limits or what happens for a nonexistent/expired session id, so it adds value but not full behavioral coverage.

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 opening sentence is front-loaded with purpose and scope, and the routing sentence follows logically. The Args/Returns docstring formatting is slightly verbose, and the Returns block partially restates what the output schema already provides, costing a bit of economy.

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

Completeness5/5

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

For a two-parameter read tool with annotations and an output schema, nothing an agent needs to invoke it correctly is missing: accepted id formats, default activity count, sibling routing, and polling guidance are all present.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does so: 'session' accepts a bare id from jules_start or jules_sessions, a full 'sessions/<id>' name, or a web link; 'activities' is the count of latest activities shown with a stated default of 15. This meaning is unavailable anywhere in the schema.

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

Purpose5/5

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

States a specific verb and resource ('Check on a Jules session started with jules_start') and enumerates what is retrieved: state, recent activities (plan, progress, questions, completion), and any pull request. This is clearly distinguishable from sibling tools like jules_sessions and jules_start.

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

Usage Guidelines5/5

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

Explicitly routes the agent: use jules_sessions to find an id, jules_approve_plan when the state awaits plan approval, and jules_message to answer a question. It also states the polling pattern ('call it again to poll a session that is still working'), which is the key alternative to a one-shot check.

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

video_checkA
Idempotent

Fetch a video that video_generate or video_edit started but had not finished rendering when they returned, and save it as an .mp4. Free: the video was paid for when it was started, and checking costs nothing. Call it again with the same id if the video is still rendering.

    Args:
        id: The id returned by video_generate or video_edit.
        wait_seconds: How long to keep waiting in this call (default 120)
            before returning the current status.

    Returns:
        The saved .mp4 path and an id for video_edit once the video is ready;
        otherwise its status (still rendering, or failed with the reason).
    
NameRequiredDescriptionDefault
idYes
wait_secondsNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

The description adds behavior beyond the annotations: it discloses the cost model ('Free: the video was paid for when it was started, and checking costs nothing') and the polling semantics that justify idempotentHint=true. It also describes both success and failure outcomes (saved path vs. status/failure reason). It does not discuss filesystem write location details or timeout interaction with wait_seconds, which keeps it from a 5.

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?

Front-loaded with the core action, followed by cost and retry notes, then parameter and return details. The Args/Returns blocks are slightly redundant with the schema and the existing output schema, but they are short and each sentence carries actionable information.

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

Completeness4/5

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

For a two-parameter polling tool with an output schema already defined, the description covers the essential context: what it retrieves, why it's free to re-poll, how to poll, and what the response contains. Remaining gaps (units/ranges for wait_seconds, where the .mp4 is saved) are minor given the output schema.

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

Parameters4/5

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

Schema coverage is 0%, so the description carries the full burden and mostly succeeds: it explains that 'id' is 'The id returned by video_generate or video_edit' and that 'wait_seconds' is how long 'to keep waiting in this call (default 120) before returning the current status'. Units, valid ranges, and what happens at wait_seconds=0 are not stated, leaving a small 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 concrete verb+resource pair ('Fetch a video ... and save it as an .mp4') and ties it to the specific producer tools (video_generate / video_edit) whose outputs it resolves. An agent can distinguish this from video_stitch, video_edit, and jules_status without opening a schema.

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

Usage Guidelines4/5

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

Gives a clear trigger ('a video that video_generate or video_edit started but had not finished rendering when they returned') and explicit retry guidance ('Call it again with the same id if the video is still rendering'). It stops short of naming explicit exclusions or routing to a specific alternative sibling for the not-yet-ready case, so it is strong but not exhaustive.

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

video_editA

Change or extend a video; the result is saved as a new file.

COSTS MONEY: billed like video_generate. Confirm with the user before calling. Give exactly one of previous_id (from video_generate/video_edit) or video_path (a local video of 10 seconds or less).

Args: instruction: e.g. "Make it night", or to extend: "Continue the scene: the car drives off" (adds 3-10 s, up to 40 s in total). previous_id: id returned by an earlier video_generate or video_edit. video_path: Local video (max 10 s) to edit instead. aspect_ratio: "16:9" or "9:16". resolution: "720p" (default), "360p", "1080p" or "4k". file_name: Optional .mp4 file name. wait_seconds: How long to wait before returning an id for video_check.

Returns: The saved .mp4 path and a new id (or an id for video_check).

NameRequiredDescriptionDefault
file_nameNo
resolutionNo720p
video_pathNo
instructionYes
previous_idNo
aspect_ratioNo16:9
wait_secondsNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A5/5.0
Behavior5/5

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

Annotations already flag this as a non-read-only, non-idempotent, open-world mutation, and the description adds the material facts they cannot express: the operation costs money and is billed like video_generate, output is written to a new file rather than mutating the input, and there is a wait/poll split with video_check. The input-video length ceiling (10 s) is another behavioral constraint disclosed up front.

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?

Front-loads the cost warning and the mutual-exclusivity rule before the arg list, so the highest-risk information is read first. The Args/Returns block is compact, every line adds a fact not present in the schema, and there is no filler.

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

Completeness5/5

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

For a seven-parameter, costly, async-capable mutation this covers the decision points an agent needs: which input to supply, size limits, cost gating, and how to retrieve results later. The return shape is summarized briefly and an output schema exists, so nothing further is required there.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does: each of the seven parameters gets meaning plus examples (instruction like "Make it night", extension phrasing), the enum values for aspect_ratio are restated, resolution defaults are named, and the mutual exclusivity between previous_id and video_path is stated. This is meaningfully more than the bare property names in the schema.

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

Purpose5/5

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

Opens with a specific verb and resource: "Change or extend a video; the result is saved as a new file." That single clause separates it from video_generate (creation) and video_stitch (joining), and the extend case is spelled out with concrete limits (adds 3-10 s, up to 40 s total).

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

Usage Guidelines5/5

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

Gives explicit when-to-use routing: "Give exactly one of previous_id ... or video_path", names where previous_id comes from, and points to video_check for polling when wait_seconds expires. It also states a hard precondition — confirm with the user because it is billed — which is exactly the kind of gating an agent needs.

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

video_generateA

Generate a short video with native sound from a text prompt, with Gemini Omni Flash through the Gemini API, and save it as an .mp4 in GEMINI_PRO_OUTPUT_DIR. One call makes one clip of about 8 seconds; for longer videos chain video_edit, or use flow_make_video on the user's Flow credits when browser tools are enabled.

COSTS MONEY: billed to the API key's Google Cloud project (about $0.10 per second of 720p video, no free tier). Confirm with the user before calling.

Args: prompt: Subject, action, setting, camera and sound, e.g. "A red tram crosses Baku at sunset, slow dolly shot, street noise". English works best; timecodes like "[0-3s] ... [3-6s] ..." sequence the shot. aspect_ratio: "16:9" (landscape, default) or "9:16" (vertical). resolution: "720p" (default), "360p", or upscaled "1080p" or "4k". first_frame: Local image path the video starts from. last_frame: Local image path the video ends on. reference_images: Up to 3 local images of characters or objects to keep. file_name: Optional .mp4 file name; default is the date plus prompt words. wait_seconds: How long to wait for the render (default 300) before returning an id to fetch later with video_check.

Returns: The saved .mp4 path and an id to change or extend it with video_edit; or, if rendering takes longer than wait_seconds, an id for video_check.

NameRequiredDescriptionDefault
promptYes
file_nameNo
last_frameNo
resolutionNo720p
first_frameNo
aspect_ratioNo16:9
wait_secondsNo
reference_imagesNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare a non-readonly, non-idempotent, open-world, non-destructive write, and the description goes well beyond them: real billing (~$0.10/sec of 720p, no free tier), required user confirmation, the 8-second clip limit, the wait_seconds timeout path, and where the file lands. The only missing piece is what happens on failure or whether a timed-out render is still billed.

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?

Front-loaded with the verb, cost warning, and chaining rule before the Args block; the Args/Returns structure is easy to scan and each parameter line adds new information. Minor drag from the model/provider name ('Gemini Omni Flash through the Gemini API'), which doesn't help an agent decide or call.

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

Completeness5/5

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

For a costly, slow, open-world generation tool, the description covers cost, latency/timeout, output location, follow-up tools, and every parameter. An output schema exists, so the brief Returns summary is sufficient rather than redundant.

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

Parameters5/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 all eight parameters — and it does, with meaning the schema cannot convey: prompt structure with a worked example and timecode sequencing syntax, first_frame/last_frame as start/end anchors, reference_images capped at 3 for character consistency, and the default file-name rule.

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 ('generate a short video with native sound from a text prompt') plus the concrete output (an .mp4 in GEMINI_PRO_OUTPUT_DIR). It explicitly separates itself from siblings by naming video_edit for extension and flow_make_video as the credit-based alternative.

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

Usage Guidelines5/5

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

Gives explicit when-to-use conditions (one call = ~8s clip; chain video_edit for longer), names a concrete alternative (flow_make_video, gated on browser tools being enabled), and adds a mandatory pre-call step: confirm cost with the user. Exclusions and routing are both present.

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

video_stitchA

Join local video clips, in the given order, into one .mp4 with ffmpeg. Runs on this computer and costs nothing. Clips with the same format (e.g. all from video_generate or Flow) are joined losslessly; mixed formats are re-encoded to H.264/AAC. Use it to combine clips made by video_generate, video_edit or flow_collect; flow_make_video already joins its own clips.

    Args:
        clips: Paths of the clips, first to last (at least one).
        file_name: Name for the joined file, saved in GEMINI_PRO_OUTPUT_DIR; a
            number is added if it already exists.

    Returns:
        "Saved: <path>" with the joined video, or an error such as a missing clip.
    
NameRequiredDescriptionDefault
clipsYes
file_nameNostitched

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

Goes well beyond the annotations: discloses local execution with no cost, that same-format clips are joined losslessly while mixed formats are re-encoded to H.264/AAC, that output lands in GEMINI_PRO_OUTPUT_DIR, and that a numeric suffix is appended on filename collision. It does not mention failure/partial-output behavior when a clip mid-list is corrupt or unsupported, which is the main residual gap for a write-producing 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?

Front-loaded with the core action in the first sentence, followed by behavior, then routing guidance, then compact Args/Returns sections. Given the 0% schema coverage, the parameter lines are load-bearing rather than redundant, and no sentence is filler.

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

Completeness5/5

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

Despite an output schema existing, the description still sketches the return string ('Saved: <path>' or an error), and it covers cost, encoding strategy, output location, and sibling boundaries. For a two-parameter local tool, an agent has everything needed to invoke it correctly.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry parameter meaning, and it largely does: clips are paths in first-to-last order with a minimum of one, and file_name is saved into GEMINI_PRO_OUTPUT_DIR with collision-avoidance renaming. It stops short of specifying accepted input formats or whether paths must be absolute, which would fully close the 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 ('Join local video clips ... into one .mp4 with ffmpeg') plus ordering semantics, so the operation is unmistakable. It also distinguishes itself from flow_make_video, which already joins its own clips, and names the sibling producers whose output it consumes.

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

Usage Guidelines5/5

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

Explicitly names the upstream tools whose clips it should combine (video_generate, video_edit, flow_collect) and gives a clear exclusion ('flow_make_video already joins its own clips'). Both the when-to-use and when-not-to-use conditions are stated rather than implied.

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. 17 tool updatesv0.1.0
    • First observedgemini_agents
    • First observedgemini_ask
    • First observedgemini_code
    • First observedgemini_models
    • First observedgemini_research
    • First observedgoogle_pro_benefits
    • First observedimage_generate
    • First observedjules_approve_plan
    • First observedjules_message
    • First observedjules_sessions
    • First observedjules_sources
    • First observedjules_start
    • First observedjules_status
    • First observedvideo_check
    • First observedvideo_edit
    • First observedvideo_generate
    • First observedvideo_stitch

TDQS

A4.4/5.0

Scored across 17 tools

Disambiguation4/5

The three main Gemini tools are explicitly differentiated (gemini_ask = read-only local reasoning, gemini_research = web with citations, gemini_code = edits a local folder), and the Jules lifecycle tools each map to one step (start/status/message/approve_plan/sessions/sources). The main residual overlap is that gemini_ask is also described as able to search the web, blurring it slightly against gemini_research, and video_generate references browser-only tools (flow_make_video, flow_collect) that are not in this set, which can send an agent looking for tools that aren't there.

Naming Consistency4/5

Names are all snake_case and organized into clear namespaces (gemini_*, jules_*, video_*, image_generate, google_pro_benefits), so grouping is predictable. The only wrinkle is the mixed word order: gemini_ask/gemini_code/jules_start are prefix_action while image_generate/video_stitch are action-noun, plus video_check is not an action verb—minor inconsistency but still readable.

Tool Count4/5

Seventeen tools is on the heavy side but the server spans several genuinely different capabilities (chat/research, local code editing, image gen, video gen/edit/stitch, Jules cloud sessions, plus model/agent discovery), and most tools reflect a real lifecycle step. A few, like google_pro_benefits and the separate video_check, could arguably be folded in, but none feels gratuitous.

Completeness4/5

Async workflows are covered end to end: video_generate/video_edit return ids, video_check fetches them, video_stitch joins clips, and Jules has sessions/sources → start → status → message → approve_plan. Gaps are minor and workaroundable: no tool to list or clean up artifacts already in GEMINI_PRO_OUTPUT_DIR, no image_check (image generation is synchronous, so acceptable), and the advertised Flow/browser tools are absent unless the server is started with GEMINI_PRO_ENABLE_BROWSER=1.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers