home / skills / openclaw / skills / google-workspace-mcp

google-workspace-mcp skill

This skill lets you access Gmail, Calendar, Drive, Docs, and Sheets via OAuth with zero setup, avoiding Google Cloud Console configuration.

npx playbooks add skill openclaw/skills --skill google-workspace-mcp

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
4.5 KB
---
name: google-workspace
description: Gmail, Calendar, Drive, Docs, Sheets β€” NO Google Cloud Console required. Just OAuth sign-in. Zero setup complexity vs traditional Google API integrations.
metadata: {"clawdbot":{"emoji":"πŸ“¬","requires":{"bins":["mcporter"]}}}
---

# Google Workspace Access (No Cloud Console!)

**Why this skill?** Traditional Google API access requires creating a project in Google Cloud Console, enabling APIs, creating OAuth credentials, and downloading client_secret.json. This skill skips ALL of that.

Uses `@presto-ai/google-workspace-mcp` β€” just sign in with your Google account and go.

## Key Advantage

| Traditional Approach | This Skill |
|---------------------|------------|
| Create Google Cloud Project | ❌ Not needed |
| Enable individual APIs | ❌ Not needed |
| Create OAuth credentials | ❌ Not needed |
| Download client_secret.json | ❌ Not needed |
| Configure redirect URIs | ❌ Not needed |
| **Just sign in with Google** | βœ… That's it |

## Setup (Already Done)

```bash
npm install -g @presto-ai/google-workspace-mcp
mcporter config add google-workspace --command "npx" --arg "-y" --arg "@presto-ai/google-workspace-mcp" --scope home
```

On first use, it opens a browser for Google OAuth. Credentials stored in `~/.config/google-workspace-mcp/`

## Quick Commands

### Gmail

```bash
# Search emails
mcporter call --server google-workspace --tool "gmail.search" query="is:unread" maxResults=10

# Get email content
mcporter call --server google-workspace --tool "gmail.get" messageId="<id>"

# Send email
mcporter call --server google-workspace --tool "gmail.send" to="[email protected]" subject="Hi" body="Hello"

# Create draft
mcporter call --server google-workspace --tool "gmail.createDraft" to="[email protected]" subject="Hi" body="Hello"
```

### Calendar

```bash
# List calendars
mcporter call --server google-workspace --tool "calendar.list"

# List events
mcporter call --server google-workspace --tool "calendar.listEvents" calendarId="[email protected]" timeMin="2026-01-27T00:00:00Z" timeMax="2026-01-27T23:59:59Z"

# Create event
mcporter call --server google-workspace --tool "calendar.createEvent" calendarId="[email protected]" summary="Meeting" start='{"dateTime":"2026-01-28T10:00:00Z"}' end='{"dateTime":"2026-01-28T11:00:00Z"}'

# Find free time
mcporter call --server google-workspace --tool "calendar.findFreeTime" attendees='["[email protected]","[email protected]"]' timeMin="2026-01-28T09:00:00Z" timeMax="2026-01-28T18:00:00Z" duration=30
```

### Drive

```bash
# Search files
mcporter call --server google-workspace --tool "drive.search" query="Budget Q3"

# Download file
mcporter call --server google-workspace --tool "drive.downloadFile" fileId="<id>" localPath="/tmp/file.pdf"
```

### Docs

```bash
# Find docs
mcporter call --server google-workspace --tool "docs.find" query="meeting notes"

# Read doc
mcporter call --server google-workspace --tool "docs.getText" documentId="<id>"

# Create doc
mcporter call --server google-workspace --tool "docs.create" title="New Doc" markdown="# Hello"
```

### Sheets

```bash
# Read spreadsheet
mcporter call --server google-workspace --tool "sheets.getText" spreadsheetId="<id>"

# Get range
mcporter call --server google-workspace --tool "sheets.getRange" spreadsheetId="<id>" range="Sheet1!A1:B10"
```

## Available Tools (49 total)

