Gemini MCP Server
This MCP server provides comprehensive access to Google's Gemini AI models for chat, file processing, image generation, batch operations, and embeddings generation.
Core Chat & Conversation: Engage in multi-turn chat sessions with Gemini models (2.5-pro, 2.5-flash, 2.0-flash-exp) with text messages and optional file attachments. Manage conversation sessions (start, continue, clear) and configure generation parameters (temperature 0-2, max tokens up to 500K).
File Management: Upload single or multiple files (2-40+) with automatic MIME type detection, parallel processing, and retry logic. List, retrieve metadata, delete individual files, or bulk cleanup all files. Files automatically expire after 48 hours with 20GB project storage limit.
Image Generation: Create new images or edit existing ones using the Gemini 2.5 Flash Image model with text prompts, supporting various aspect ratios and batch generation.
Batch Processing (50% Cost Savings): Process large-scale async tasks with ~24-hour turnaround. Complete automated workflows handle ingestion, upload, job creation, polling, and results download. Supports CSV, JSON, TXT, MD, and JSONL formats with intelligent content conversion.
Embeddings Generation: Create 1536-dimensional embeddings using gemini-embedding-001 model with 8 task types (SEMANTIC_SIMILARITY, CLASSIFICATION, CLUSTERING, RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, CODE_RETRIEVAL_QUERY, QUESTION_ANSWERING, FACT_VERIFICATION). Includes AI-powered task type selector for optimal recommendations.
Job Management: Monitor batch job status with optional auto-polling (PENDING → RUNNING → SUCCEEDED/FAILED), cancel running jobs, download and parse results, and delete completed jobs.
System Resources: Access metadata on available Gemini models (gemini://models/available) and active conversation sessions (gemini://conversations/active).
Provides access to Google's Gemini AI models (2.5 Pro, 2.5 Flash, 2.0 Flash, and Embedding-001) with support for file uploads, multi-turn conversations, batch processing at reduced cost, and embedding generation for various tasks like search, classification, and clustering.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Gemini MCP Servergenerate an image of a sunset over mountains with a lake in the foreground"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Gemini MCP Server
An MCP Server that provides access to the Gemini Suite.
✨ Features
Support for 1.5 through 2.5 pro
Nano Banana
Embeddings
File Upload
Batch (NLP and Embeddings)
Related MCP server: Gemini RAG MCP Server
🚀 Quick Start
Option 1: NPX (No Install Required)
claude mcp add gemini -s user --env GEMINI_API_KEY=YOUR_KEY_HERE -- npx -y @mintmcqueen/gemini-mcp@latestOption 2: Global Install
# Install globally
npm install -g @mintmcqueen/gemini-mcp
# Add to Claude Code
claude mcp add gemini -s user --env GEMINI_API_KEY=YOUR_KEY_HERE -- gemini-mcpOption 3: Local Project Install
# Install in your project
npm install @mintmcqueen/gemini-mcp
# Add to Claude Code (adjust path as needed)
claude mcp add gemini -s project --env GEMINI_API_KEY=YOUR_KEY_HERE -- node node_modules/@mintmcqueen/gemini-mcp/build/index.jsAfter any installation method, restart Claude Code and you're ready to use Gemini.
Shell Environment
File:
~/.zshrcor~/.bashrcFormat:
export GEMINI_API_KEY="your-key-here"
Usage
MCP Tools
The server provides the following tools:
chat
Send a message to Gemini with optional file attachments.
Parameters:
message(required): The message to sendmodel(optional): Model to use (gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite)files(optional): Array of files with base64 encoded datatemperature(optional): Controls randomness (0.0-2.0)maxTokens(optional): Maximum response tokensconversationId(optional): Continue an existing conversation
start_conversation
Start a new conversation session.
Parameters:
id(optional): Custom conversation ID
clear_conversation
Clear a conversation session.
Parameters:
id(required): Conversation ID to clear
generate_images
Generate images from text prompts or edit existing images using Gemini 2.5 Flash Image model.
Parameters:
prompt(required): Text description of image to generate or editing instructionsaspectRatio(optional): Image aspect ratio -1:1,2:3,3:2,3:4,4:3,4:5,5:4,9:16,16:9,21:9(default:1:1)numImages(optional): Number of images to generate, 1-4 (default:1). Note: Makes sequential API calls, ~10-15s per image.inputImageUri(optional): File URI from uploaded file for image editing (omit for text-to-image generation)outputDir(optional): Directory to save generated images (default:./generated-images)temperature(optional): Controls randomness (0.0-2.0, default: 1.0)
Returns:
Array of generated images with file paths and base64 data
Token usage (~1,290-1,300 tokens per image)
All images include SynthID watermark
Performance Note: The Gemini API generates one image per request. When numImages > 1, the tool makes multiple sequential API calls to generate the requested number of images. Expect ~10-15 seconds per image.
Text-to-Image Example:
generate_images({
prompt: "A photorealistic coffee cup on a wooden table",
aspectRatio: "16:9",
numImages: 2
})
// Generates 2 images saved to ./generated-images/Image Editing Example:
// First, upload the image to edit
upload_file({ filePath: "./photo.jpg" })
// Returns: { uri: "files/abc123" }
// Then edit it
generate_images({
prompt: "Add a wizard hat to the subject",
inputImageUri: "files/abc123"
})
// Generates edited image saved to ./generated-images/🆕 Batch API Tools (v0.3.0)
Process large-scale tasks asynchronously at 50% cost with ~24 hour turnaround.
Content Generation
Simple (Automated):
// One-call solution: Ingest → Upload → Create → Poll → Download
batch_process({
inputFile: "prompts.csv", // CSV, JSON, TXT, or MD
model: "gemini-2.5-flash"
})
// Returns: Complete results with metadataAdvanced (Manual Control):
// 1. Convert your file to JSONL
batch_ingest_content({ inputFile: "prompts.csv" })
// Returns: { outputFile: "prompts.jsonl", requestCount: 100 }
// 2. Upload JSONL
upload_file({ filePath: "prompts.jsonl" })
// Returns: { uri: "files/abc123" }
// 3. Create batch job
batch_create({
inputFileUri: "files/abc123",
model: "gemini-2.5-flash"
})
// Returns: { batchName: "batches/xyz789" }
// 4. Monitor progress
batch_get_status({
batchName: "batches/xyz789",
autoPoll: true // Wait until complete
})
// Returns: { state: "SUCCEEDED", stats: {...} }
// 5. Download results
batch_download_results({ batchName: "batches/xyz789" })
// Returns: { results: [...], outputFile: "results.json" }Embeddings
Simple (Automated):
// One-call solution with automatic task type prompting
batch_process_embeddings({
inputFile: "documents.txt",
// taskType optional - will prompt if not provided
})
// Returns: 1536-dimensional embeddings arrayAdvanced (Manual Control):
// 1. Select task type (if unsure)
batch_query_task_type({
context: "Building a search engine"
})
// Returns: { selectedTaskType: "RETRIEVAL_DOCUMENT", recommendation: {...} }
// 2. Ingest content for embeddings
batch_ingest_embeddings({ inputFile: "documents.txt" })
// Returns: { outputFile: "documents.embeddings.jsonl" }
// 3-5. Same as content generation workflow
// 6. Results contain 1536-dimensional vectorsTask Types (8 options):
SEMANTIC_SIMILARITY- Compare text similarityCLASSIFICATION- Categorize contentCLUSTERING- Group similar itemsRETRIEVAL_DOCUMENT- Build search indexesRETRIEVAL_QUERY- Search queriesCODE_RETRIEVAL_QUERY- Code searchQUESTION_ANSWERING- Q&A systemsFACT_VERIFICATION- Fact-checking
Job Management
// Cancel running job
batch_cancel({ batchName: "batches/xyz789" })
// Delete completed job
batch_delete({ batchName: "batches/xyz789" })Supported Input Formats:
CSV (converts rows to requests)
JSON (wraps objects as requests)
TXT (splits lines as requests)
MD (markdown sections as requests)
JSONL (ready to use)
MCP Resources
gemini://models/available
Information about available Gemini models and their capabilities.
gemini://conversations/active
List of active conversation sessions with metadata.
🔧 Development
npm run build # Build TypeScript
npm run watch # Watch mode
npm run dev # Build + auto-restart
npm run inspector # Debug with MCP InspectorConnection Failures
If Claude Code fails to connect:
Verify your API key is correct
Check that the command path is correct (for local installs)
Restart Claude Code after configuration changes
🔒 Security
API keys are never logged or echoed
Files created with 600 permissions (user read/write only)
Masked input during key entry
Real API validation before storage
🤝 Contributing
Contributions are welcome! This package is designed to be production-ready with:
Full TypeScript types
Comprehensive error handling
Automatic retry logic
Real API validation
📄 License
MIT - see LICENSE file
🙋 Support
MCP Protocol: https://modelcontextprotocol.io
Gemini API Docs: https://ai.google.dev/docs
Available Tools
21 toolsbatch_cancelA
CANCEL BATCH JOB - Request cancellation of running batch job. WORKFLOW: 1) Sends cancel request to Gemini API, 2) Job transitions to CANCELLED state, 3) Processing stops (may take a few seconds), 4) Partial results may be available. USE CASE: Stop long-running job due to errors, changed requirements, or cost management. NOTE: Cannot cancel SUCCEEDED or FAILED jobs.
| Name | Required | Description | Default |
|---|---|---|---|
| batchName | Yes | Batch job name/ID to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the workflow (sends cancel request, transitions to CANCELLED state, processing stops with possible delay, partial results may be available) and constraints (cannot cancel SUCCEEDED or FAILED jobs). It doesn't mention authentication needs or rate limits, but covers the essential mutation behavior and outcomes well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with clear sections (workflow, use case, note) and uses bullet-like formatting. Every sentence adds value, though it could be slightly more concise by combining some points. It's appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description provides good contextual completeness. It explains the action, workflow, use cases, and constraints. While it doesn't detail the return format (e.g., what confirmation looks like), it covers the essential behavior and limitations adequately given the tool's single parameter and straightforward purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'batchName' documented as 'Batch job name/ID to cancel'. The description doesn't add any additional meaning about this parameter beyond what the schema provides, so it meets the baseline of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('CANCEL BATCH JOB - Request cancellation of running batch job') and distinguishes it from siblings like batch_delete (which likely removes completed jobs) or batch_get_status (which only checks status). The verb 'cancel' is precise and the resource 'batch job' is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('Stop long-running job due to errors, changed requirements, or cost management') and when not to use it ('Cannot cancel SUCCEEDED or FAILED jobs'). This provides clear context and exclusions, helping the agent choose this over alternatives like batch_delete for active jobs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_createA
CREATE BATCH JOB - Create async content generation batch job with Gemini. COST: 50% cheaper than standard API. TURNAROUND: ~24 hours target. WORKFLOW: 1) Prepare JSONL file with requests (or use batch_ingest_content first), 2) Upload file with upload_file, 3) Call batch_create with file URI, 4) Use batch_get_status to monitor progress, 5) Use batch_download_results when complete. SUPPORTS: Inline requests (<20MB) or file-based (JSONL for large batches). Returns batch job ID and initial status.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Gemini model for content generation | gemini-2.5-flash |
| requests | No | Inline batch requests (for small batches <20MB). Each request should have 'key' and 'request' fields. | |
| inputFileUri | No | URI of uploaded JSONL file (from upload_file tool). Use for large batches or when requests exceed 20MB. | |
| displayName | No | Optional display name for the batch job | |
| outputLocation | No | Output directory for results (defaults to current working directory) | |
| config | No | Optional generation config (temperature, maxOutputTokens, etc.) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and delivers substantial behavioral context: it discloses cost implications (50% cheaper), turnaround time (~24 hours), workflow dependencies, file size constraints, and what the tool returns (batch job ID and initial status). It doesn't mention error handling, rate limits, or authentication requirements, but provides more behavioral detail than most descriptions without annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with clear sections (COST, TURNAROUND, WORKFLOW, SUPPORTS, Returns) using concise bullet-like formatting. Every sentence adds value: cost/timing benefits, workflow steps, constraints, and return values. No wasted words while maintaining excellent readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex batch creation tool with 6 parameters, nested objects, and no output schema, the description provides exceptional completeness. It covers purpose, workflow integration, cost/timing, constraints, usage patterns, and return values. Given the absence of annotations and output schema, it successfully compensates by providing the contextual information an agent needs to use this tool effectively within the broader batch processing ecosystem.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds some semantic context by explaining the two primary usage patterns (inline requests <20MB vs. file-based JSONL for large batches) and referencing the workflow, but doesn't provide additional parameter meaning beyond what's in the schema descriptions. This meets the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('CREATE BATCH JOB'), resource ('async content generation batch job with Gemini'), and distinguishes it from siblings by focusing on content generation (vs. embeddings, processing, or other batch operations). It explicitly mentions the workflow and cost/turnaround characteristics that differentiate it from standard API calls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool (for async content generation with cost/turnaround benefits), when to use alternatives (inline vs. file-based approaches), and references sibling tools for the complete workflow (batch_ingest_content, upload_file, batch_get_status, batch_download_results). It clearly outlines the multi-step process and constraints (<20MB for inline).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_create_embeddingsA
CREATE EMBEDDINGS BATCH JOB - Create async embeddings generation batch job. COST: 50% cheaper than standard API. MODEL: gemini-embedding-001 (1536 dimensions). WORKFLOW: 1) Prepare content (use batch_ingest_embeddings for conversion), 2) Select task type (use batch_query_task_type if unsure), 3) Upload file, 4) Call batch_create_embeddings, 5) Monitor with batch_get_status, 6) Download with batch_download_results. TASK TYPES: See batch_query_task_type for descriptions and recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Embedding model | gemini-embedding-001 |
| requests | No | Inline embedding requests (for small batches) | |
| inputFileUri | No | URI of uploaded JSONL file with embedding requests | |
| taskType | Yes | Embedding task type (affects model optimization). Use batch_query_task_type for guidance. | |
| displayName | No | Optional display name for the batch job | |
| outputLocation | No | Output directory for results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: it's an async batch job (not immediate), mentions cost ('50% cheaper than standard API'), specifies the model and dimensions, and outlines the multi-step workflow. However, it doesn't mention rate limits, error handling, or job duration expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (COST, MODEL, WORKFLOW, TASK TYPES) and uses bullet-like numbering for the workflow. It's appropriately sized for a complex tool, though some sentences could be more concise (e.g., the workflow list is verbose but necessary).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex batch processing tool with 6 parameters, 100% schema coverage, and no output schema, the description does a good job of providing context. It explains the async nature, cost benefits, model details, and full workflow. However, it doesn't describe the output format or error responses, which would be helpful given the lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some context: it mentions the model (gemini-embedding-001 with 1536 dimensions) and references batch_query_task_type for task type guidance, but doesn't provide additional parameter semantics beyond what's already in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'CREATE EMBEDDINGS BATCH JOB - Create async embeddings generation batch job.' It specifies the exact action (create async batch job) and resource (embeddings), and distinguishes it from siblings like batch_ingest_embeddings (for content conversion) and batch_get_status (for monitoring).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit workflow guidance: 'WORKFLOW: 1) Prepare content (use batch_ingest_embeddings for conversion), 2) Select task type (use batch_query_task_type if unsure), 3) Upload file, 4) Call batch_create_embeddings, 5) Monitor with batch_get_status, 6) Download with batch_download_results.' It names specific alternative tools for different steps and clarifies when to use them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_deleteA
DELETE BATCH JOB - Permanently delete batch job and associated data. WORKFLOW: 1) Validates job exists, 2) Deletes job metadata from Gemini API, 3) Removes from internal tracking. USE CASE: Clean up completed/failed jobs, manage job history, free storage. WARNING: Irreversible operation. Results will be lost if not downloaded first. Recommended to download results before deletion.
| Name | Required | Description | Default |
|---|---|---|---|
| batchName | Yes | Batch job name/ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing the workflow steps, irreversible nature, and data loss risks. It mentions validation, API deletion, and internal tracking removal, though it doesn't cover error handling or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (workflow, use case, warning) and front-loaded key information. It's appropriately sized, though slightly verbose with the workflow details that could be condensed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations or output schema, the description provides good context about the irreversible operation, workflow, and use cases. It could improve by mentioning error conditions or response format, but it's largely complete for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with one parameter clearly documented. The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline of 3 for adequate coverage without extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb ('DELETE') and resource ('BATCH JOB'), and distinguishes it from siblings like batch_cancel or batch_download_results by specifying it's a permanent deletion operation. The title 'DELETE BATCH JOB' reinforces this clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance with 'USE CASE: Clean up completed/failed jobs, manage job history, free storage' and warns 'Recommended to download results before deletion.' It clearly differentiates from batch_download_results and batch_cancel by focusing on permanent cleanup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_download_resultsA
DOWNLOAD BATCH RESULTS - Download and parse results from completed batch job. WORKFLOW: 1) Checks job status (must be SUCCEEDED), 2) Downloads result file from Gemini API, 3) Parses JSONL results, 4) Saves to local file, 5) Returns parsed results array. RETURNS: Array of results with original keys, responses, and metadata. Also saves to file in outputLocation.
| Name | Required | Description | Default |
|---|---|---|---|
| batchName | Yes | Batch job name/ID from batch_create | |
| outputLocation | No | Directory to save results file (defaults to current working directory) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so well. It discloses key behavioral traits: the multi-step workflow (status check, download, parse, save), prerequisites (job must be SUCCEEDED), side effects (saves to local file), and return format (array with keys, responses, metadata). It lacks details on error handling or rate limits, but covers essential operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose. The workflow breakdown is useful but slightly verbose; every sentence earns its place by clarifying steps and returns, though it could be more streamlined without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description does a good job covering complexity: it explains the workflow, prerequisites, return values, and side effects. However, it lacks details on error cases (e.g., if job fails) or file naming conventions, leaving minor gaps for a tool with significant behavioral steps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters fully. The description adds minimal value beyond the schema: it mentions outputLocation defaults to current working directory (implied in schema) and ties batchName to batch_create, but does not provide additional syntax, format, or constraints. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action (download and parse results from completed batch job) and distinguishes it from siblings like batch_get_status (which only checks status) or batch_create (which creates jobs). It specifies the resource (batch job results) and the multi-step workflow, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: after a batch job has completed with SUCCEEDED status. It implicitly suggests alternatives like batch_get_status for checking status without downloading, but does not explicitly name when-not scenarios or compare to all siblings like batch_cancel or batch_delete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_get_statusA
GET BATCH JOB STATUS - Check status of running batch job with optional auto-polling. STATES: PENDING (queued), RUNNING (processing), SUCCEEDED (complete), FAILED (error), CANCELLED (user stopped), EXPIRED (timeout). WORKFLOW: 1) Call with batch job name/ID, 2) Optionally enable polling to wait for completion, 3) Returns current state, progress stats, and completion info. USAGE: Pass job name from batch_create response. Enable autoPoll for hands-off waiting.
| Name | Required | Description | Default |
|---|---|---|---|
| batchName | Yes | Batch job name/ID from batch_create | |
| autoPoll | No | Automatically poll until job completes (SUCCEEDED, FAILED, or CANCELLED) | |
| pollIntervalSeconds | No | Seconds between status checks when autoPoll=true (default: 30) | |
| maxWaitMs | No | Maximum wait time in milliseconds (default: 24 hours) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by detailing the job states (PENDING, RUNNING, etc.), the workflow steps, and the polling behavior. It explains what the tool returns (current state, progress stats, completion info) and the auto-polling mechanism. Minor gap: doesn't mention error handling or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (STATES, WORKFLOW, USAGE) and front-loaded purpose. Slightly verbose with some redundancy (e.g., 'optional auto-polling' then 'Optionally enable polling'), but every sentence adds value. Could be more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description provides substantial context: states, workflow, usage guidance, and behavioral details. It adequately compensates for the lack of structured fields, though it could benefit from explicitly mentioning the return format or error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all parameters. The description adds some context by mentioning 'batch job name/ID' and 'auto-polling', but doesn't provide additional semantic meaning beyond what's in the schema. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('GET BATCH JOB STATUS - Check status of running batch job') and distinguishes it from siblings like batch_cancel, batch_create, etc. It specifies the resource (batch job) and verb (check status) with precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: 'USAGE: Pass job name from batch_create response. Enable autoPoll for hands-off waiting.' This tells the agent exactly when to use this tool (after batch_create) and how to configure it for different scenarios (hands-off vs manual checking).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_ingest_contentA
INTELLIGENT CONTENT INGESTION - Analyzes content file, converts to JSONL for batch processing. WORKFLOW: 1) Detects format (CSV, JSON, TXT, MD), 2) Analyzes structure/complexity, 3) Writes analysis scripts if needed, 4) Converts to proper JSONL format, 5) Validates JSONL structure. SUPPORTS: CSV (converts rows), JSON (wraps objects), TXT/MD (splits by lines/sections). RETURNS: Conversion report with outputFile path, validation status, and any generated scripts.
| Name | Required | Description | Default |
|---|---|---|---|
| inputFile | Yes | Path to content file to ingest | |
| outputFile | No | Optional output JSONL path (auto-generated if not provided) | |
| generateScripts | No | Generate analysis/extraction scripts for complex content |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by detailing the multi-step workflow, supported formats, and return values. It discloses behavioral traits like format detection, script generation, and validation, though it lacks specifics on error handling, rate limits, or permissions required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with 'INTELLIGENT CONTENT INGESTION', followed by a structured workflow and support details. It's efficient with no wasted sentences, though the capitalization and formatting could be slightly more polished for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multi-step conversion), no annotations, and no output schema, the description is fairly complete by explaining the workflow, supported formats, and return values. However, it could improve by detailing error cases or output schema specifics to fully compensate for the lack of structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds context by mentioning 'auto-generated' for outputFile and 'analysis/extraction scripts' for generateScripts, but it doesn't provide additional meaning beyond what's in the schema, such as file path formats or script details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('analyzes', 'converts', 'detects', 'writes', 'validates') and resources ('content file', 'JSONL'), distinguishing it from sibling tools like batch_create_embeddings or batch_process by focusing on content ingestion and format conversion rather than batch management or embeddings processing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through its workflow and supported formats, suggesting it's for converting various file types to JSONL, but it doesn't explicitly state when to use this tool versus alternatives like batch_process or upload_file, nor does it provide exclusions or prerequisites for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_ingest_embeddingsA
EMBEDDINGS CONTENT INGESTION - Specialized ingestion for embeddings batch processing. WORKFLOW: 1) Analyzes content structure, 2) Extracts text for embedding, 3) Formats as JSONL with proper embedContent structure including task_type, 4) Validates format. OPTIMIZED FOR: Text extraction from various formats (CSV columns, JSON fields, TXT lines, MD sections). RETURNS: JSONL file ready for batch_create_embeddings with task_type embedded in each request.
| Name | Required | Description | Default |
|---|---|---|---|
| inputFile | Yes | Path to content file | |
| outputFile | No | Optional output JSONL path | |
| textField | No | For CSV/JSON: field name containing text to embed (auto-detected if not provided) | |
| taskType | Yes | Embedding task type (RETRIEVAL_DOCUMENT, SEMANTIC_SIMILARITY, CLASSIFICATION, CLUSTERING, RETRIEVAL_QUERY, CODE_RETRIEVAL_QUERY, QUESTION_ANSWERING, FACT_VERIFICATION). Use batch_query_task_type if unsure. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by describing the multi-step workflow (analyzes, extracts, formats, validates) and optimization for specific formats. It discloses the output format (JSONL file) and how it's structured (with task_type embedded). It doesn't mention error handling, performance characteristics, or file size limits, which keeps it from a perfect score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with clear sections (WORKFLOW, OPTIMIZED FOR, RETURNS), uses bullet-like numbering for steps, and every sentence adds value. No redundant information or wasted words - it's front-loaded with the core purpose and progressively adds details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, 100% schema coverage, and no output schema, the description provides good context about the workflow, format optimization, and output usage. It explains what the tool produces and how it connects to batch_create_embeddings. The main gap is lack of explicit error handling or limitations information, preventing a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some value by mentioning 'auto-detected if not provided' for textField (implied in schema but reinforced) and referencing batch_query_task_type for taskType uncertainty. However, it doesn't provide significant additional parameter semantics beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('analyzes', 'extracts', 'formats', 'validates') and resources ('embeddings batch processing', 'JSONL file'). It distinguishes from sibling tools by specifying this is for embeddings processing rather than general content ingestion (batch_ingest_content) or embeddings creation (batch_create_embeddings).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'OPTIMIZED FOR: Text extraction from various formats (CSV columns, JSON fields, TXT lines, MD sections)' tells when to use it. 'RETURNS: JSONL file ready for batch_create_embeddings' indicates the next step in workflow. It also distinguishes from batch_query_task_type with 'Use batch_query_task_type if unsure' for taskType parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_processA
COMPLETE BATCH WORKFLOW - End-to-end content generation batch processing. WORKFLOW: 1) Ingests content file (CSV, JSON, TXT, etc.), 2) Converts to JSONL, 3) Uploads to Gemini, 4) Creates batch job, 5) Polls until complete, 6) Downloads and parses results. BEST FOR: Users who want simple one-call solution. RETURNS: Final results with metadata. For more control, use individual tools (batch_ingest_content, batch_create, batch_get_status, batch_download_results).
| Name | Required | Description | Default |
|---|---|---|---|
| inputFile | Yes | Path to content file (CSV, JSON, TXT, MD, JSONL) | |
| model | No | Gemini model for content generation | gemini-2.5-flash |
| outputLocation | No | Output directory for results (defaults to current working directory) | |
| pollIntervalSeconds | No | Seconds between status checks (default: 30) | |
| config | No | Optional generation config |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the complete 6-step workflow including ingestion, conversion, upload, job creation, polling, and result download/parsing. It mentions polling behavior ('Polls until complete') and return values ('RETURNS: Final results with metadata'). However, it doesn't specify error handling, rate limits, or authentication requirements, leaving some behavioral aspects unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and well-structured with clear sections (workflow steps, best for, returns, alternatives). Every sentence adds value, though it could be slightly more concise by combining some workflow steps. The information is front-loaded with the main purpose immediately stated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 5-parameter batch processing tool with no annotations and no output schema, the description provides substantial context about the workflow, return values, and alternatives. It covers the main behavioral aspects well, though additional details about error handling or output format would make it more complete. The description compensates reasonably for the lack of structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. It mentions the workflow steps but doesn't explain how parameters like 'inputFile' or 'config' relate to those steps. The baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'End-to-end content generation batch processing' with a detailed 6-step workflow. It specifically distinguishes itself from sibling tools by being a 'simple one-call solution' versus the individual tools like batch_ingest_content, batch_create, etc. The verb 'processes' and resource 'batch workflow' are specific and well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('BEST FOR: Users who want simple one-call solution') and when to use alternatives ('For more control, use individual tools...'). It names specific sibling tools (batch_ingest_content, batch_create, batch_get_status, batch_download_results) as alternatives, providing clear guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_process_embeddingsA
COMPLETE EMBEDDINGS WORKFLOW - End-to-end embeddings batch processing. WORKFLOW: 1) Ingests content, 2) Queries user for task type (or auto-recommends), 3) Converts to JSONL, 4) Uploads, 5) Creates batch job, 6) Polls until complete, 7) Downloads results. BEST FOR: Simple one-call embeddings generation. RETURNS: Embeddings array (1536-dimensional vectors) with metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| inputFile | Yes | Path to content file | |
| taskType | No | Embedding task type (omit to get interactive prompt) | |
| model | No | Embedding model | gemini-embedding-001 |
| outputLocation | No | Output directory for results | |
| pollIntervalSeconds | No | Seconds between status checks |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by detailing the 7-step workflow including interactive prompting, polling behavior, and file operations. It discloses that the tool will 'Queries user for task type (or auto-recommends)' and 'Polls until complete,' which are important behavioral traits not evident from the schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (workflow steps, best for, returns) and front-loaded with the key purpose. It could be slightly more concise by combining some workflow steps, but overall it's efficient with no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 5-parameter tool with no annotations and no output schema, the description does well by explaining the complete workflow, return format (embeddings array with metadata), and usage context. It could benefit from more detail about error handling or limitations, but covers the essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description doesn't add significant parameter semantics beyond what's already in the schema descriptions, though it does provide context about the overall workflow that helps understand parameter roles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'End-to-end embeddings batch processing' with a detailed 7-step workflow, distinguishing it from simpler sibling tools like batch_create_embeddings or batch_ingest_content. It specifies the exact scope as a complete workflow for embeddings generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'BEST FOR: Simple one-call embeddings generation,' providing clear guidance on when to use this tool versus alternatives. It distinguishes this comprehensive workflow from more granular sibling tools like batch_create or batch_download_results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_query_task_typeA
INTERACTIVE TASK TYPE SELECTOR - Helps choose optimal embedding task type with recommendations. WORKFLOW: 1) Optionally analyzes sample content, 2) Shows all 8 task types with descriptions, 3) Provides AI recommendation based on context, 4) Returns selected task type. TASK TYPES: SEMANTIC_SIMILARITY (compare text similarity), CLASSIFICATION (categorize text), CLUSTERING (group similar items), RETRIEVAL_DOCUMENT (index for search), RETRIEVAL_QUERY (search queries), CODE_RETRIEVAL_QUERY (code search), QUESTION_ANSWERING (Q&A systems), FACT_VERIFICATION (check claims).
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Optional context about your use case (e.g., 'building search engine for documentation') | |
| sampleContent | No | Optional sample texts to analyze for recommendation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the interactive and recommendation-based behavior, including optional analysis and AI-driven suggestions, but lacks details on permissions, rate limits, or error handling. It does not contradict annotations, as none are given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections like 'INTERACTIVE TASK TYPE SELECTOR,' 'WORKFLOW,' and 'TASK TYPES,' making it front-loaded and easy to scan. It is appropriately sized but includes some redundancy (e.g., listing all task types might be verbose if not essential), though each sentence adds context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of an interactive selector with no annotations and no output schema, the description is moderately complete. It covers the workflow and task types but lacks details on output format, error cases, or integration with sibling tools. For a tool with 2 parameters and behavioral nuances, it should provide more context on what is returned or how failures are handled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining the purpose of parameters indirectly: 'context' is linked to 'use case' in the workflow, and 'sampleContent' is tied to 'analyzes sample content.' However, it does not provide detailed semantics beyond what the schema descriptions already cover, such as format examples for sampleContent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as an 'INTERACTIVE TASK TYPE SELECTOR' that 'Helps choose optimal embedding task type with recommendations,' specifying the verb (select/choose) and resource (task type). It distinguishes itself from siblings like batch_create_embeddings or batch_process by focusing on selection/recommendation rather than creation or processing, with no tautology present.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage through the 'WORKFLOW' section, outlining steps like analyzing sample content and showing task types. However, it does not explicitly state when not to use this tool or name specific alternatives among siblings, such as batch_process_embeddings for actual processing, leaving some guidance implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chatA
SEND MESSAGE TO GEMINI (with optional files) - Chat with Gemini, optionally including uploaded files for multimodal analysis. TYPICAL USE: 0-2 files for most tasks (code review, document analysis, image description). SCALES TO: 40+ files when needed for comprehensive analysis. WORKFLOW: 1) Upload files first using upload_file (single) or upload_multiple_files (multiple), 2) Pass returned URIs in fileUris array, 3) Include your text prompt in message. The server handles file object caching and proper API formatting. Supports conversation continuity via conversationId. RETURNS: response text, token usage, conversation ID. Files are passed as direct objects to Gemini (not fileData structures). Auto-retrieves missing files from API if not cached.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The message to send to Gemini | |
| model | No | The Gemini model to use | gemini-3-pro-preview |
| fileUris | No | Array of file URIs from previously uploaded files | |
| temperature | No | Controls randomness in responses (0.0 to 2.0) | |
| maxTokens | No | Maximum tokens in response | |
| conversationId | No | Optional conversation ID to continue a previous chat |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: file handling (server caches files, auto-retrieves missing ones), conversation continuity (via conversationId), return values (response text, token usage, conversation ID), and implementation details (files passed as direct objects, not fileData structures). It doesn't mention rate limits or error handling, but covers most operational aspects well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose. It uses clear sections (TYPICAL USE, SCALES TO, WORKFLOW, RETURNS) for organization. Some sentences could be more concise (e.g., 'The server handles file object caching and proper API formatting' could be simplified), but overall it's efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, file handling, conversation management) and lack of both annotations and output schema, the description does a good job covering most essential context. It explains the workflow, return values, and behavioral details. The main gap is the absence of an output schema, but the description compensates by listing return values (response text, token usage, conversation ID).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds some context about fileUris (requiring upload first, typical file counts) and conversationId (for continuity), but doesn't provide significant additional semantic meaning beyond what's in the schema descriptions. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('SEND MESSAGE TO GEMINI'), resource ('Gemini'), and scope ('with optional files for multimodal analysis'). It distinguishes itself from sibling tools like upload_file or generate_images by focusing on the core chat interaction with the AI model.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when and how to use this tool, including a workflow (upload files first, then pass URIs), typical use cases (0-2 files for code review, document analysis), and scaling options (40+ files for comprehensive analysis). It references specific sibling tools (upload_file, upload_multiple_files) as alternatives for file handling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cleanup_all_filesA
BULK DELETE ALL FILES - Removes ALL files from Gemini File API associated with current API key. Clears entire cache. RETURNS: Count of deleted vs failed deletions with detailed lists. USE CASE: Complete cleanup after batch processing, reset environment, clear storage quota. WARNING: Irreversible operation affecting all uploaded files.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: the irreversible nature of the operation ('Irreversible operation affecting all uploaded files'), the scope ('ALL files from Gemini File API associated with current API key'), and the return format ('Count of deleted vs failed deletions with detailed lists'). However, it lacks details on error handling or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core action ('BULK DELETE ALL FILES'), followed by details on behavior, return values, use cases, and warnings. Each sentence adds value, but it could be slightly more concise by combining some clauses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's high complexity (destructive bulk operation) and lack of annotations or output schema, the description does a good job covering purpose, usage, behavior, and warnings. However, it could be more complete by specifying authentication requirements or potential errors, though the absence of an output schema is partially mitigated by describing the return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately focuses on the tool's behavior and context without redundant parameter details, earning a baseline score of 4 for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose with specific verbs ('BULK DELETE ALL FILES', 'Removes ALL files', 'Clears entire cache') and clearly distinguishes it from sibling tools like 'delete_file' (single file) and 'batch_delete' (batch operations). It directly addresses what the tool does without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines with 'USE CASE: Complete cleanup after batch processing, reset environment, clear storage quota', indicating when to use this tool. It also includes a 'WARNING' about irreversibility, which helps differentiate it from less destructive alternatives like 'delete_file' or 'clear_conversation'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_conversationA
CLEAR CONVERSATION HISTORY - Deletes specified conversation session and all associated message history. Frees memory and resets context. USAGE: Pass conversationId from start_conversation or chat response. Returns confirmation or 'not found' message. Use when switching topics or cleaning up after completion.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Conversation ID to clear |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it discloses the destructive behavior ('Deletes'), side effects ('Frees memory and resets context'), and output expectations ('Returns confirmation or 'not found' message'). However, it lacks details on permissions, rate limits, or error handling, preventing a perfect score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, followed by usage and context, all in three efficient sentences. Minor improvements could include bullet points for clarity, but it avoids redundancy and wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 1 parameter with full schema coverage and no output schema, the description is mostly complete: it covers purpose, usage, behavior, and parameter context. It could enhance completeness by specifying output format details or error scenarios, but it adequately supports tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining the parameter's source ('conversationId from start_conversation or chat response'), which provides context beyond the schema's generic description. It doesn't fully detail format or constraints, but this extra guidance merits a score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Deletes specified conversation session and all associated message history') and resource ('conversation history'), distinguishing it from siblings like 'cleanup_all_files' or 'delete_file' which handle different resources. The title-like opening 'CLEAR CONVERSATION HISTORY' reinforces the purpose without being tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: 'Use when switching topics or cleaning up after completion' specifies when to use it, and 'Pass conversationId from start_conversation or chat response' indicates prerequisites. It distinguishes from alternatives by focusing on conversation history, not files or batches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_fileA
DELETE FILE FROM GEMINI - Permanently removes file from Gemini File API and clears from cache. USAGE: Pass fileUri from upload or list_files. Immediate deletion, cannot be undone. USE CASE: Clean up after processing, manage storage quota, remove sensitive data. NOTE: Files auto-delete after 48 hours if not manually removed.
| Name | Required | Description | Default |
|---|---|---|---|
| fileUri | Yes | The file URI or name to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates critical traits: the operation is permanent ('cannot be undone'), immediate ('Immediate deletion'), and has side effects ('clears from cache'). It also mentions the auto-delete policy ('Files auto-delete after 48 hours if not manually removed'), adding valuable context beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core action. Each sentence adds value: the first defines the tool, the second specifies usage, and the third provides use cases and notes. However, the 'NOTE' about auto-delete, while useful, could be integrated more smoothly, and some phrasing ('DELETE FILE FROM GEMINI') is slightly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (destructive operation with no annotations or output schema), the description is complete enough. It covers purpose, behavior, usage guidelines, and critical warnings, addressing all necessary aspects for safe and effective use without needing to explain return values or rely on structured fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'fileUri' fully documented in the schema. The description adds minimal semantic context by noting 'Pass fileUri from upload or list_files', which hints at the parameter's source but does not provide additional syntax or format details. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('permanently removes file') and resource ('from Gemini File API and clears from cache'), distinguishing it from siblings like 'get_file' (retrieval) and 'list_files' (listing). It explicitly identifies the tool's destructive nature, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context ('Clean up after processing, manage storage quota, remove sensitive data') and notes prerequisites ('Pass fileUri from upload or list_files'). However, it does not explicitly mention when NOT to use it or name specific alternatives among siblings (e.g., 'cleanup_all_files' for bulk deletion), which prevents a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_imagesA
GENERATE OR EDIT IMAGES - Create images from text prompts or edit existing images using Gemini image models. CAPABILITIES: Text-to-image generation, image editing with instructions, multiple image generation (1-4 images), configurable aspect ratios. MODELS: gemini-3-pro-image-preview (default, with thinking support) or gemini-2.5-flash-image (faster). WORKFLOW: 1) Provide text prompt, 2) Optionally specify model, aspect ratio, and number of images, 3) For editing: provide inputImageUri from uploaded file, 4) Images auto-saved to outputDir. RETURNS: Array of generated images with file paths. COST: ~1,290 tokens per image. All images include SynthID watermark.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text description of image to generate or editing instructions for existing image | |
| model | No | Image generation model (default: gemini-3-pro-image-preview) | gemini-3-pro-image-preview |
| aspectRatio | No | Image aspect ratio (default: 1:1 for new, matches input for editing) | 1:1 |
| numImages | No | Number of images to generate (default: 1) | |
| inputImageUri | No | Optional file URI from uploaded file for image editing (omit for text-to-image) | |
| outputDir | No | Directory to save generated images (default: ./generated-images) | |
| temperature | No | Controls randomness (0.0-2.0, default: 1.0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: images are auto-saved to outputDir, returns an array of file paths, includes cost (~1,290 tokens per image), and adds a SynthID watermark. It also covers models and aspect ratios, though it lacks details on error handling or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections like CAPABILITIES, MODELS, WORKFLOW, and RETURNS, making it easy to scan. It is appropriately sized, but some sentences could be more concise, such as the workflow steps which are somewhat verbose. Overall, it front-loads key information efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (7 parameters, no output schema, no annotations), the description is largely complete. It covers purpose, usage, behaviors, and returns, though it could benefit from more detail on error cases or output structure. The absence of an output schema is partially compensated by describing the return as an array of file paths.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema, such as mentioning that inputImageUri is for editing and outputDir has a default, but does not provide significant additional semantics or usage examples for the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('generate or edit images') and resources ('images using Gemini image models'), distinguishing it from sibling tools which focus on batch operations, file management, and chat. It explicitly lists capabilities like text-to-image generation and image editing, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool, such as for text-to-image generation or editing existing images, and outlines a workflow with optional parameters. However, it does not explicitly state when not to use it or name alternatives among sibling tools, which are unrelated to image generation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fileA
GET FILE METADATA & UPDATE CACHE - Retrieves current metadata for specific file from Gemini API and updates cache. USAGE: Pass fileUri from upload response or list_files. RETURNS: Complete file info including uri, displayName, mimeType, sizeBytes, create/update/expiration times, sha256Hash, state. Automatically adds to cache if missing. USE CASE: Verify file state, check expiration, refresh cache entry.
| Name | Required | Description | Default |
|---|---|---|---|
| fileUri | Yes | The file URI or name returned from upload_file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly describes the tool's behavior: retrieving metadata from Gemini API, updating cache, and automatically adding to cache if missing. It mentions the return format ('Complete file info including uri, displayName...') and the caching side effect. However, it doesn't disclose potential rate limits, authentication needs, or error conditions, which would be helpful for a complete behavioral picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with clear sections: purpose statement, usage instructions, return details, and use cases. Every sentence adds value without redundancy. It's front-loaded with the core functionality ('GET FILE METADATA & UPDATE CACHE') and maintains appropriate length for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations and no output schema, the description does a good job explaining what the tool does, when to use it, and what it returns. It covers the caching behavior and use cases. However, for a tool that interacts with an external API (Gemini), additional context about error handling or rate limiting would make it more complete, though the current description is substantially adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single parameter 'fileUri' with its description. The description adds minimal value beyond the schema by mentioning 'Pass fileUri from upload response or list_files', which provides context about where to obtain the parameter value. This meets the baseline of 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('retrieves', 'updates') and resources ('metadata for specific file', 'cache'). It distinguishes from siblings like list_files (which lists multiple files) and upload_file (which uploads rather than retrieves). The phrase 'GET FILE METADATA & UPDATE CACHE' directly communicates the dual functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'USE CASE: Verify file state, check expiration, refresh cache entry.' It also specifies when to use it versus alternatives by stating 'Pass fileUri from upload response or list_files', indicating it's for specific files rather than listing all files. The tool name 'get_file' versus 'list_files' further differentiates usage contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filesA
LIST ALL UPLOADED FILES - Retrieves metadata for all files currently in Gemini File API (associated with API key). Updates internal cache with latest file states. RETURNS: Array of files with uri, displayName, mimeType, sizeBytes, createTime, expirationTime, state. Also shows cachedCount indicating files ready for immediate use. USAGE: Check file availability before chat, monitor upload status, audit storage usage (20GB project limit).
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | Number of files to return (default 10, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behaviors: 'Updates internal cache with latest file states', returns specific fields including 'cachedCount indicating files ready for immediate use', and mentions the '20GB project limit' for storage auditing. However, it doesn't cover error conditions or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose. Every sentence adds value: purpose, behavior, returns, and usage guidelines. It could be slightly more structured with bullet points but remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description does well by explaining the return structure ('Array of files with uri, displayName...') and usage context. It covers the tool's purpose, behavior, and practical applications adequately, though it lacks details on error handling or pagination beyond pageSize.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (pageSize parameter fully documented in schema), so baseline is 3. The description doesn't add any parameter-specific information beyond what the schema provides, but it doesn't need to compensate for gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb ('LIST ALL UPLOADED FILES', 'Retrieves metadata') and resource ('files currently in Gemini File API'), distinguishing it from siblings like get_file (single file) or delete_file (mutation). It explicitly mentions the scope ('all files associated with API key').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage scenarios: 'Check file availability before chat, monitor upload status, audit storage usage (20GB project limit)'. It distinguishes when to use this tool (for listing all files) versus alternatives like get_file for single files or cleanup_all_files for deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_conversationA
INITIALIZE CONVERSATION SESSION - Creates new conversation context for multi-turn chat with Gemini. Generates unique ID if not provided. Stores message history for context continuity. Returns conversationId to use in subsequent chat calls. USAGE: Call before first chat or to start fresh context. Pass returned ID to chat tool's conversationId parameter for continuation.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Optional custom conversation ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it creates a new context, generates IDs if not provided, stores message history, and returns a conversationId for continuity. However, it lacks details on potential errors, session limits, or persistence duration, which would be useful for a tool managing conversational state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear purpose in the first sentence and efficiently structured into two sentences that cover initialization, behavior, and usage. While slightly verbose with capitalized headings, every sentence adds necessary information without waste, making it highly effective for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and a simple input schema, the description is quite complete. It explains the tool's role in a multi-turn chat system, its behavior, and integration with sibling tools. However, it could improve by mentioning output specifics (e.g., format of conversationId) or error cases, given the lack of structured output documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single optional 'id' parameter. The description adds value by explaining the parameter's purpose ('Generates unique ID if not provided') and its role in the workflow, but does not provide additional syntax or format details beyond what the schema implies. Given the single parameter and high coverage, this exceeds the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('INITIALIZE', 'Creates', 'Generates', 'Stores', 'Returns') and resources ('conversation session', 'new conversation context', 'unique ID', 'message history', 'conversationId'). It distinguishes from sibling tools by explicitly mentioning its role in the Gemini chat workflow and referencing the 'chat' tool for continuation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'Call before first chat or to start fresh context.' It also specifies how to use it in conjunction with alternatives: 'Pass returned ID to chat tool's conversationId parameter for continuation,' clearly differentiating it from the 'chat' and 'clear_conversation' siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_fileA
UPLOAD SINGLE FILE - Standard method for uploading one file to Gemini. BEST FOR: Single documents, images, or code files for immediate analysis. Includes automatic retry and state monitoring until file is ready. WORKFLOW: 1) Upload with auto-detected MIME type, 2) Wait for processing to complete (usually 10-30 seconds), 3) Returns URI for chat tool. RETURNS: fileUri (pass to chat tool), displayName, mimeType, sizeBytes, state. Files auto-delete after 48 hours. For 2+ files, consider upload_multiple_files for efficiency.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Absolute path to the file to upload | |
| displayName | No | Optional display name for the file | |
| mimeType | No | Optional MIME type (auto-detected if not provided) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: automatic retry and state monitoring, processing time (10-30 seconds), auto-deletion after 48 hours, and the return of specific data fields. However, it doesn't mention error handling or rate limits, which keeps it from a perfect score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (BEST FOR, WORKFLOW, RETURNS) and avoids unnecessary fluff. However, it could be slightly more concise by integrating some points more tightly, and the all-caps 'UPLOAD SINGLE FILE' is somewhat redundant with the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description does an excellent job covering key aspects: purpose, usage guidelines, behavioral traits, and return values. It compensates well for the lack of structured output schema by explicitly listing return fields. Minor gaps in error handling prevent a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any meaningful parameter-specific information beyond what's in the schema (e.g., it mentions auto-detected MIME type but the schema already states this). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('UPLOAD SINGLE FILE'), target resource ('to Gemini'), and distinguishes it from sibling tools by explicitly mentioning 'upload_multiple_files' as an alternative for 2+ files. It provides a verb+resource+scope combination that is precise and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('BEST FOR: Single documents, images, or code files for immediate analysis') and when to consider alternatives ('For 2+ files, consider upload_multiple_files for efficiency'). It also outlines the workflow context, making usage scenarios clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_multiple_filesA
UPLOAD MULTIPLE FILES EFFICIENTLY - Handles 2-40+ files with smart parallel processing. TYPICAL USE: 2-10 files for multi-document analysis, code reviews, or comparative tasks. SCALES TO: 40+ files for comprehensive dataset processing. FEATURES: Automatic retry (3 attempts), parallel uploads (5 concurrent default), processing state monitoring (waits for ACTIVE state). WORKFLOW: 1) Provide array of file paths, 2) System uploads in optimized batches, 3) Returns URIs for use in chat tool. PERFORMANCE: 2 files = ~30 seconds, 10 files = ~1-2 minutes, 40 files = ~2-3 minutes. Each successful upload returns: originalPath, file object, URI. Failed uploads include error details. Use upload_file for single files instead.
| Name | Required | Description | Default |
|---|---|---|---|
| filePaths | Yes | Array of absolute file paths to upload | |
| maxConcurrent | No | Maximum concurrent uploads (default: 5, max: 10) | |
| waitForProcessing | No | Wait for all files to be in ACTIVE state before returning |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and provides rich behavioral details: automatic retry (3 attempts), parallel uploads (5 concurrent default), processing state monitoring (waits for ACTIVE state), performance estimates (2 files = ~30 seconds, etc.), and return values (URIs, error details for failures). It doesn't mention authentication or rate limits, but covers key operational traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections (TYPICAL USE, SCALES TO, FEATURES, WORKFLOW, PERFORMANCE) and front-loaded key information. Some redundancy exists (e.g., 'UPLOAD MULTIPLE FILES EFFICIENTLY' could be tighter), but most sentences earn their place by adding value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description provides comprehensive context: purpose, usage scenarios, behavioral traits, performance estimates, and return values. It adequately compensates for the lack of structured fields, though it could mention error handling or prerequisites more explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds context about the workflow ('Provide array of file paths') and implies batch optimization, but doesn't add significant semantic details beyond what the schema provides. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool uploads multiple files efficiently with smart parallel processing, distinguishing it from the sibling 'upload_file' tool for single files. It specifies the verb 'upload' and resource 'multiple files' with scope (2-40+ files).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: use for 2-10 files for multi-document analysis, code reviews, or comparative tasks; scales to 40+ files for dataset processing; and explicitly states 'Use upload_file for single files instead,' clearly differentiating from the sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v1.0.0- Changed
batch_create1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "gemini-2.5-pro", - "gemini-2.5-flash", - "gemini-2.0-flash-exp" -]New value: +[ + "gemini-3-pro-preview", + "gemini-2.5-pro", + "gemini-2.5-flash", + "gemini-2.0-flash-exp" +]
- Changed
batch_process1 field changed- changed
Input schema / properties / model / enumPrevious value: -[ - "gemini-2.5-pro", - "gemini-2.5-flash", - "gemini-2.0-flash-exp" -]New value: +[ + "gemini-3-pro-preview", + "gemini-2.5-pro", + "gemini-2.5-flash", + "gemini-2.0-flash-exp" +]
- Changed
chat2 fields changed- changed
Input schema / properties / model / defaultPrevious value: -"gemini-2.5-pro"New value: +"gemini-3-pro-preview" - changed
Input schema / properties / model / enumPrevious value: -[ - "gemini-2.5-pro", - "gemini-2.5-flash", - "gemini-2.0-flash-exp" -]New value: +[ + "gemini-3-pro-preview", + "gemini-2.5-pro", + "gemini-2.5-flash", + "gemini-2.0-flash-exp" +]
- Added
generate_images
20 tool updates
- First observed
batch_cancel - First observed
batch_create - First observed
batch_create_embeddings - First observed
batch_delete - First observed
batch_download_results - First observed
batch_get_status - First observed
batch_ingest_content - First observed
batch_ingest_embeddings - First observed
batch_process - First observed
batch_process_embeddings - First observed
batch_query_task_type - First observed
chat - First observed
cleanup_all_files - First observed
clear_conversation - First observed
delete_file - First observed
get_file - First observed
list_files - First observed
start_conversation - First observed
upload_file - First observed
upload_multiple_files
TDQS
Most tools have distinct purposes, but there is some overlap between batch_process and batch_process_embeddings with their individual component tools (e.g., batch_process includes batch_ingest_content, batch_create, etc.), which could cause confusion about when to use the comprehensive versus granular tools. However, descriptions clarify that the comprehensive tools are for 'simple one-call solutions,' helping to mitigate misselection.
Tool names follow a highly consistent snake_case pattern with clear verb_noun structures (e.g., batch_create, upload_file, list_files). The naming is predictable across all tools, making it easy for agents to understand and navigate the set without confusion.
With 21 tools, the count feels heavy for a Gemini MCP server, as it includes both comprehensive workflow tools and their granular components, leading to redundancy. While the domain (batch processing, file management, chat, embeddings) is broad, the tool set could be more streamlined to avoid overlap and reduce complexity.
The tool set provides complete coverage for the Gemini API domain, including batch job lifecycle (create, cancel, delete, status, results), file management (upload, list, get, delete), chat with conversation handling, embeddings generation, and image generation. There are no obvious gaps, and agents can perform all core workflows without dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Image, video, music and text generation across 100+ models through one endpoint.
247 LLMs + image/video/voice/music gen + crypto/DeFi/markets/web-search. Pay-per-call USDC, no key.
AI agent tools: web search, browser, 400+ LLMs, image gen, TTS, phone verify. Pay-per-use.
Generate images, video & speech with Nano Banana, Veo, Omni and Gemini TTS. Pay as you go.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude Desktop to interact with Google's Gemini API, allowing users to query Gemini models directly or facilitate conversations between Claude and Gemini with conversation history management.70MIT
- AlicenseAqualityDmaintenanceEnables creation and querying of knowledge bases using Google's Gemini API File Search feature, allowing AI applications to upload documents and retrieve information through RAG (Retrieval-Augmented Generation).3156MIT
- FlicenseAqualityDmaintenanceConnects to Google Gemini API for text-to-image generation and image editing, with batch processing at reduced cost and aspect ratio control.6-
- AlicenseAqualityDmaintenanceEnables image generation, editing, and analysis using Google's Gemini 2.5 Flash and Gemini 3 Pro models, with support for batch processing, style templates, and high-resolution output.87581MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mintmcqueen/gemini-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server