Skip to main content
Glama
node2flow-th

gemini-file-search-rag-mcp

by node2flow-th

Gemini File Search RAG MCP Server

npm version License: MIT

MCP (Model Context Protocol) server for Google's Gemini File Search (RAG). Manage file search stores, upload documents, and query with RAG through 12 tools.

Works with Claude Desktop, Cursor, VS Code, and any MCP client.


Quick Start

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "gemini-rag": {
      "command": "npx",
      "args": ["-y", "@node2flow/gemini-file-search-rag-mcp"],
      "env": {
        "GEMINI_API_KEY": "your-gemini-api-key"
      }
    }
  }
}

Cursor / VS Code

Add to MCP settings:

{
  "mcpServers": {
    "gemini-rag": {
      "command": "npx",
      "args": ["-y", "@node2flow/gemini-file-search-rag-mcp"],
      "env": {
        "GEMINI_API_KEY": "your-gemini-api-key"
      }
    }
  }
}

HTTP Mode (Streamable HTTP)

For remote deployment or shared access:

GEMINI_API_KEY=your_key npx @node2flow/gemini-file-search-rag-mcp --http

Server starts on port 3000 (configurable via PORT env var). MCP endpoint: http://localhost:3000/mcp


Related MCP server: estudIA-MCP

Configuration

Environment Variable

Required

Description

GEMINI_API_KEY

Yes

Google Gemini API key (get one here)

PORT

No

Port for HTTP server (default: 3000, only used with --http)


All Tools (12 tools)

Store Management (4 tools)

Tool

Description

gemini_create_store

Create a new file search store

gemini_list_stores

List all file search stores

gemini_get_store

Get store details

gemini_delete_store

Delete a store (with optional force)

Upload & Import (2 tools)

Tool

Description

gemini_upload_to_store

Upload content directly to a store (text, base64)

gemini_import_file_to_store

Import an existing Gemini file into a store

Operations (2 tools)

Tool

Description

gemini_get_operation

Check status of a store operation

gemini_get_upload_operation

Check status of an upload operation

Document Management (3 tools)

Tool

Description

gemini_list_documents

List documents in a store

gemini_get_document

Get document details

gemini_delete_document

Delete a document from a store

RAG Query (1 tool)

Tool

Description

gemini_rag_query

Query documents using RAG with Gemini models


Requirements

  • Node.js 18+

  • Google Gemini API key

How to Get a Gemini API Key

  1. Go to Google AI Studio

  2. Click "Create API key"

  3. Copy the key and use it as GEMINI_API_KEY


For Developers

git clone https://github.com/node2flow-th/gemini-files-search-rag-mcp-community.git
cd gemini-files-search-rag-mcp-community
npm install
npm run build

# Run in stdio mode
GEMINI_API_KEY=your_key npm start

# Run in dev mode (hot reload)
GEMINI_API_KEY=your_key npm run dev

# Run in HTTP mode
GEMINI_API_KEY=your_key npm start -- --http

License

MIT License - see LICENSE

Copyright (c) 2026 Node2Flow

Available Tools

12 tools
gemini_create_storeA

Create a new Gemini File Search store for RAG documents. Returns the created store resource. Use this to create a knowledge base before uploading documents.

ParametersJSON Schema
NameRequiredDescriptionDefault
display_nameYesDisplay name for the store (max 512 characters)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that it returns the created store resource and acts as the prerequisite for uploads, but says nothing about naming constraints, quotas, or failure behavior. Given the annotation coverage, this modest addition merits a 3.

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

Conciseness5/5

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

Three short sentences that front-load what is created, then what is returned, then when to use it. No sentence is redundant and nothing is buried.

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

Completeness4/5

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

For a single-parameter create tool with annotations covering safety and no output schema, the description tells the agent what it makes, what it returns, and when to reach for it. The only gap is not naming the downstream upload sibling explicitly.

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

Parameters3/5

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

Schema description coverage is 100% with a single parameter, so the schema already documents display_name and its 512-character limit. The description adds no parameter-level detail beyond that, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Create a new Gemini File Search store for RAG documents') and clarifies the returned artifact. It does not explicitly distinguish itself from siblings like gemini_delete_store or gemini_list_stores, but the create verb makes the intent unmistakable.

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

Usage Guidelines4/5

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

'Use this to create a knowledge base before uploading documents' gives a clear sequence and prerequisite, pointing at the upload flow. It stops short of naming the sibling tools (e.g., gemini_upload_to_store) explicitly, so an agent must infer the next step from the sibling list.

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

gemini_delete_documentA
Destructive

