Skip to main content
Glama
Themetralla3000

google-drive-mcp-server

README.md
# Google Drive MCP Server

A Model Context Protocol (MCP) server for Google Drive integration. This server allows AI assistants to interact directly with your Google Drive, providing tools to read, search, list folders, and upload files.

Built with TypeScript and utilizing the official Google APIs Node.js Client.

---

## Available Modules & Tools

### Files & Folders
Manage and search your Google Drive contents.
* `list_recent_files`: Lists recent files from Google Drive, ordered by recency, modification date, or name.
* `search_files`: Searches for files and folders in Google Drive by name or content. Accepts plain text or Drive query syntax.
* `list_folder`: Lists the contents (files and subfolders) of a specific Google Drive folder by its ID. Works with both My Drive and Shared Drives.
* `read_file_content`: Reads the text content of a Google Drive file (Docs, Sheets, PDFs, plain text).
* `get_file_metadata`: Returns metadata of a Drive file: name, MIME type, size, owners, modification date, parent folders, and view link.
* `upload_file`: Uploads a file to Google Drive. Pass text content directly or base64-encoded content for binary files.
* `upload_file_from_path`: Uploads a file from a local path on the server to Google Drive. Useful for processing generated files.

---

## Setup & Installation

1. Clone the repository:
   ```bash
   git clone https://github.com/Themetralla3000/google-drive-mcp-server.git
   cd google-drive-mcp-server
   ```
2. Install dependencies:
   ```bash
   npm install
   ```
3. Copy the environment template and configure your credentials:
   ```bash
   cp .env.example .env
   ```
4. Build the project:
   ```bash
   npm run build
   ```

## Configuration

You must provide Google Drive API credentials via the `.env` file. These can be obtained from the Google Cloud Console by creating an OAuth 2.0 Client ID.

```env
GOOGLE_DRIVE_CLIENT_ID=your-client-id
GOOGLE_DRIVE_CLIENT_SECRET=your-client-secret
GOOGLE_DRIVE_REFRESH_TOKEN=your-refresh-token
```

## Usage with Claude Desktop / Cursor

To use this MCP with Claude Desktop or Cursor, add the following configuration to your MCP config file (e.g., `claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "google-drive": {
      "command": "node",
      "args": ["/absolute/path/to/google-drive-mcp-server/build/src/index.js"],
      "env": {
        "GOOGLE_DRIVE_CLIENT_ID": "your-client-id",
        "GOOGLE_DRIVE_CLIENT_SECRET": "your-client-secret",
        "GOOGLE_DRIVE_REFRESH_TOKEN": "your-refresh-token"
      }
    }
  }
}
```

## License

MIT License

TDQS

A3.7/5.0

Scored across 7 tools

Disambiguation4/5

Most tools have distinct purposes, but the two upload tools ('upload_file' and 'upload_file_from_path') could cause confusion since they differ only in how content is provided.

Naming Consistency5/5

All tools use consistent verb_noun snake_case naming, with no deviations from the pattern.

Tool Count5/5

Seven tools is well-scoped for a Drive server, covering essential operations without being excessive.

Completeness3/5

Common operations like creating folders, deleting files, and updating metadata are missing, leaving notable gaps for typical Drive workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues