A Model Context Protocol (MCP) server built in Rust for interacting with Google Drive and Google Sheets. This tool provides MCP-compatible interfaces for Google Workspace services, allowing it to be used as part of larger agent workflows and compositions.
- List files in Google Drive with filtering options:
- Filter by MIME type
- Custom search queries
- Configurable page size
- Custom ordering
- Read data from Google Sheets with options:
- Specify range
- Choose major dimension (ROWS or COLUMNS)
- Write data to Google Sheets
- Create new spreadsheets with:
- Custom title
- Multiple sheets
- Clear values from ranges in spreadsheets
This server implements the Model Context Protocol (MCP), making it compatible with agent frameworks like Distri. Each service exposes its capabilities as MCP tools:
list_files
: List and filter Drive files with customizable parameters- Available capabilities exposed via
resources/list
endpoint
read_values
: Read spreadsheet data with dimension controlwrite_values
: Write data to spreadsheetscreate_spreadsheet
: Create new spreadsheetsclear_values
: Clear ranges in spreadsheets- Available capabilities exposed via
resources/list
endpoint
- Rust (latest stable version)
- Google Cloud Project with Drive and Sheets APIs enabled
- OAuth 2.0 credentials configured for your Google Cloud Project
Install the mcp-google
binary directly from GitHub using Cargo:
cargo install --git https://github.com/distrihub/mcp-google-workspace.git
This will install the mcp-google
command to your system.
Before using the server, you need to:
- Set up a Google Cloud Project
- Enable Google Drive and Google Sheets APIss
- Create OAuth 2.0 credentials
- Set up your environment variables:
ACCESS_TOKEN
: Your Google OAuth access tokenGOOGLE_CLIENT_ID
: Your OAuth client IDGOOGLE_CLIENT_SECRET
: Your OAuth client secretGOOGLE_REFRESH_TOKEN
: Your OAuth refresh token
The servers can be started independently and will communicate using the MCP protocol over stdio:
Start the Drive MCP server:
mcp-google drive --access-token <your-access-token>
Start the Sheets MCP server:
mcp-google sheets --access-token <your-access-token>
This server can be used as part of a Distri agent configuration:
agents:
google_workspace:
drive:
type: mcp
command: ["mcp-google", "drive", "--access-token", "${ACCESS_TOKEN}"]
sheets:
type: mcp
command: ["mcp-google", "sheets", "--access-token", "${ACCESS_TOKEN}"]
Refresh your OAuth token:
mcp-google refresh \
--client-id <your-client-id> \
--client-secret <your-client-secret> \
--refresh-token <your-refresh-token>
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
This is an MCP-compatible server that interacts with Google services. Make sure you have appropriate permissions and credentials before using the tool.