Delete a document from a File Search store. Use force=true to also delete associated chunks.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoIf true, also delete associated chunks
document_nameYesDocument resource name, e.g. "fileSearchStores/abc123/documents/doc456"

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is a destructive write operation. The description adds the behavioral note that force=true also deletes associated chunks, which is important context beyond annotations. It doesn't cover permissions or irreversibility, but with annotations covering the safety profile, this is solid.

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

Conciseness5/5

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

Two sentences, zero waste, front-loaded with the primary action and followed by the key optional parameter behavior. Perfectly sized for the tool's complexity.

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

Completeness4/5

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

Given the tool's simplicity (2 params, no output schema, clear annotations), the description covers purpose and the force behavior. It could mention that deletion is irreversible or what happens if the document doesn't exist, but it is largely complete for correct invocation.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are fully documented in the schema. The description repeats the force parameter semantics (also delete associated chunks) and doesn't add new meaning beyond 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.

Purpose5/5

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

The description states a specific verb (Delete) and resource (a document from a File Search store), clearly distinguishing it from sibling tools like gemini_delete_store (which deletes a store) and gemini_get_document. An agent can immediately understand the operation.

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

Usage Guidelines4/5

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

It gives clear guidance on when to use the force parameter, explaining that force=true deletes associated chunks. However, it does not explicitly state when to use this tool versus alternatives like gemini_delete_store or provide conditions for deletion (e.g., prerequisites).

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

gemini_delete_storeA
Destructive

Delete a Gemini File Search store. Use force=true to also delete all documents inside it.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoIf true, cascade delete all documents in the store
store_nameYesStore resource name, e.g. "fileSearchStores/abc123"

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the description doesn't need to restate the destructive nature. It adds the critical behavioral detail that force=true cascades to delete all documents inside the store, which is not conveyed by annotations. However, it doesn't mention irreversibility, permission requirements, or failure modes for non-empty stores.

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

Conciseness5/5

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

Two sentences, zero waste. The first states the core action, the second immediately clarifies the optional force parameter. Front-loaded and efficient.

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

Completeness4/5

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

For a two-parameter delete tool with full schema coverage and annotations covering the safety profile, the description is nearly complete. It covers the core action and the force cascade. Minor gaps: no mention of irreversible data loss or what happens if force is false and documents exist, but these are not critical given the destructiveHint annotation.

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

Parameters3/5

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

