mcp-gdrive
by: isaacphi
Model Context Protocol (MCP) Server for reading from Google Drive and editing Google Sheets
📌Overview
Purpose: This server facilitates integration with Google Drive, enabling users to access, search, read, and write data to Google Drive files and Google Sheets.
Overview: The Google Drive server is designed to streamline interactions with Google Drive and Google Sheets, allowing for robust file management and data manipulation operations through a set of well-defined tools and features.
Key Features:
-
gdrive_search: Enables users to search for files within Google Drive using query strings, returning file names and MIME types for easy identification and access.
-
gdrive_read_file: Allows users to read the contents of specified files from Google Drive by providing their file IDs, ensuring efficient retrieval of necessary data.
-
gsheets_read: Provides users the ability to read data from Google Spreadsheets with flexible options for specifying data ranges, accommodating varying user needs for data extraction.
-
gsheets_update_cell: Empowers users to update specific cell values within Google Spreadsheets, facilitating real-time data management and collaboration.
Google Drive Server
This MCP server integrates with Google Drive to allow listing, reading, and searching files, as well as reading and writing to Google Sheets.
This project includes code originally developed by Anthropic, PBC, licensed under the MIT License from this repo.
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 as:
- Docs → Markdown
- Sheets → CSV
- Presentations → Plain text
- Drawings → PNG
- Other files are provided in their native format.
Getting Started
- Create a new Google Cloud project.
- Enable the Google Drive API.
- Configure an OAuth consent screen ("internal" is fine for testing).
- Add OAuth scopes
https://www.googleapis.com/auth/drive.readonly
,https://www.googleapis.com/auth/spreadsheets
. - Enable the Google Sheets API and Google Docs API in your workspace's Enabled API and Services section.
- Create an OAuth Client ID for application type "Desktop App".
- Download the JSON file of your client's OAuth keys.
- Rename the key file to
gcp-oauth.keys.json
and place it into the path you specify withGDRIVE_CREDS_DIR
(e.g.,/Users/username/.config/mcp-gdrive
). - Note your OAuth Client ID and Client Secret. They must be provided as environment variables along with your configuration directory.
- Set up a
.env
file within the project with the following fields:
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
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.
Usage with Desktop App
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"
}
}
}
}
License
This MCP server is licensed under the MIT License. You are free to use, modify, and distribute the software under the terms of the MIT License.