G
Google Drive MCP
by @festusev
An MCP Server for Google Drive
Created 5/29/2025
Updated 4 days ago
README
Repository documentation and setup instructions
Google Drive MCP Server
A Model Context Protocol (MCP) server for Google Drive integration, built with FastMCP. Provides tools for reading, writing, searching, and listing Google Drive files with a focus on Google Docs operations.
Features
- File Operations: List and search files in Google Drive with pagination
- Document Reading: Read Google Docs content with pagination and tab selection
- Document Writing: Write to Google Docs with tab selection and range operations
- Authentication: Service account authentication for Google Drive API access
- Pagination: Handle large documents and file lists efficiently
Setup
1. Install Dependencies
uv sync
2. Google API Setup
- Go to the Google Cloud Console
- Create a new project or select an existing one
- Enable the Google Drive API and Google Docs API
- Create a service account and generate a key
- Download the service account key file and save it as
service-account-key.json
in the project root - Share any Google Drive files/folders you want to access with the service account email
3. Running the Server
python -m google_drive_mcp.server
No authentication flow is required - the service account will authenticate automatically using the key file.
Available Tools
list_files
List files in Google Drive with optional filtering and pagination.
Parameters:
folder_id
(optional): Folder ID to list files from (default: root)page_size
(optional): Number of files per page (default: 50, max: 100)page_token
(optional): Token for paginationmime_type
(optional): Filter by MIME type (e.g., 'application/vnd.google-apps.document')
search_files
Search for files in Google Drive using query syntax.
Parameters:
query
: Search query (e.g., 'name contains "report"')page_size
(optional): Number of files per page (default: 50, max: 100)page_token
(optional): Token for pagination
read_document
Read content from a Google Docs document with pagination.
Parameters:
document_id
: Google Docs document IDtab_id
(optional): Specific tab ID to read fromstart_index
(optional): Starting character index (default: 0)length
(optional): Number of characters to read (default: 5000, max: 10000)
write_document
Write content to a Google Docs document.
Parameters:
document_id
: Google Docs document IDcontent
: Content to writetab_id
(optional): Specific tab ID to write toinsert_index
(optional): Index where to insert content (default: end)replace_start
(optional): Start index for content replacementreplace_end
(optional): End index for content replacement
Usage Examples
Search for Google Docs
# Search for documents containing "report"
search_files(query='name contains "report" and mimeType="application/vnd.google-apps.document"')
Read a Document with Pagination
# Read first 5000 characters
read_document(document_id="your_doc_id")
# Read next 5000 characters
read_document(document_id="your_doc_id", start_index=5000)
Write to a Specific Tab
# Write to a specific tab in a document
write_document(
document_id="your_doc_id",
content="Hello, World!",
tab_id="your_tab_id"
)
Development
Project Structure
google_drive_mcp/
├── __init__.py
├── auth.py # Google Drive authentication
└── server.py # FastMCP server implementation
Running in Development
# Install in development mode
uv pip install -e .
# Run the server
python -m google_drive_mcp.server
License
This project is licensed under the MIT License.
Quick Setup
Installation guide for this server
Install Package (if required)
uvx google_drive_mcp
Cursor configuration (mcp.json)
{
"mcpServers": {
"festusev-google-drive-mcp": {
"command": "uvx",
"args": [
"google_drive_mcp"
]
}
}
}