Google Drive MCP Server
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.
🚀 Features
Tools
1. gdrive_search
Search for files in your Google Drive with powerful full-text search capabilities.
2. gdrive_read_file
Read file contents directly using a Google Drive file ID.
Automatic File Format Handling
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
🛠️ Getting Started
Prerequisites
- Node.js (v16 or higher)
- npm or yarn
- A Google Cloud Project
- A Google Workspace or personal Google account
Detailed Google Cloud Setup
- Create a Google Cloud Project
* Visit the [Google Cloud Console](https://console.cloud.google.com/projectcreate)
* Click "New Project"
* Enter a project name (e.g., "MCP GDrive Server")
* Click "Create"
* Wait for the project to be created and select it
- Enable the Google Drive API
* Go to the [API Library](https://console.cloud.google.com/apis/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](https://console.cloud.google.com/apis/credentials/consent)
* 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](https://console.cloud.google.com/apis/credentials)
* Click "Create Credentials" at the top
* Select "OAuth client ID"
* Choose Application type: "Desktop app"
* Name: "MCP GDrive Server Desktop Client"
* Click "Create"
* In the popup:
* Click "Download JSON"
* Save the file
* Click "OK"
Set Up Credentials in Project
Create credentials directory
mkdir credentials
# Move and rename the downloaded JSON file
mv path/to/downloaded/client_secret_*.json credentials/gcp-oauth.keys.json
Installation
# 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
Authentication
Create a credentials directory and place your OAuth keys:
mkdir credentials
# Move your downloaded OAuth JSON file to the credentials directory as 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
🔧 Usage
As a Command Line Tool
# Start the server
node dist/index.js
Integration with Desktop App
Add this configuration to your app's server settings:
{
"mcpServers": {
"gdrive": {
"command": "node",
"args": ["path/to/gdrive-mcp-server/dist/index.js"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "path/to/gdrive-mcp-server/credentials/gcp-oauth.keys.json",
"MCP_GDRIVE_CREDENTIALS": "path/to/gdrive-mcp-server/credentials/.gdrive-server-credentials.json"
}
}
}
}
Replace path/to/gdrive-mcp-server
with the actual path to your installation directory.
Example Usage
Search for files :
// Search for documents containing "quarterly report"
const result = await gdrive_search({ query: "quarterly report" });
Read file contents :
// Read a specific file using its ID
const contents = await gdrive_read_file({ file_id: "your-file-id" });
🔒 Security
- All sensitive credentials are stored in the
credentials
directory
- OAuth credentials and tokens are excluded from version control
- Read-only access to Google Drive
- Secure OAuth 2.0 authentication flow
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
📝 License
This MCP server is licensed under the MIT License. See the LICENSE file for details.
🔍 Troubleshooting
If you encounter issues:
- Verify your Google Cloud Project setup
- Ensure all required OAuth scopes are enabled
- Check that credentials are properly placed in the
credentials
directory
- Verify file permissions and access rights in Google Drive
📚 Additional Resources