commit 802dfd4eb63f8c7b5b417c624ea0e074bf07ba7c Author: zlei9 Date: Sun Mar 29 09:42:16 2026 +0800 Initial commit with translated description diff --git a/SKILL.md b/SKILL.md new file mode 100644 index 0000000..41de7b9 --- /dev/null +++ b/SKILL.md @@ -0,0 +1,129 @@ +--- +name: google-workspace +description: "Gmail、日历、云端硬盘、文档、表格——无需Google Cloud Console。只需OAuth登录。与传统Google API集成相比,设置复杂度为零。" +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="" + +# Send email +mcporter call --server google-workspace --tool "gmail.send" to="email@example.com" subject="Hi" body="Hello" + +# Create draft +mcporter call --server google-workspace --tool "gmail.createDraft" to="email@example.com" 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="your@email.com" timeMin="2026-01-27T00:00:00Z" timeMax="2026-01-27T23:59:59Z" + +# Create event +mcporter call --server google-workspace --tool "calendar.createEvent" calendarId="your@email.com" 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='["a@example.com","b@example.com"]' 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="" 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="" + +# 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="" + +# Get range +mcporter call --server google-workspace --tool "sheets.getRange" spreadsheetId="" 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 +``` diff --git a/_meta.json b/_meta.json new file mode 100644 index 0000000..b139b2a --- /dev/null +++ b/_meta.json @@ -0,0 +1,6 @@ +{ + "ownerId": "kn71esb6ww5xfrvx43y6wd7ah57zyxa2", + "slug": "google-workspace-mcp", + "version": "1.0.0", + "publishedAt": 1769458839920 +} \ No newline at end of file