google-drive-rag-mcp
This server enables LLMs to securely search, browse, and read files within designated Google Drive folders via read-only access, acting as a knowledge base or research assistant.
Key Capabilities:
List Files (
list_files): Discover files in target folders, with optional filtering by filename substring (case-insensitive), file type (document,spreadsheet,pdf,image,text), specific subfolder ID, or recursive search through nested subfolders.List Folders (
list_folders): Browse subfolders within target Google Drive folders, optionally recursively, to help scope subsequent file searches.Read File (
read_file): Retrieve the full text content of a specific file by its Drive ID.Search Content (
search_content): Search inside file contents (not just filenames) for keywords or phrases, returning matching files with context snippets. Supports filtering by file type, recursive subfolder search, and a configurable result limit.
Supported File Types: Google Docs (exported as plain text), Google Sheets (exported as CSV), PDFs (text extracted), and plain text files.
Access Control: Scoped to specific folders (TARGET_FOLDER_IDS) with read-only permissions, authenticated via a Google Service Account.
Use Cases: Research, team knowledge bases, study note organization, and Q&A over documents stored in Google Drive.
Allows searching and reading files within a designated Google Drive folder. Supports text content extraction from Google Docs, Google Sheets (exported as CSV), PDF, and plain text files.
google-drive-rag-mcp
A local MCP server that lets LLMs (Claude, etc.) securely search and read files within a single, designated Google Drive folder.
Overview
Scoped to specified folders — never accesses files outside
TARGET_FOLDER_IDSAuthenticated via Google Service Account (no personal OAuth required)
Read-only access (
drive.readonly,documents.readonly)Built with FastMCP on Python 3.11+
Related MCP server: Google Drive MCP Server
Use Cases
Research: Ask Claude to find and summarize documents stored in a shared Google Drive folder
Team knowledge base: Search internal documents, reports, or meeting notes by keyword
Study notes: Retrieve lecture notes or course materials from a Drive folder and ask questions about them
Document Q&A: "What does the report from last month say about X?" — Claude reads and answers
MCP Tools
Tool | Description |
| List files in the target folder, optionally filtered by name |
| Read text content of a supported file |
| Search inside file contents; returns matching files with context snippets |
Supported File Formats
Format | MIME Type | How it's read |
Google Docs |
| Exported as plain text |
Google Sheets |
| Exported as CSV |
| Text extracted via PyMuPDF | |
Plain text |
| Read directly |
MCP Setup
Step 1 — Create a GCP Project and Enable APIs
Open Google Cloud Console
Create a new project (or select an existing one)
Navigate to APIs & Services > Library
Search for and enable the following APIs:
Google Drive API
Google Docs API
Step 2 — Create a Service Account and Download the JSON Key
Navigate to APIs & Services > Credentials
Click Create Credentials > Service Account
Enter a name (e.g.,
drive-rag-reader) and click DoneClick the created service account, go to the Keys tab
Click Add Key > Create new key, select JSON, and download the file
Save the file to a secure location (e.g.,
~/.config/gcp/drive-rag-key.json)
Note: Never commit this file to Git. It is excluded by
.gitignore.
Step 3 — Share the Target Google Drive Folder
Open Google Drive
Right-click the target folder and select Share
Enter the service account email address (e.g.,
drive-rag-reader@your-project.iam.gserviceaccount.com)Found in GCP Console > IAM & Admin > Service Accounts
Set the role to Viewer and click Send
The folder ID is the last part of the folder URL:
https://drive.google.com/drive/folders/THIS_IS_THE_FOLDER_ID
Tip — Multiple folders: You can share a parent folder with the service account and set individual subfolders in
TARGET_FOLDER_IDS. Access to subfolders is inherited from the parent.Parent Folder ← Share with the service account (Viewer) ├── Project A ← Add this folder ID to TARGET_FOLDER_IDS └── Project B ← Add this folder ID to TARGET_FOLDER_IDS
.envexample:TARGET_FOLDER_IDS=project_a_folder_id,project_b_folder_id
Step 4 — Local Setup and Launch
# 1. Clone the repository
git clone https://github.com/your-username/google-drive-rag-mcp.git
cd google-drive-rag-mcp
# 2. Install dependencies
uv sync
# 3. Configure environment variables
cp .env.example .envEdit .env:
GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/service-account-key.json
TARGET_FOLDER_IDS=folder_id_1,folder_id_2Step 5 — Connect to Claude
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"google-drive-rag": {
"command": "uv",
"args": ["run", "python", "main.py"],
"cwd": "/path/to/google-drive-rag-mcp",
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account-key.json",
"TARGET_FOLDER_IDS": "folder_id_1,folder_id_2"
}
}
}
}Restart Claude Desktop to apply the changes.
Claude Code
claude mcp add google-drive-rag \
-e GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/service-account-key.json \
-e TARGET_FOLDER_IDS=folder_id_1,folder_id_2 \
-- uv run python /path/to/google-drive-rag-mcp/main.pyTo make it available across all projects, add --scope user:
claude mcp add --scope user google-drive-rag \
-e GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/service-account-key.json \
-e TARGET_FOLDER_IDS=folder_id_1,folder_id_2 \
-- uv run python /path/to/google-drive-rag-mcp/main.pyVerify the registration:
claude mcp listThis command only needs to be run once. The configuration is saved and loaded automatically on every Claude Code startup.
Re-run it only if you:
Change environment variables (folder IDs or credentials path)
Move
main.pyto a different pathNeed to reset the registration (
claude mcp remove google-drive-rag)
Team Deployment
This server uses a Google Service Account for authentication. For team deployments, issue a separate service account per member rather than sharing a single key.
Why separate accounts?
Auditability: Google Drive audit logs identify each service account individually.
Access revocation: Remove a member's access by deleting their service account only — no need to rotate a shared key or update everyone's configuration.
Least privilege: Each account can be scoped to only the folders that member needs.
Setup
Create one service account per team member in GCP (e.g.
alice-drive-rag@your-project.iam.gserviceaccount.com)Share the target Google Drive folder with each service account (Viewer)
Each member configures their own
.envwith their personal JSON key path
Note: The
.envfile alone is not sufficient for access — the service account JSON key file is the actual credential and must be kept secret by each individual.
Development
Run the server
uv run python main.pyStart the MCP server
uv run python main.pyLicense
Support
If you find this helpful, consider supporting the work:
Author
Maintenance
Latest Blog Posts
- 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/asamiile/google-drive-rag-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server