Gemini RAG MCP Server
# Gemini RAG MCP Server
A Model Context Protocol (MCP) server that provides RAG (Retrieval-Augmented Generation) capabilities using Google's Gemini API File Search feature. This server enables AI applications to create knowledge bases and retrieve information from uploaded documents.
## Features
- ✅ **File Search RAG**: Create and manage knowledge bases using Gemini's File Search API
- ✅ **Document Upload**: Upload files and text content to create searchable knowledge bases
- ✅ **Information Retrieval**: Query knowledge bases to retrieve relevant information
- ✅ **Configurable Models**: Choose Gemini models via environment variable
- ✅ **MCP Protocol**: Full compatibility with Model Context Protocol
- ✅ **Type-Safe**: Full TypeScript support with strict mode enabled
- ✅ **Dual Transport Support**: stdio (default) and HTTP transports
- ✅ **Production-Ready**: Logging, error handling, and configuration management
## Prerequisites
- Node.js >= 22.10.0
- pnpm >= 10.19.0
- Google API Key with Gemini API access
## Installation
### Using with Claude Desktop (Recommended)
Add the following to your Claude Desktop configuration file:
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"gemini-rag-mcp": {
"command": "npx",
"args": ["-y", "@r_masseater/gemini-rag-mcp"],
"env": {
"GOOGLE_API_KEY": "your_google_api_key_here",
"STORE_DISPLAY_NAME": "your_store_name"
}
}
}
}
```
**Required Environment Variables:**
- `GOOGLE_API_KEY`: Your Google API key with Gemini API access
- `STORE_DISPLAY_NAME`: Display name for your vector store/knowledge base
**Optional Environment Variables:**
- `GEMINI_MODEL`: Gemini model to use for queries (default: `gemini-2.5-pro`)
- Options: `gemini-2.5-pro`, `gemini-2.5-flash`
After configuration, restart Claude Desktop to load the server.
## Development
### 1. Clone the repository
```bash
git clone https://github.com/masseater/gemini-rag-mcp.git
cd gemini-rag-mcp
```
### 2. Install dependencies
```bash
pnpm install
```
### 3. Run in development mode
```bash
# stdio transport (default)
pnpm run dev
# HTTP transport (with hot reload)
pnpm run dev:http
```
## Environment Variables
**Required:**
- `GOOGLE_API_KEY`: Google API key with Gemini API access
- `STORE_DISPLAY_NAME`: Display name for vector store/knowledge base
**Optional:**
- `GEMINI_MODEL`: Gemini model for queries (default: gemini-2.5-pro)
- `LOG_LEVEL`: Logging level (error|warn|info|debug, default: info)
- `DEBUG`: Enable debug console output (true|false, default: false)
- `PORT`: HTTP server port (default: 3000)
## Available Tools
Once configured with Claude Desktop, the following tools are available:
- **upload_file**: Upload document files to the knowledge base
- **upload_content**: Upload text content directly to the knowledge base
- **query**: Query the knowledge base using RAG
## Resources
- [Model Context Protocol Documentation](https://modelcontextprotocol.io)
- [Gemini API Documentation](https://ai.google.dev/gemini-api/docs)
## License
MIT License
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: querying for answers, uploading text content, and uploading files. There is no overlap in functionality, and an agent can easily tell them apart based on their specific roles in the RAG workflow.
All tool names follow a consistent verb_noun pattern (query, upload_content, upload_file) with clear, descriptive terms. The naming is uniform and predictable, making it easy for agents to understand and use the tools.
With 3 tools, the server is well-scoped for a RAG system, covering core operations: querying, uploading text, and uploading files. It is slightly lean but reasonable, as it handles the essential workflow without unnecessary complexity.
The tool set covers the main RAG operations: ingestion (uploading content/files) and retrieval (querying). Minor gaps might include tools for managing or deleting uploaded content, but the core functionality is complete for basic RAG use cases.