Back to Productivity

Google Workspace

Integrates with Google Workspace to enable file management in Drive and data manipulation in Sheets, facilitating document-centric tasks and data analysis within the Google ecosystem.

Last updated: 1/27/2026

README

# Google Drive & Sheets MCP Server

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.

## Features

### Google Drive Operations
- List files in Google Drive with filtering options:
  - Filter by MIME type
  - Custom search queries
  - Configurable page size
  - Custom ordering

### Google Sheets Operations
- 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

## MCP Integration

This server implements the Model Context Protocol (MCP), making it compatible with agent frameworks like [Distri](https://github.com/distrihub/distri). Each service exposes its capabilities as MCP tools:

### Drive Tools
- `list_files`: List and filter Drive files with customizable parameters
- Available capabilities exposed via `resources/list` endpoint

### Sheets Tools
- `read_values`: Read spreadsheet data with dimension control
- `write_values`: Write data to spreadsheets
- `create_spreadsheet`: Create new spreadsheets
- `clear_values`: Clear ranges in spreadsheets
- Available capabilities exposed via `resources/list` endpoint

## Prerequisites

- Rust (latest stable version)
- Google Cloud Project with Drive and Sheets APIs enabled
- OAuth 2.0 credentials configured for your Google Cloud Project

## Installation

Install the `mcp-google` binary directly from GitHub using Cargo:
```bash
cargo install --git https://github.com/distrihub/mcp-google-workspace.git
```

This will install the `mcp-google` command to your system.

## Configuration

Before using the server, you need to:

1. Set up a Google Cloud Project
2. Enable Google Drive and Google Sheets APIss
3. Create OAuth 2.0 credentials
4. Set up your environment variables:
   - `ACCESS_TOKEN`: Your Google OAuth access token
   - `GOOGLE_CLIENT_ID`: Your OAuth client ID
   - `GOOGLE_CLIENT_SECRET`: Your OAuth client secret
   - `GOOGLE_REFRESH_TOKEN`: Your OAuth refresh token

## Usage

### As MCP Server

The servers can be started independently and will communicate using the MCP protocol over stdio:

Start the Drive MCP server:
```bash
mcp-google drive --access-token <your-access-token>
```

Start the Sheets MCP server:
```bash
mcp-google sheets --access-token <your-access-token>
```

### Using with Distri

This server can be used as part of a Distri agent configuration:

```yaml
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}"]
```

### Token Management

Refresh your OAuth token:
```bash
mcp-google refresh \
  --client-id <your-client-id> \
  --client-secret <your-client-secret> \
  --refresh-token <your-refresh-token>
```

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## Note

This is an MCP-compatible server that interacts with Google services. Make sure you have appropriate permissions and credentials before using the tool.

Installation

Add this MCP to your configuration:

{
  "mcpServers": {
    "google-workspace-4": {
      // See GitHub repository for configuration
    }
  }
}

See the GitHub repository for full installation instructions.