Schema coverage is 100%, with both parameters fully described in the schema (force's cascade behavior is already documented there). The description repeats the force behavior but adds no syntax, format, or validation 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.

Purpose4/5

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

States a specific verb (Delete) and resource (Gemini File Search store), clearly distinguishing from siblings like gemini_list_stores or gemini_get_store. It doesn't explicitly contrast with gemini_delete_document, but the resource specificity makes the target unambiguous.

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

Usage Guidelines3/5

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

The description explains the force parameter's effect (cascade delete), which implies usage conditions, but provides no explicit when-to-use vs. alternatives guidance (e.g., when to use gemini_delete_document instead). Context is implied rather than stated.

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

gemini_get_documentB
Read-only

Get details of a specific document in a File Search store, including state, size, and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_nameYesDocument resource name, e.g. "fileSearchStores/abc123/documents/doc456"

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds what fields are returned (state, size, metadata), which is useful, but does not cover error behavior or missing-document handling.

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

Conciseness4/5

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

A single efficient sentence listing the key returned fields. No waste, but also no front-loaded caveats or differentiation.

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

Completeness3/5

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

For a read-only getter with one fully documented parameter and annotations covering safety, the description is adequate. It does not mention what happens on invalid names or whether the store must exist, but these are minor gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the document_name parameter is fully documented in the schema with a format example. The description adds no additional parameter meaning beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb and resource: get a specific document in a File Search store. It clearly distinguishes retrieval by name from sibling list_documents and get_store, though it does not name any sibling explicitly.

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

Usage Guidelines2/5

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

No guidance on when to use this versus gemini_list_documents or gemini_get_store. The phrase 'specific document' implies retrieval by name, but no explicit context or exclusions are offered.

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

gemini_get_operationA
Read-only

Check the status of a store operation (create, delete, import). Returns whether the operation is done and any error details.

ParametersJSON Schema
NameRequiredDescriptionDefault
operation_nameYesOperation resource name, e.g. "fileSearchStores/abc123/operations/op456"

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds value by stating what the response contains — a done flag and any error details — which is behavior beyond the annotations.

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

Conciseness5/5

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

Two tight sentences with zero waste; the core purpose is front-loaded and the return-value note follows immediately. Nothing is redundant or padded.

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

Completeness4/5

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

With no output schema, the description must convey what comes back, and it does so briefly (completion state plus error details). For a single-parameter, read-only status check this is nearly complete, though it omits any note on polling cadence or operation expiry.

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

Parameters3/5

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

Schema coverage is 100% for the single operation_name parameter, and the schema even supplies a concrete example resource path. The description adds no additional meaning beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

The description names a specific verb ("Check the status") and resource ("a store operation"), and enumerates the operation kinds it covers (create, delete, import). This distinguishes it reasonably well from the sibling gemini_get_upload_operation, though the separation is by implication rather than explicit contrast.

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

Usage Guidelines3/5

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

Usage is implied: an agent can infer this is used to poll the status of an operation kicked off by create/delete/import. However, there is no explicit statement of when to call it (e.g., after a long-running create/import) and no mention of the upload-operation alternative.

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

gemini_get_storeB
Read-only

Get details of a specific Gemini File Search store by its resource name.

ParametersJSON Schema
NameRequiredDescriptionDefault
store_nameYesStore resource name, e.g. "fileSearchStores/abc123"

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered without the description's help. The description adds no extra behavior such as what happens for a missing/nonexistent store name or what the response contains, so it is only minimally additive.

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

Conciseness5/5

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

One sentence, front-loaded with the verb and resource, with zero filler. Nothing can be trimmed without losing the identifying-key detail.

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

Completeness4/5

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

For a single-parameter read tool with full schema coverage and annotations covering safety, the description is nearly sufficient; absent an output schema it need not explain return values. Only the lack of any sibling/usage routing keeps it from a 5.

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

Parameters3/5

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

Schema description coverage is 100% and the single store_name parameter is documented in the schema with the 'fileSearchStores/abc123' format example. The description's mention of 'resource name' adds no meaning beyond that, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb ('Get') and resource ('Gemini File Search store') plus the identifying key ('by its resource name'), so an agent knows exactly which entity is fetched. It does not explicitly contrast itself with the sibling gemini_list_stores, which keeps it short of a 5.

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

Usage Guidelines2/5

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

There is no statement of when to use this versus gemini_list_stores (retrieve many) or the other store/detail siblings, and no prerequisites or error conditions are mentioned. Usage is only weakly inferable from the phrase 'a specific store'.

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

gemini_get_upload_operationA
Read-only

Check the status of a file upload operation. Returns whether the upload is done and any error details.

ParametersJSON Schema
NameRequiredDescriptionDefault
operation_nameYesUpload operation resource name, e.g. "fileSearchStores/abc123/upload/operations/op789"

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint=false, and openWorldHint, so safety is covered. The description adds genuine value beyond that by disclosing the response content (done status and error details) for a tool with no output schema.

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

Conciseness5/5

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

Two short sentences, front-loaded with the purpose and followed by the return content. No filler, no redundancy.

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

Completeness4/5

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

For a single-parameter, read-only status check with no output schema, the description covers the essential return shape (done state, error details). It stops short of describing the operation lifecycle (e.g., that the name may expire or how to recover from a failed operation).

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

Parameters3/5

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

Schema description coverage is 100%, so the single parameter is fully documented in the schema, including a concrete resource-name example. The description adds no meaning beyond what the schema already provides, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource: 'Check the status of a file upload operation.' It is somewhat distinguishable from the generic sibling gemini_get_operation, but it never explicitly names or contrasts with that sibling, leaving the differentiation to inference.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is polled after gemini_upload_to_store or gemini_import_file_to_store, but the description states no when-to-use condition, no polling guidance, and no exclusions relative to gemini_get_operation.

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

gemini_import_file_to_storeA

Import a file from the Gemini Files API into a File Search store. Use this for large files that were uploaded separately via the Files API. Returns an operation to track import progress.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_nameYesGemini file resource name, e.g. "files/abc-123"
store_nameYesStore resource name, e.g. "fileSearchStores/abc123"
custom_metadataNoCustom metadata key-value pairs for filtering (max 20)

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark this as a non-read-only, non-destructive, non-open-world write. The description adds the meaningful behavioral fact that the call returns an operation object for tracking progress, i.e. it is asynchronous, which is not derivable from annotations and matters for an agent's follow-up handling. It does not disclose auth needs or any mutate-vs-reference semantics.

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

Conciseness5/5

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

Three short sentences with zero padding: what it does, when to reach for it, and what it returns, in that order. Nothing restates the name or title and nothing could be dropped without losing information.

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

Completeness4/5

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

With no output schema, the description usefully compensates by stating the return is an operation. The only real gap is not pointing at the sibling operation-polling tool for the async follow-up, which would close the loop for a multi-step import flow.

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

Parameters3/5

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

Schema description coverage is 100% and all three parameters, including the custom_metadata shape and its 20-item cap, are documented in the schema. The description adds no parameter-level detail, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource chain: import a file from the Gemini Files API into a File Search store. The scenario sentence ('large files that were uploaded separately via the Files API') implicitly separates it from the sibling gemini_upload_to_store, but no sibling is named, so an agent must still infer the boundary.

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

Usage Guidelines4/5

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

Gives a clear selection condition: use this when the file was already uploaded separately via the Files API, which contrasts with an upload-from-scratch path. It stops short of naming gemini_upload_to_store as the alternative or stating a when-not condition, so it is clear context without explicit routing.

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

gemini_list_documentsA
Read-only

List documents in a Gemini File Search store. Returns document names, display names, state, size, and MIME types.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNoNumber of documents to return per page (default 10, max 20)
page_tokenNoToken for next page from previous response
store_nameYesStore resource name, e.g. "fileSearchStores/abc123"

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds value by enumerating the returned fields (names, display names, state, size, MIME types), but says nothing about pagination behavior or ordering, which matter for a list operation.

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

Conciseness5/5

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

Two compact sentences, front-loaded with the purpose and followed by the return shape. No filler and nothing redundant with the schema.

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

Completeness4/5

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

With no output schema, the description usefully enumerates returned fields, and annotations cover the safety profile. Pagination is handled by the schema, but the description could note that results are paged, a common pitfall for list tools.

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

Parameters3/5

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

Schema description coverage is 100%: page_size, page_token, and store_name all carry their own schema descriptions including defaults and limits. The description adds no parameter-level detail, so the baseline 3 applies.

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

Purpose4/5

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

The description gives a specific verb and resource ('List documents in a Gemini File Search store'), which cleanly separates it from gemini_list_stores (lists stores) and gemini_get_document (retrieves one). It stops short of explicitly naming those siblings, so an agent must infer the distinction from the noun alone.

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

Usage Guidelines3/5

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

Usage is implied by the scope: enumerate documents within a known store. However, there is no explicit guidance on when to prefer this over gemini_get_document for a single document, and no mention of required store existence or prerequisites.

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

gemini_list_storesA
Read-only

List all Gemini File Search stores. Returns store names, display names, and timestamps. Use to see available knowledge bases.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNoNumber of stores to return per page (default 10, max 20)
page_tokenNoToken for next page from previous response

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description usefully adds the return shape (names, display names, timestamps), but says nothing about pagination behavior or empty-result handling beyond what the schema implies.

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

Conciseness5/5

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

Two short sentences, action first, return shape second, usage hint third. No filler and nothing buried.

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

Completeness4/5

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

For a simple read-only list tool with full schema coverage, annotations, and no output schema, the description is nearly sufficient. Only pagination/return-envelope behavior is left implicit.

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

Parameters3/5

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

Schema coverage is 100%, so both page_size and page_token are fully documented in the schema with defaults and limits. The description adds no parameter meaning beyond that, so the baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb and resource ('List all Gemini File Search stores') and names the returned fields. It is clearly distinguishable from gemini_get_store or gemini_create_store, but it does not explicitly name or contrast with any sibling.

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

Usage Guidelines3/5

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

'Use to see available knowledge bases' implies a browsing/discovery context but gives no when-not guidance, no note on how this differs from gemini_list_documents, and no mention of how pagination interacts with repeated calls.

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

gemini_rag_queryA
Read-only

Query your documents using Gemini RAG. Sends a natural language query grounded in your File Search stores. Returns AI-generated answer with source citations from your documents.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoGemini model to use (default: "gemini-2.5-flash-lite"). Options: gemini-2.5-flash-lite, gemini-2.5-flash, gemini-2.5-pro
queryYesNatural language query to search your documents
store_namesYesArray of store resource names to search, e.g. ["fileSearchStores/abc123"]
metadata_filterNoOptional metadata filter expression (Google AIP-160 syntax)

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds genuinely useful behavior beyond that: it returns an AI-generated answer with source citations grounded in File Search stores, which is not inferable from annotations. It omits any mention of latency, cost differences across models, or failure modes for nonexistent stores.

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

Conciseness5/5

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

Three short sentences, purpose front-loaded, with the retrieval mechanism and return format each getting exactly one clause. Nothing is redundant or padded.

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

Completeness4/5

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

No output schema exists, but the description covers the return shape (generated answer plus citations), and the schema fully documents inputs. What is missing is any prerequisite linking to sibling tools for discovering valid store names and a note on behavior when a store is empty or invalid.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (model, query, store_names, metadata_filter) are already documented with examples and valid values. The description only alludes to store_names via 'grounded in your File Search stores' and adds no syntax or formatting detail beyond the schema.

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

Purpose5/5

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

States a specific verb (query) and resource (your documents) plus the grounding mechanism (File Search stores). The sibling list is entirely store/document CRUD management, so this tool's retrieval role is unambiguous without opening any schema.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: an agent can infer this is for answering questions over indexed documents, but there is no explicit when-to-use/when-not-to-use guidance. It also doesn't tell the agent to call gemini_list_stores first to obtain valid store resource names, which is a required input.

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

gemini_upload_to_storeA

Upload content directly to a Gemini File Search store. Accepts text content or base64-encoded binary. For large files, use gemini_import_file_to_store instead. Returns an operation to track upload progress.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe content to upload. Plain text by default, or base64-encoded if content_encoding is "base64"
mime_typeYesMIME type of the content, e.g. "text/plain", "application/pdf", "text/markdown"
store_nameYesStore resource name, e.g. "fileSearchStores/abc123"
display_nameNoDisplay name for the document (optional)
custom_metadataNoCustom metadata key-value pairs for filtering (max 20)
content_encodingNoHow the content is encoded: "text" (default) or "base64" for binary files

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false), so the bar is lower. The description adds real context beyond them: accepted input forms (text or base64 binary) and that the result is an operation to track progress. It stops short of noting that the target store must already exist or any quota limits.

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

