mcp-google-gdrive
An MCP server for the Google Drive API. Lets AI assistants list, read, create, and manage files in Google Drive with automatic Google Workspace format conversion (Docs to Markdown, Sheets to CSV, Slides to plain text).
Tools
| Tool | Description | Status |
|---|---|---|
| gdrive_list_files | List and search files with query filtering and pagination | Available |
| gdrive_get_metadata | Get detailed file metadata by ID | Available |
| gdrive_read_file | Read file content with automatic Workspace format conversion | Available |
| gdrive_create_file | Create a new file with content | Available |
| gdrive_create_folder | Create a new folder | Available |
| gdrive_update_file | Update existing file content | Planned |
| gdrive_delete_file | Trash or permanently delete a file | Planned |
| gdrive_move_file | Move a file between folders | Planned |
| gdrive_copy_file | Copy a file with optional rename | Planned |
| gdrive_export_doc | Export Google Doc to Markdown, HTML, or PDF | Planned |
| gdrive_export_sheet | Export Google Sheet to CSV or JSON | Planned |
| gdrive_export_slides | Export Google Slides to text or PDF | Planned |
| gdrive_create_doc | Create a Google Doc from Markdown | Planned |
| gdrive_update_doc | Update a Google Doc with Markdown content | Planned |
Prerequisites
- Node.js 18 or later
- A Google Cloud project with the Google Drive API enabled
- OAuth2 desktop application credentials
Setup
- Create a project in the Google Cloud Console and enable the Google Drive API
- Create OAuth2 credentials (Application type: Desktop app) and download the JSON file
- Save the credentials file:
mkdir -p ~/.config/mcp-google-gdrive
cp ~/Downloads/client_secret_*.json ~/.config/mcp-google-gdrive/credentials.json
chmod 600 ~/.config/mcp-google-gdrive/credentials.json
- Run the one-time authorization flow:
npx mcp-google-gdrive --auth
This opens a URL for Google consent. After granting access, paste the authorization code back into the terminal. The token is saved to ~/.config/mcp-google-gdrive/token.json.
Configuration
Claude Code
Add to ~/.claude/settings.json:
{
"mcpServers": {
"google-drive": {
"command": "npx",
"args": ["-y", "mcp-google-gdrive"]
}
}
}
VS Code / Cursor
Add to .vscode/mcp.json:
{
"servers": {
"google-drive": {
"command": "npx",
"args": ["-y", "mcp-google-gdrive"]
}
}
}
Gemini CLI
Add to ~/.gemini/settings.json:
{
"mcpServers": {
"google-drive": {
"command": "npx",
"args": ["-y", "mcp-google-gdrive"]
}
}
}
Authentication
The server uses OAuth2 for Google Drive access. On first run with --auth, it generates an authorization URL for browser-based consent. After authorization, tokens are stored locally at ~/.config/mcp-google-gdrive/token.json with restricted file permissions (0600).
Access tokens expire after one hour and are refreshed automatically using the stored refresh token. Token refresh is transparent and requires no user interaction.
License
MIT