Secure access to Google Drive, Docs, Sheets, Slides, and Calendar through MCP.
Runs on your machine from its package; the steps are below.
At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y @piotr-agier/google-drive-mcp
MCP client config
{
"mcpServers": {
"google-drive-mcp": {
"command": "npx",
"args": [
"-y",
"@piotr-agier/google-drive-mcp"
]
}
}
}Connect an MCP client to Google Drive, Docs, Sheets, Slides, and Calendar through one self-hosted server. Search and organize files, create and edit Workspace content, manage sharing, and automate multi-step workflows while keeping control of the Google identity and credentials used for every call.
gdrive:/// resource interface supports direct reading and discovery.This project remains focused on deep Drive and editor workflows rather than attempting to expose every Google Workspace API.
Compatibility is determined by the transport and authentication flow a client supports.
| Client type | Transport | Recommended mode |
|---|---|---|
| Claude Desktop | stdio | Local OAuth |
| Other local MCP clients, including Gemini CLI | stdio | Local OAuth |
| claude.ai custom connectors | Streamable HTTP | Team mode |
| Other remote MCP clients | Streamable HTTP | Single identity behind access control, or team mode with OAuth 2.1 |
See Client configuration for configuration examples and transport requirements.
In a Google Cloud project:
~/.config/google-drive-mcp/gcp-oauth.keys.json
The setup guide has the complete Google Cloud walkthrough and alternative credential locations.
npx -y @piotr-agier/google-drive-mcp auth
Complete the Google consent flow in the browser. Tokens are stored by default at ~/.config/google-drive-mcp/tokens.json.
For clients that use the common mcpServers configuration shape:
{
"mcpServers": {
"google-drive": {
"command": "npx",
"args": ["-y", "@piotr-agier/google-drive-mcp"]
}
}
}
Restart the client after saving its configuration. Claude Desktop paths and HTTP examples are documented in Client configuration.
Ask your client:
Run authGetStatus and tell me which Google account is active.
Then try a read-only Drive request:
Search my Google Drive for files modified in the last seven days.
If the identity is wrong or search returns no files, use the troubleshooting guide.
Find PDF files in /Reports, create an Archive folder there, and move files older
than one year into it.
Create a Google Sheet for monthly results, summarize it in a Google Doc, and
create a short Google Slides presentation from the summary.
Find the "Project Plan" document, replace the old launch date, format the new
date in bold, and add a comment describing the change.
Create a Calendar event with a Google Meet link and attach the project brief
from Drive.
Every section that used to live in this README is now in one of these guides.
| Guide | Contents |
|---|---|
| Setup | Requirements, Google Cloud APIs, OAuth credentials, and installation |
| Client configuration | Supported transports and client configuration |
| Authentication | Local OAuth, multi-account, service accounts, external tokens, and scopes |
| Configuration | CLI flags, environment variables, defaults, and precedence |
| Deployment | Docker, Streamable HTTP, team mode, and reverse-proxy security |
| Tool reference | All Drive, Docs, Sheets, Slides, Calendar, and account tools |
| Troubleshooting | Authentication, API, identity, Docker, and rate-limit problems |
| Development | Repository structure, build commands, tests, and contributions |
tokens.json.127.0.0.1 unless the server is protected by TLS and access control.team-store.json as a secret because it contains members' Google refresh tokens.See Authentication and Deployment for the complete security and identity model.
See the development guide to build and test the project.