**Auth:** auth.clear, auth.refreshToken
**Docs:** docs.create, docs.find, docs.getText, docs.insertText, docs.appendText, docs.replaceText, docs.move, docs.extractIdFromUrl
**Drive:** drive.search, drive.downloadFile, drive.findFolder
**Sheets:** sheets.getText, sheets.getRange, sheets.find, sheets.getMetadata
**Slides:** slides.getText, slides.find, slides.getMetadata
**Calendar:** calendar.list, calendar.listEvents, calendar.getEvent, calendar.createEvent, calendar.updateEvent, calendar.deleteEvent, calendar.findFreeTime, calendar.respondToEvent
**Gmail:** gmail.search, gmail.get, gmail.send, gmail.createDraft, gmail.sendDraft, gmail.modify, gmail.listLabels, gmail.downloadAttachment
**Chat:** chat.listSpaces, chat.findSpaceByName, chat.sendMessage, chat.getMessages, chat.sendDm, chat.findDmByEmail, chat.listThreads, chat.setUpSpace
**People:** people.getUserProfile, people.getMe
**Time:** time.getCurrentDate, time.getCurrentTime, time.getTimeZone

## Troubleshooting

### Re-authenticate
```bash
mcporter call --server google-workspace --tool "auth.clear"
```
Then run any command to trigger re-auth.

### Token refresh
```bash
mcporter call --server google-workspace --tool "auth.refreshToken"
```

### Delete credentials
```bash
rm -rf ~/.config/google-workspace-mcp
```

Overview

This skill provides direct access to Gmail, Calendar, Drive, Docs, Sheets, Slides, Chat, and People without creating a Google Cloud Console project or manual OAuth setup. It uses a packaged OAuth flow so you sign in with your Google account once and credentials are stored locally. The result is a fast, low-friction integration for archiving, backup, automation, and ad-hoc queries.

How this skill works

The skill wraps the @presto-ai/google-workspace-mcp client to perform Google Workspace API operations after a simple browser-based OAuth sign-in. On first use it opens a consent screen and saves tokens under ~/.config/google-workspace-mcp so you can run commands from the command line or an orchestrator. Tools cover email search/send, calendar events and free-time finding, Drive file search/download, Docs/Sheets/Slides reads and edits, Chat interactions, and basic People/time utilities.

When to use it

  • You want Google Workspace access without creating a Cloud Console project or managing client_secret.json.
  • You need a quick way to archive or back up emails, documents, calendars, or Drive contents.
  • You are building scripts or automation that require OAuth but want zero setup overhead.
  • You need to inspect, export, or search workspace content from the CLI or an automated job.
  • You need to prototype integrations before committing to full Google Cloud setup.

Best practices

  • Use a dedicated Google account or service account-like account for automated backups to limit scope and data mix.
  • Run interactive commands initially to complete OAuth and verify permissions before automating repetitive jobs.
  • Store downloaded credentials and backups on encrypted storage and restrict local file permissions.
  • Use query filters (e.g., Gmail search, Drive query) to limit data volume and API calls during exports.
  • Refresh or clear auth tokens when rotating credentials or transferring access to another machine.

Example use cases

  • Export unread or labeled Gmail messages for long-term archival or e-discovery workflows.
  • Search Drive for budget or contract files and download matches into a local backup repository.
  • Create and update Docs or Sheets programmatically as part of a reporting pipeline.
  • List calendar events, create meetings, or find common free time across attendees for scheduling automation.
  • Send notifications or DMs to Google Chat spaces or individuals from monitoring scripts.

FAQ

Do I still need to enable individual Google APIs or configure redirect URIs?

No. The packaged client handles required scopes and the OAuth redirect flow so you only sign in once via the browser.

Where are credentials stored and how do I re-authenticate?

Credentials are saved in ~/.config/google-workspace-mcp. To re-authenticate, run auth.clear and trigger any command to reopen the consent flow; auth.refreshToken will refresh tokens if needed.