About Drive MCP
Drive MCP is an MCP server published by kitagry in the Productivity category: mCP server for Google Drive and OneDrive.
Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/kitagry/drive-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Drive MCP
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
3 checks have not been run yet.
README
Drive MCP
A Go implementation of MCP (Model Context Protocol) server for Google Drive, Google Docs, Google Slides, and Google Sheets operations.
Features
- Search Google Drive files
- List files in Google Drive folders
- Read Google Document content
- Update Google Document content
- Read Google Slides presentation content
- Update Google Slides presentation slides
- Read Google Sheets values
- Update Google Sheets values
- Authentication using gcloud application-default credentials
Setup
Prerequisites
- Go 1.21 or later
- Google Cloud CLI (
gcloud) - GCP project with Google Drive API, Google Docs API, Google Slides API, and Google Sheets API enabled
Authentication Setup
- Enable Google Drive API, Google Docs API, Google Slides API, and Google Sheets API
- Run gcloud authentication:
gcloud auth application-default login --scopes=https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/drive
- Set quota project environment variable if needed:
export GOOGLE_CLOUD_QUOTA_PROJECT_ID=your-project-id
Installation
go mod download
Usage
Running the MCP Server
go build -o drive-mcp
./drive-mcp
Available Tools
search_files
Search for files in Google Drive.
Parameters:
query(required): File name or keyword to searchmaxResults(optional, default: 10): Maximum number of files to retrieve
Example:
{
"name": "search_files",
"arguments": {
"query": "meeting notes",
"maxResults": 5
}
}
list_files
List files in a Google Drive folder.
Parameters:
folderId(optional): The ID of the folder to list files from. If empty, lists files in My Drive rootmaxResults(optional, default: 10): Maximum number of files to retrieve
Example:
{
"name": "list_files",
"arguments": {
"folderId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
"maxResults": 20
}
}
Example (My Drive root):
{
"name": "list_files",
"arguments": {
"maxResults": 10
}
}
get_document
Get the content of a Google Document.
Parameters:
documentId(required): The ID of the Google Document
Example:
{
"name": "get_document",
"arguments": {
"documentId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"
}
}
update_document
Update the content of a Google Document.
Parameters:
documentId(required): The ID of the Google Documentcontent(required): The new content for the document
Example:
{
"name": "update_document",
"arguments": {
"documentId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
"content": "This is the new content for the document."
}
}
get_presentation
Get the content of a Google Slides presentation.
Parameters:
presentationId(required): The ID of the Google Slides presentation
Example:
{
"name": "get_presentation",
"arguments": {
"presentationId": "1EAYk18WDjIG-zp_0vLm3CsfQh_i8eXc67Jo2O9C6Vuc"
}
}
update_presentation
Update a specific slide in a Google Slides presentation.
Parameters:
presentationId(required): The ID of the Google Slides presentationslideIndex(optional, default: 0): The index of the slide to update (0-based)title(required): The title for the slidecontent(required): The content for the slide
Example:
{
"name": "update_presentation",
"arguments": {
"presentationId": "1EAYk18WDjIG-zp_0vLm3CsfQh_i8eXc67Jo2O9C6Vuc",
"slideIndex": 0,
"title": "New Slide Title",
"content": "This is the new content for the slide."
}
}
get_spreadsheet
Get values from a Google Spreadsheet.
Parameters:
spreadsheetId(required): The ID of the Google Spreadsheetrange(required): The range to retrieve (e.g., 'Sheet1!A1:C10')
Example:
{
"name": "get_spreadsheet",
"arguments": {
"spreadsheetId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
"range": "Sheet1!A1:C10"
}
}
update_spreadsheet
Update values in a Google Spreadsheet.
Parameters:
spreadsheetId(required): The ID of the Google Spreadsheetrange(required): The range to update (e.g., 'Sheet1!A1:C10')values(required): 2D array of values to write
Example:
{
"name": "update_spreadsheet",
"arguments": {
"spreadsheetId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
"range": "Sheet1!A1:C2",
"values": [
["Name", "Age", "City"],
["John", "30", "Tokyo"]
]
}
}
Testing
go test -v
Structure
drive.go- Google Drive, Docs, Slides, and Sheets API operations implementationmain.go- MCP server entry point with tool handlers
License
MIT
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.