Google Drive & Sheets

by isaacphi

209 stars
3.4k downloads
Not rated
GitHub

About

Integrates Google Drive and Sheets functionality for file operations and spreadsheet data manipulation.

Details

Author
isaacphi
Repository
isaacphi/mcp-gdrive
GitHub stars
209
Downloads
3,382
License
MIT License
Categories
File Management, Other, Productivity, Developer Tools, Design, Workplace, AI, Search, Cloud Service, Infrastructure

- Search files in Google Drive by query and pagination.
- Read the contents of any Google Drive file.
- Read and update Google Sheets cells with flexible ranges.
- Export Google Workspace files (Docs, Sheets, Presentations, Drawings) to standard formats.
- Access all file types via gdrive:///<file_id> resource URIs.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Google Drive & Sheets
    Command (node, npx, python, etc.) npx
    Arguments
    • Argument 1 -y
    • Argument 2 @isaacphi/mcp-gdrive
    Environment
    • CLIENT_ID <CLIENT_ID>
    • CLIENT_SECRET <CLIENT_SECRET>
    • GDRIVE_CREDS_DIR /path/to/config/directory

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

1. Create a new Google Cloud project
2. Enable the Google Drive API
3. Configure an OAuth consent screen ("internal" is fine for testing)
4. Add OAuth scopes https://www.googleapis.com/auth/drive.readonly, https://www.googleapis.com/auth/spreadsheets
5. In order to allow interaction with sheets and docs you will also need to enable the Google Sheets API and Google Docs API in your workspaces Enabled API and Services section.
6. Create an OAuth Client ID for application type "Desktop App"
7. Download the JSON file of your client's OAuth keys
8. Rename the key file to gcp-oauth.keys.json and place into the path you specify with GDRIVE_CREDS_DIR (i.e. /Users/username/.config/mcp-gdrive)
9. Note your OAuth Client ID and Client Secret. They must be provided as environment variables along with your configuration directory.
10. You will also need to setup a .env file within the project with the following fields. You can find the Client ID and Client Secret in the Credentials section of the Google Cloud Console.

GDRIVE_CREDS_DIR=/path/to/config/directory
CLIENT_ID=<CLIENT_ID>
CLIENT_SECRET=<CLIENT_SECRET>

Make sure to build the server with either npm run build or npm run watch.

Next you will need to run node ./dist/index.js to trigger the authentication step

You will be prompted to authenticate with your browser. You must authenticate with an account in the same organization as your Google Cloud project.

Your OAuth token is saved in the directory specified by the GDRIVE_CREDS_DIR environment variable.

Authentication Prompt

To integrate this server with the desktop app, add the following to your app's server configuration:

{
  "mcpServers": {
    "gdrive": {
      "command": "npx",
      "args": ["-y", "@isaacphi/mcp-gdrive"],
      "env": {
        "CLIENT_ID": "<CLIENT_ID>",
        "CLIENT_SECRET": "<CLIENT_SECRET>",
        "GDRIVE_CREDS_DIR": "/path/to/config/directory"
      }
    }
  }
}

gdrive_search

Search for files in Google Drive. Parameters: query (string), pageToken (string, optional), pageSize (number, optional)

gdrive_read_file

Read contents of a file from Google Drive. Parameters: fileId (string)

gsheets_read

Read data from a Google Spreadsheet with flexible options for ranges and formatting. Parameters: spreadsheetId (string), ranges (array of strings, optional), sheetId (number, optional)

gsheets_update_cell

Update a cell value in a Google Spreadsheet. Parameters: fileId (string), range (string), value (string)

- gdrive_search

- Description: Search for files in Google Drive.
- Input:
- query (string): Search query.
- pageToken (string, optional): Token for the next page of results.
- pageSize (number, optional): Number of results per page (max 100).
- Output: Returns file names and MIME types of matching files.

- gdrive_read_file

- Description: Read contents of a file from Google Drive.
- Input:
- fileId (string): ID of the file to read.
- Output: Returns the contents of the specified file.

- gsheets_read

- Description: Read data from a Google Spreadsheet with flexible options for ranges and formatting.
- Input:
- spreadsheetId (string): The ID of the spreadsheet to read.
- ranges (array of strings, optional): Optional array of A1 notation ranges (e.g., ['Sheet1!A1:B10']). If not provided, reads the entire sheet.
- sheetId (number, optional): Specific sheet ID to read. If not provided with ranges, reads the first sheet.
- Output: Returns the specified data from the spreadsheet.

- gsheets_update_cell
- Description: Update a cell value in a Google Spreadsheet.
- Input:
- fileId (string): ID of the spreadsheet.
- range (string): Cell range in A1 notation (e.g., 'Sheet1!A1').
- value (string): New cell value.
- Output: Confirms the updated value in the specified cell.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "google drive & sheets": {
            "env": {
                "CLIENT_ID": "<CLIENT_ID>",
                "CLIENT_SECRET": "<CLIENT_SECRET>",
                "GDRIVE_CREDS_DIR": "/path/to/config/directory"
            },
            "args": [
                "-y",
                "@isaacphi/mcp-gdrive"
            ],
            "command": "npx"
        }
    }
}

Linux

