A powerful Model Context Protocol (MCP) server that provides seamless integration with Google Drive, allowing AI models to search, list, and read files from Google Drive.
Search for files in your Google Drive with powerful full-text search capabilities.
- Input:
{ "query": "string (your search query)" } - Output: List of files with:
- File name
- MIME type
- File ID
- Last modified time
- File size
Read file contents directly using a Google Drive file ID.
- Input:
{ "file_id": "string (Google Drive file ID)" } - Output: File contents with appropriate format conversion
The server intelligently handles different Google Workspace file types:
- 📝 Google Docs → Markdown
- 📊 Google Sheets → CSV
- 📊 Google Presentations → Plain text
- 🎨 Google Drawings → PNG
- 📄 Text/JSON files → UTF-8 text
- 📦 Other files → Base64 encoded
- Node.js (v16 or higher)
- npm or yarn
- A Google Cloud Project
- A Google Workspace or personal Google account
- Docker (optional, for containerized deployment)
-
Create a Google Cloud Project
- Visit the Google Cloud Console
- Click "New Project"
- Enter a project name
- Click "Create"
- Wait for the project to be created and select it
-
Enable the Google Drive API
- Go to the API Library
- Search for "Google Drive API"
- Click on "Google Drive API"
- Click "Enable"
- Wait for the API to be enabled
-
Configure OAuth Consent Screen
- Navigate to OAuth consent screen
- Select User Type:
- "Internal" if you're using Google Workspace
- "External" for personal Google accounts
- Click "Create"
- Fill in the required fields:
- App name: "MCP GDrive Server"
- User support email: your email
- Developer contact email: your email
- Click "Save and Continue"
- On the "Scopes" page:
- Click "Add or Remove Scopes"
- Add
https://www.googleapis.com/auth/drive.readonly - Click "Update"
- Click "Save and Continue"
- Review the summary and click "Back to Dashboard"
-
Create OAuth Client ID
- Go to Credentials
- Click "Create Credentials" at the top
- Select "OAuth client ID"
- Choose Application type: "Desktop application" (Important: Use Desktop app type)
- Name: "MCP GDrive Server Desktop Client"
- Click "Create"
- Download the JSON file
- Save as
credentials/gcp-oauth.keys.json
# Clone the repository
git clone https://github.com/felores/gdrive-mcp-server.git
cd gdrive-mcp-server
# Install dependencies
npm install
# Build the project
npm run build-
Create a credentials directory and place your OAuth keys:
mkdir -p credentials # Move your downloaded OAuth JSON file to: # credentials/gcp-oauth.keys.json
-
Run the authentication command:
node dist/index.js auth
-
Complete the OAuth flow in your browser
-
Credentials will be saved in
credentials/.gdrive-server-credentials.json
# Start the server
node dist/index.js- Build the Docker image:
docker build -t gdrive-mcp-server .- Run the container:
docker run --rm -i \
-v "$(pwd)/credentials:/app/credentials:ro" \
-e GOOGLE_APPLICATION_CREDENTIALS=/app/credentials/.gdrive-server-credentials.json \
-e MCP_GDRIVE_CREDENTIALS=/app/credentials/gcp-oauth.keys.json \
gdrive-mcp-serverAdd this configuration to your MCP client settings:
{
"mcpServers": {
"gdrive": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v",
"${workspaceFolder}/credentials:/app/credentials:ro",
"-e",
"GOOGLE_APPLICATION_CREDENTIALS=/app/credentials/.gdrive-server-credentials.json",
"-e",
"MCP_GDRIVE_CREDENTIALS=/app/credentials/gcp-oauth.keys.json",
"gdrive-mcp-server"
]
}
}
}For local (non-Docker) deployment:
{
"mcpServers": {
"gdrive": {
"command": "node",
"args": ["path/to/gdrive-mcp-server/dist/index.js"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "path/to/gdrive-mcp-server/credentials/.gdrive-server-credentials.json",
"MCP_GDRIVE_CREDENTIALS": "path/to/gdrive-mcp-server/credentials/gcp-oauth.keys.json"
}
}
}
}- The server has read-only access to Google Drive
- Credentials are stored in the
credentialsdirectory - OAuth credentials and tokens are excluded from version control
- Use Docker volume mounts with
:ro(read-only) flag for credentials - Consider using a dedicated Google account with limited access
- Review and revoke OAuth access if needed
-
"No server info found" Error
- Verify Docker is running
- Check if credentials files exist and are mounted correctly
- Ensure proper file permissions
-
Authentication Issues
- Verify OAuth credentials are for a Desktop application type
- Re-run authentication with
node dist/index.js auth - Check environment variables are set correctly
-
File Access Issues
- Verify Google Drive API is enabled
- Check file permissions in Google Drive
- Ensure OAuth scope includes drive.readonly
This MCP server is licensed under the MIT License. See the LICENSE file for details.