Conciseness5/5

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

Three short sentences, front-loaded with the core action, then the alternative, then the return type. No sentence is wasted and each carries distinct information.

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

Completeness4/5

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

For a write tool with no output schema, the description covers the action, input formats, the large-file alternative, and the asynchronous return shape. It omits the precondition that store_name must reference an existing store, which is a minor but real gap for an upload tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all six parameters including the base64 encoding toggle and metadata cap. The description only echoes the text-vs-base64 distinction, adding little beyond structured data. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource (upload content directly to a Gemini File Search store) and immediately distinguishes itself from the sibling gemini_import_file_to_store. An agent can separate it from other store/document tools without opening the schema.

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

Usage Guidelines5/5

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

Explicitly routes the agent: 'For large files, use gemini_import_file_to_store instead.' That names the alternative and the condition that selects it, which is exactly what usage guidance should do.

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

Tool Schema Changelog

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

  1. 12 tool updatesv1.0.2
    • First observedgemini_create_store
    • First observedgemini_delete_document
    • First observedgemini_delete_store
    • First observedgemini_get_document
    • First observedgemini_get_operation
    • First observedgemini_get_store
    • First observedgemini_get_upload_operation
    • First observedgemini_import_file_to_store
    • First observedgemini_list_documents
    • First observedgemini_list_stores
    • First observedgemini_rag_query
    • First observedgemini_upload_to_store

