Skip to main content

Google Workspace MCP Server over SSE

Project description

onit-workspace

Google Workspace MCP Server over SSE. Provides 25 tools for Google Drive, Docs, Sheets, Slides, and Gmail.

Vendored from onit.

Installation

pip install onit-workspace

Usage

Start the server (runs in background):

onit-workspace
# or
onit-workspace start

Start in foreground (for debugging):

onit-workspace start --foreground

Custom host/port:

onit-workspace start --host 127.0.0.1 --port 9000

With OAuth 2.0 (recommended):

onit-workspace start --oauth-client-file /path/to/client_secret.json

With service account credentials:

onit-workspace start --credentials-file ~/.config/gcloud/credentials.json

With domain-wide delegation (service account + Gmail):

onit-workspace start --delegated-user user@yourcompany.com

Check status:

onit-workspace status

Stop the server:

onit-workspace stop

Using with onit

onit can connect to onit-workspace as an MCP SSE server. Start onit-workspace first, then launch onit with the --mcp-sse flag:

onit-workspace start
onit --mcp-sse http://localhost:18204/sse --web

This gives onit access to all 25 Google Workspace tools through its web interface.

Example prompts

Once connected, you can ask onit things like:

"List files in my Google Drive"
"Create a new spreadsheet called Q1 Report with columns Date, Revenue, Expenses"
"Read the contents of document <doc_id>"
"Send an email to team@company.com with subject 'Meeting Notes'"
"Download the presentation as PDF"
"Share the document with user@company.com as editor"

MCP Client Configuration

Once running, connect any MCP client to the SSE endpoint:

http://localhost:18204/sse

Example MCP client config:

{
  "mcpServers": {
    "onit-workspace": {
      "url": "http://localhost:18204/sse"
    }
  }
}

Authentication

Two authentication methods are supported. Choose the one that fits your environment.

Option 1: OAuth 2.0 (recommended)

User-based authentication via browser login. Works without domain-wide delegation — ideal when delegation is disabled for security reasons.

  1. Go to Google Cloud Console > APIs & Services > Credentials
  2. Enable APIs: Docs, Sheets, Slides, Drive, Gmail
  3. Create an OAuth 2.0 Client ID (type: Desktop application)
  4. Download the client secrets JSON
  5. Start the server:
onit-workspace start --oauth-client-file /path/to/client_secret.json

Or set the environment variable:

export GOOGLE_OAUTH_CLIENT_FILE=/path/to/client_secret.json
onit-workspace start

On first API call, a browser opens for Google login. The token is saved to ~/.config/gcloud/token.pickle for subsequent runs.

Option 2: Service account

Server-to-server authentication using a service account key.

  1. Create a service account at Google Cloud Console > IAM & Admin > Service Accounts
  2. Enable APIs: Docs, Sheets, Slides, Drive, Gmail
  3. Download JSON key and configure via one of:
    • CLI flag: --credentials-file /path/to/service-account.json
    • Environment variable: GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json
    • Default path: ~/.config/gcloud/credentials.json
  4. Share existing files with the service account email

Gmail with service account requires domain-wide delegation:

  1. Enable delegation on the service account in Google Cloud Console
  2. Authorize scopes in Google Admin Console > Security > API Controls > Domain-wide delegation
  3. Pass --delegated-user user@yourcompany.com or use the user_email parameter per tool call

See docs/GOOGLE_WORKSPACE_AND_OAUTH.md for the full setup guide.

Tools (25)

Category Tools Description
Auth google_auth Check authentication status
Drive drive_list, drive_create_folder, drive_move, drive_delete, drive_share, drive_download, drive_upload Search, organize, share, upload, and download files
Docs doc_create, doc_read, doc_write, doc_update Full CRUD for Google Docs
Sheets sheet_create, sheet_read, sheet_write, sheet_info Full CRUD for Google Sheets
Slides slides_create, slides_read, slides_edit, slides_update Full CRUD for Google Slides
Gmail gmail_list, gmail_read, gmail_modify, gmail_send, gmail_attachment, gmail_create_label Read, send, label, and manage email

Drive (7 tools):

  • drive_list - Search and list files with filtering by type, folder, and query
  • drive_create_folder - Create folders with optional auto-sharing
  • drive_move - Move or rename files and folders
  • drive_delete - Trash or permanently delete files
  • drive_share - Share with users, groups, domains, or make public
  • drive_download - Download/export files (PDF, DOCX, XLSX, PPTX, etc.)
  • drive_upload - Upload local files to Drive with optional sharing

Docs (4 tools):

  • doc_create - Create a new Google Doc with optional initial content
  • doc_read - Read document content as plain text or JSON structure
  • doc_write - Append, insert, or replace content (text, headings, bullets, numbered lists, tables)
  • doc_update - Modify or delete existing paragraphs by index, change paragraph styles

Sheets (4 tools):

  • sheet_create - Create a new spreadsheet with optional headers and data
  • sheet_read - Read data from a cell range
  • sheet_write - Update or append rows of data
  • sheet_info - Get spreadsheet metadata (sheet names, dimensions, frozen rows/columns)

Slides (4 tools):

  • slides_create - Create a new presentation with title and subtitle
  • slides_read - Read full slide content including shapes, tables, and speaker notes
  • slides_edit - Add new slides (multiple layouts) or tables
  • slides_update - Modify existing shape text or delete slides

Gmail (6 tools):

  • gmail_list - List and search emails with query filters
  • gmail_read - Read full email with headers, body, and attachment info
  • gmail_modify - Modify labels, read/unread status, and star
  • gmail_send - Compose and send email with optional attachments and HTML
  • gmail_attachment - List or download email attachments
  • gmail_create_label - Create labels or apply labels to messages

Docker

See docs/DOCKER.md for Docker build and run instructions.

Documentation

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

onit_workspace-0.1.0.tar.gz (31.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

onit_workspace-0.1.0-py3-none-any.whl (29.8 kB view details)

Uploaded Python 3

File details

Details for the file onit_workspace-0.1.0.tar.gz.

File metadata

  • Download URL: onit_workspace-0.1.0.tar.gz
  • Upload date:
  • Size: 31.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for onit_workspace-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3347d61898854c996242fd77ac7bd980f4b10e93222a13befba5295cb8ceb6b8
MD5 f02a84ca402b1bc983fcf04b136249ca
BLAKE2b-256 5180999d16df5f445e5961f0a43c2dab4fbb147ed68c2414a3c3f121bb1a4a23

See more details on using hashes here.

Provenance

The following attestation bundles were made for onit_workspace-0.1.0.tar.gz:

Publisher: publish.yml on sibyl-oracles/onit-workspace

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file onit_workspace-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: onit_workspace-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 29.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for onit_workspace-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5b424cd60b7fbb5420b3c1baf9aa2588760bfc72f78645b9307dcfb9fa91987e
MD5 c36c864502b6ce14f2888336c5d376b2
BLAKE2b-256 05a5d866528433de8f28f8fa41319a568434d95dabf961470403be6af7c8234c

See more details on using hashes here.

Provenance

The following attestation bundles were made for onit_workspace-0.1.0-py3-none-any.whl:

Publisher: publish.yml on sibyl-oracles/onit-workspace

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page