Google Drive MCP Server
Connect Google Drive to Claude Code with a simple double-click setup. This MCP server allows Claude to read, create, update, and manage files in your Google Drive.
Prerequisites
- Python 3.10 or higher
- A Google Account (personal or Google Workspace)
- Google Cloud Console access
Step 1: Create Google Cloud Credentials
1.1 Create a Google Cloud Project
- Go to Google Cloud Console
- Click the project dropdown at the top of the page
- Click New Project
- Enter a project name (e.g., "Google Drive MCP")
- Click Create
- Wait for the project to be created, then select it
1.2 Enable the Google Drive API
- In the Google Cloud Console, go to APIs & Services > Library
- Search for "Google Drive API"
- Click on Google Drive API
- Click Enable
1.3 Configure OAuth Consent Screen
- Go to APIs & Services > OAuth consent screen
- Select External (or Internal if using Google Workspace)
- Click Create
- Fill in the required fields:
- App name: Google Drive MCP
- User support email: Your email
- Developer contact email: Your email
- Click Save and Continue
- On the Scopes page, click Add or Remove Scopes
- Add these scopes:
https://www.googleapis.com/auth/drive.readonlyhttps://www.googleapis.com/auth/drive.filehttps://www.googleapis.com/auth/drive
- Click Update, then Save and Continue
- On the Test users page, click Add Users
- Add your email address
- Click Save and Continue
1.4 Create OAuth Client ID
- Go to APIs & Services > Credentials
- Click Create Credentials > OAuth client ID
- Select Desktop app as the application type
- Enter a name (e.g., "Google Drive MCP Desktop")
- Click Create
- Click Download JSON on the popup
- Rename the downloaded file to
credentials.json - Place
credentials.jsonin the project root directory
Important: The credentials must be of type "Desktop app", not "Web application".
Step 2: Install Dependencies
Option A: Using Virtual Environment (Recommended)
# Clone the repository
git clone https://github.com/david-valdivia/GoogleDriveMCP.git
cd GoogleDriveMCP
# Create virtual environment (Python 3.10+ required)
python3 -m venv .venv
# Activate virtual environment
# On macOS/Linux:
source .venv/bin/activate
# On Windows:
.venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
Option B: Global Installation
pip install -r requirements.txt
Step 3: Run the Setup GUI
# With virtual environment activated
python -m src.main
This opens the setup window where you can:
- Select your permission level (Read Only, Read + Create, or Full Access)
- Click "Connect to Google" to authenticate
- Complete the OAuth flow in your browser
- Click "Configure MCP" to select a project directory for Claude Code
Step 4: Build the Executable (Optional)
Build a standalone executable that doesn't require Python:
# With virtual environment activated
python build/build.py
Build Output
| Platform | Output | |----------|--------| | macOS | build/dist/Google Drive MCP.app and build/dist/googledrive-mcp | | Windows | build/dist/googledrive-mcp.exe | | Linux | build/dist/googledrive-mcp |
macOS Additional Requirements
If building on macOS, you need Tcl/Tk for the GUI:
# Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install Python with Tcl/Tk support
brew install python-tk@3.12
Step 5: Configure Claude Code
After authentication, the app automatically creates a .mcp.json file in your selected project directory. Alternatively, create it manually:
{
"mcpServers": {
"googledrive": {
"command": "/path/to/googledrive-mcp",
"args": ["--serve"]
}
}
}
Replace /path/to/googledrive-mcp with:
- Built executable: Full path to
googledrive-mcporgoogledrive-mcp.exe - From source: Full path to Python and script, e.g.:
{
"mcpServers": {
"googledrive": {
"command": "/path/to/.venv/bin/python",
"args": ["/path/to/GoogleDriveMCP/src/main.py", "--serve"]
}
}
}
Permission Levels
| Level | Scopes | Capabilities | |-------|--------|--------------| | Read Only | drive.readonly | View and search files | | Read + Create | drive.file | Above + create new files | | Full Access | drive | Read, create, update, delete, share |
Available MCP Tools
| Tool | Description | Required Permission | |------|-------------|---------------------| | list_files | List files in a folder or root | Read Only | | read_file | Read file contents (exports Google Docs to text) | Read Only | | search_files | Full-text search across Drive | Read Only | | list_folders | List all folders for navigation | Read Only | | get_sharing_info | View who has access to a file | Read Only | | create_file | Create a new file or Google Doc | Read + Create | | create_folder | Create a new folder | Read + Create | | update_file | Update file contents | Full Access | | delete_file | Move file to trash | Full Access | | move_file | Move file to different folder | Full Access | | copy_file | Copy a file | Full Access | | share_file | Share file with email address | Full Access |
Development
Run Tests
# With virtual environment activated
pytest -v
Project Structure
GoogleDriveMCP/
├── src/
│ ├── main.py # Entry point, mode detection
│ ├── gui.py # Setup GUI with tkinter
│ ├── server.py # MCP server implementation
│ ├── drive.py # Google Drive API wrapper
│ ├── auth.py # OAuth flow and token management
│ └── config.py # Platform-specific config paths
├── tests/ # Test files
├── build/
│ ├── build.py # Build script
│ └── googledrive-mcp.spec # PyInstaller spec
├── credentials.json # Your OAuth credentials (not committed)
├── requirements.txt # Python dependencies
└── README.md
Token Storage Location
Tokens are stored in platform-specific locations:
| Platform | Location | |----------|----------| | macOS | ~/Library/Application Support/GoogleDriveMCP/ | | Windows | %APPDATA%\GoogleDriveMCP\ | | Linux | ~/.config/GoogleDriveMCP/ |
Troubleshooting
"credentials.json not found"
Make sure credentials.json is in the project root directory (same folder as src/).
"Error 400: redirect_uri_mismatch"
Your OAuth credentials are configured as "Web application" instead of "Desktop app". Create new credentials with type "Desktop app".
"Access blocked: This app's request is invalid"
- Make sure you added yourself as a test user in the OAuth consent screen
- Verify the app is in "Testing" mode (not "In production")
"ModuleNotFoundError: No module named 'tkinter'"
On macOS with Homebrew Python: ``bash brew install python-tk@3.12 ``
On Ubuntu/Debian: ``bash sudo apt-get install python3-tk ``
MCP server not connecting in Claude Code
- Verify the path in
.mcp.jsonis correct and absolute - Restart Claude Code after creating/modifying
.mcp.json - Check that the executable has execute permissions:
chmod +x googledrive-mcp
License
MIT