{
    "env": {
        "CLIENT_ID": "<CLIENT_ID>",
        "CLIENT_SECRET": "<CLIENT_SECRET>",
        "GDRIVE_CREDS_DIR": "/path/to/config/directory"
    },
    "args": [
        "-y",
        "@isaacphi/mcp-gdrive"
    ],
    "command": "npx"
}

Macos

{
    "env": {
        "CLIENT_ID": "<CLIENT_ID>",
        "CLIENT_SECRET": "<CLIENT_SECRET>",
        "GDRIVE_CREDS_DIR": "/path/to/config/directory"
    },
    "args": [
        "-y",
        "@isaacphi/mcp-gdrive"
    ],
    "command": "npx"
}

Windows

{
    "env": {
        "CLIENT_ID": "<CLIENT_ID>",
        "CLIENT_SECRET": "<CLIENT_SECRET>",
        "GDRIVE_CREDS_DIR": "/path/to/config/directory"
    },
    "args": [
        "/c",
        "npx",
        "-y",
        "@isaacphi/mcp-gdrive"
    ],
    "command": "cmd"
}
# Google Drive server This MCP server integrates with Google Drive to allow listing, reading, and searching files, as well as the ability to read and write to Google Sheets. This project includes code originally developed by Anthropic, PBC, licensed under the MIT License from [this repo](https://github.com/modelcontextprotocol/servers/tree/main/src/gdrive). ## Components ### Tools - **gdrive_search** - **Description**: Search for files in Google Drive. - **Input**: - `query` (string): Search query. - `pageToken` (string, optional): Token for the next page of results. - `pageSize` (number, optional): Number of results per page (max 100). - **Output**: Returns file names and MIME types of matching files. - **gdrive_read_file** - **Description**: Read contents of a file from Google Drive. - **Input**: - `fileId` (string): ID of the file to read. - **Output**: Returns the contents of the specified file. - **gsheets_read** - **Description**: Read data from a Google Spreadsheet with flexible options for ranges and formatting. - **Input**: - `spreadsheetId` (string): The ID of the spreadsheet to read. - `ranges` (array of strings, optional): Optional array of A1 notation ranges (e.g., `['Sheet1!A1:B10']`). If not provided, reads the entire sheet. - `sheetId` (number, optional): Specific sheet ID to read. If not provided with ranges, reads the first sheet. - **Output**: Returns the specified data from the spreadsheet. - **gsheets_update_cell** - **Description**: Update a cell value in a Google Spreadsheet. - **Input**: - `fileId` (string): ID of the spreadsheet. - `range` (string): Cell range in A1 notation (e.g., `'Sheet1!A1'`). - `value` (string): New cell value. - **Output**: Confirms the updated value in the specified cell. ### Resources The server provides access to Google Drive files: - **Files** (`gdrive:///<file_id>`) - Supports all file types - Google Workspace files are automatically exported: - Docs → Markdown - Sheets → CSV - Presentations → Plain text - Drawings → PNG - Other files are provided in their native format ## Getting started 1. [Create a new Google Cloud project](https://console.cloud.google.com/projectcreate) 2. [Enable the Google Drive API](https://console.cloud.google.com/workspace-api/products) 3. [Configure an OAuth consent screen](https://console.cloud.google.com/apis/credentials/consent) ("internal" is fine for testing) 4. Add OAuth scopes `https://www.googleapis.com/auth/drive.readonly`, `https://www.googleapis.com/auth/spreadsheets` 5. In order to allow interaction with sheets and docs you will also need to enable the [Google Sheets API](https://console.cloud.google.com/apis/api/sheets.googleapis.com/) and [Google Docs API](https://console.cloud.google.com/marketplace/product/google/docs.googleapis.com) in your workspaces Enabled API and Services section. 6. [Create an OAuth Client ID](https://console.cloud.google.com/apis/credentials/oauthclient) for application type "Desktop App" 7. Download the JSON file of your client's OAuth keys 8. Rename the key file to `gcp-oauth.keys.json` and place into the path you specify with `GDRIVE_CREDS_DIR` (i.e. `/Users/username/.config/mcp-gdrive`) 9. Note your OAuth Client ID and Client Secret. They must be provided as environment variables along with your configuration directory. 10. You will also need to setup a .env file within the project with the following fields. You can find the Client ID and Client Secret in the Credentials section of the Google Cloud Console. ``` GDRIVE_CREDS_DIR=/path/to/config/directory CLIENT_ID=<CLIENT_ID> CLIENT_SECRET=<CLIENT_SECRET> ``` Make sure to build the server with either `npm run build` or `npm run watch`. ### Authentication Next you will need to run `node ./dist/index.js` to trigger the authentication step You will be prompted to authenticate with your browser. You must authenticate with an account in the same organization as your Google Cloud project. Your OAuth token is saved in the directory specified by the `GDRIVE_CREDS_DIR` environment variable. ![Authentication Prompt](https://i.imgur.com/TbyV6Yq.png) ### Usage with Desktop App To integrate this server with the desktop app, add the following to your app's server configuration: ```json { "mcpServers": { "gdrive": { "command": "npx", "args": ["-y", "@isaacphi/mcp-gdrive"], "env": { "CLIENT_ID": "<CLIENT_ID>", "CLIENT_SECRET": "<CLIENT_SECRET>", "GDRIVE_CREDS_DIR": "/path/to/config/directory" } } } } ``` ## License This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.