Skip to Content
MCP ServersCommunityGoogle Drive MCP Server

Google Drive MCP Server

View original on GitHub 

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

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

2. gdrive_read_file

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

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

  1. Create a Google Cloud Project

    • Visit the Google Cloud Console 
    • Click β€œNew Project”
    • Enter a project name (e.g., β€œMCP GDrive Server”)
    • Click β€œCreate”
    • Wait for the project to be created and select it
  2. 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
  3. 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”
  4. Create OAuth Client ID

    • Go to 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”
  5. 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

  1. 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
  2. Run the authentication command:

    node dist/index.js auth
  3. Complete the OAuth flow in your browser

  4. 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

  1. Search for files:

    // Search for documents containing "quarterly report" const result = await gdrive_search({ query: "quarterly report" });
  2. 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:

  1. Verify your Google Cloud Project setup
  2. Ensure all required OAuth scopes are enabled
  3. Check that credentials are properly placed in the credentials directory
  4. Verify file permissions and access rights in Google Drive

πŸ“š Additional Resources

Last updated on