TDQS

A3.9/5.0

Scored across 12 tools

Disambiguation4/5

Most tools target a distinct resource+action (store CRUD, document CRUD, query), but two pairs risk confusion: gemini_get_operation vs gemini_get_upload_operation both poll operation status, and gemini_upload_to_store vs gemini_import_file_to_store both ingest content. The descriptions do clarify the distinctions (store vs upload operations; direct content vs Files API), keeping it mostly clean.

Naming Consistency5/5

Every tool follows the same gemini_<verb>_<noun> convention (gemini_list_stores, gemini_get_store, gemini_delete_document, gemini_rag_query). The pattern is predictable and uniform across all 12 tools.

Tool Count5/5

12 tools is well-scoped for a RAG/file-search server, covering store lifecycle, document lifecycle, ingestion, operation polling, and query. Each tool earns its place without redundancy.

Completeness4/5

Store lifecycle (create/get/list/delete) and document read/delete plus ingestion and query are well covered. Minor gaps exist: no store/document update or rename operation, and document creation is only via upload/import, but core workflows are complete.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A complete MCP server for Retrieval-Augmented Generation with file management and vector memory for agents. Supports multiple document formats (PDF, DOCX, TXT, MD, CSV, JSON) with semantic search using Hugging Face embeddings and ChromaDB for efficient vector storage.
    11
    6 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    RAG-enabled MCP server that uses Google Gemini for embeddings and Supabase for vector storage, enabling semantic search and document similarity matching through natural language queries.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that provides 8 local RAG tools using LlamaIndex and Ollama, enabling AI-powered document querying, summarization, analysis, and comparison over PDFs, DOCX, XLSX, and CSV files.
    -