| name | gspace |
| description | Use gspace CLI (command-line tool) and MCP tools for Google Workspace operations including Drive file management, Gmail, Docs, Sheets, Calendar, and Tasks. Both CLI commands (via Bash) and 40+ MCP tools are available. |
Google Workspace (gspace) Skill
You are a Google Workspace specialist with access to both the gspace CLI (a command-line tool you can invoke via Bash) and MCP (Model Context Protocol) tools. This skill provides comprehensive guidance for working with Google Drive, Gmail, Docs, Sheets, Calendar, and Tasks operations through both interfaces.
IMPORTANT: gspace is a CLI tool installed on the system. Use it via the Bash tool with commands like gspace drive files ls or gspace gmail search --query "subject:urgent". It is NOT only an MCP server.
MCP vs CLI: When to Use Each
Use MCP Tools When:
- In conversation with user: MCP tools are available directly in Claude Code sessions
- Reading metadata: Checking file properties, permissions, comments
- Searching content: Finding files, emails, calendar events, tasks
- Retrieving information: Getting email content, file metadata, calendar events
- Quick lookups: Fast, single-operation queries
- Parsing Excel files: Reading .xlsx file contents
- Modifying content: Creating, updating, deleting files, emails, tasks, calendar events
Use CLI When:
- Complex workflows: Multi-step operations requiring scripting
- Batch operations: Processing multiple items with shell scripts
- File uploads/downloads: Transferring large files to/from local system
- Interactive operations: Authentication flows, confirmations
- Shell automation: Integration with other command-line tools
MCP Tools Complete Reference
Authentication Tools
mcp__gdrive__drive_check_auth
Verify Google Drive authentication status and OAuth scopes.
mcp__gdrive__drive_check_auth()
Returns: Authentication status with account info and required scopes
Use cases:
- Verify authentication before file operations
- Diagnose access issues
- Confirm token validity
mcp__gdrive__gmail_check_auth
Verify Gmail API authentication and required scopes.
mcp__gdrive__gmail_check_auth()
mcp__gdrive__calendar_check_auth
Verify Calendar API authentication and required scopes.
mcp__gdrive__calendar_check_auth()
Google Drive File Operations
mcp__gdrive__drive_files_list
List files with advanced filtering (owner, dates, type, folder).
Parameters:
query (string, optional): Search query for file names
type (string, optional): MIME type filter
folder (string, optional): Search within specific folder ID
owner (string, optional): Filter by file owner email
created_after (string, optional): ISO date (YYYY-MM-DD)
created_before (string, optional): ISO date
modified_after (string, optional): ISO date
modified_before (string, optional): ISO date
order_by (string, optional): Sort order (e.g., "modifiedTime desc")
limit (number, optional): Max results (1-100, default: 10)
mcp__gdrive__drive_files_list(query="report", limit=20)
mcp__gdrive__drive_files_list(
owner="user@example.com",
modified_after="2025-01-01",
order_by="modifiedTime desc"
)
mcp__gdrive__drive_files_download
Download file with format conversion (PDF, DOCX, XLSX, markdown).
Parameters:
file_id (string, required): Google Drive file ID
local_path (string, required): Local file system path
export_format (string, optional): Export format (text, csv, xlsx, pdf, docx, markdown)
tab_id (string, optional): Specific tab ID for multi-tab Docs
max_size (number, optional): Max file size in bytes
timeout (number, optional): Download timeout in milliseconds
mcp__gdrive__drive_files_download(
file_id="abc123",
local_path="/tmp/document.md",
export_format="markdown"
)
mcp__gdrive__drive_files_download(
file_id="sheet123",
local_path="/tmp/data.xlsx",
export_format="xlsx"
)
mcp__gdrive__drive_files_upload
Upload local files with automatic CSV→Sheets conversion.
Parameters:
local_path (string, required): Path to local file
name (string, optional): Name in Drive (defaults to filename)
parent_folder_id (string, optional): Parent folder ID
description (string, optional): File description
convert_to_google_format (boolean, optional): Convert CSV to Sheets
mime_type (string, optional): MIME type (auto-detected)
mcp__gdrive__drive_files_upload(
local_path="/tmp/data.csv",
name="Sales Data 2025",
convert_to_google_format=True
)
mcp__gdrive__drive_files_copy
Create file/folder copies with optional renaming.
Parameters:
file_id (string, required): ID of file to copy
name (string, optional): Name for copy
parent_folder_id (string, optional): Destination folder
mcp__gdrive__drive_files_copy(
file_id="abc123",
name="Backup Copy",
parent_folder_id="folder456"
)
mcp__gdrive__drive_files_rename
Rename files and folders.
Parameters:
file_id (string, required): ID of file to rename
name (string, required): New name
mcp__gdrive__drive_files_rename(
file_id="abc123",
name="Updated Document Name"
)
mcp__gdrive__drive_files_delete
Delete files/folders (trash or permanent).
Parameters:
file_id (string, required): ID of file to delete
permanently (boolean, optional): Permanent delete vs trash (default: false)
mcp__gdrive__drive_files_delete(file_id="abc123")
mcp__gdrive__drive_files_delete(file_id="abc123", permanently=True)
mcp__gdrive__drive_files_metadata
Get comprehensive file metadata.
Parameters:
file_id (string, required): File ID
mcp__gdrive__drive_files_metadata(file_id="abc123")
Returns: Name, size, mimeType, created/modified times, owner, sharing settings
mcp__gdrive__drive_files_validate_markdown
Validate Google Docs export to markdown compatibility.
Parameters:
file_id (string, required): Google Doc file ID
mcp__gdrive__drive_files_validate_markdown(file_id="doc123")
Returns: Compatibility score and recommendations
mcp__gdrive__drive_files_list_tabs
List all tabs in a Google Doc (experimental API).
Parameters:
file_id (string, required): Google Doc file ID
mcp__gdrive__drive_files_list_tabs(file_id="doc123")
Google Drive Folder Operations
mcp__gdrive__drive_folders_create
Create folders with optional descriptions.
Parameters:
name (string, required): Folder name
parent_folder_id (string, optional): Parent folder ID
description (string, optional): Folder description
mcp__gdrive__drive_folders_create(
name="Project Documents",
description="All project files"
)
mcp__gdrive__drive_folders_move
Move files/folders between locations.
Parameters:
file_id (string, required): ID of file/folder to move
new_parent_folder_id (string, required): Destination folder ID
remove_from_current_parents (boolean, optional): Remove from current parents (default: true)
mcp__gdrive__drive_folders_move(
file_id="abc123",
new_parent_folder_id="folder456"
)
Permissions Management
mcp__gdrive__permissions_grant
Grant user/group/domain access to files.
Parameters:
file_id (string, required): File ID
role (string, required): reader, writer, commenter, owner
type (string, required): user, group, domain, anyone
email (string, optional): Email address (for user/group)
domain (string, optional): Domain name or "current"
mcp__gdrive__permissions_grant(
file_id="abc123",
role="writer",
type="user",
email="user@example.com"
)
mcp__gdrive__permissions_grant(
file_id="abc123",
role="reader",
type="domain",
domain="current"
)
mcp__gdrive__permissions_list
List current file/folder permissions.
Parameters:
file_id (string, required): File ID
mcp__gdrive__permissions_list(file_id="abc123")
Returns: List of permissions with roles and email addresses
mcp__gdrive__permissions_update
Modify existing permission roles.
Parameters:
file_id (string, required): File ID
permission_id (string, required): Permission ID
role (string, required): New role (reader, writer, commenter)
mcp__gdrive__permissions_update(
file_id="abc123",
permission_id="perm456",
role="commenter"
)
mcp__gdrive__permissions_revoke
Remove user/group access.
Parameters:
file_id (string, required): File ID
permission_id (string, required): Permission ID to remove
mcp__gdrive__permissions_revoke(
file_id="abc123",
permission_id="perm456"
)
Google Docs Operations
mcp__gdrive__docs_create
Create Google Docs from markdown files.
Parameters:
local_path (string, required): Path to markdown file
name (string, required): Document name
parent_folder_id (string, optional): Parent folder ID
mcp__gdrive__docs_create(
local_path="/tmp/notes.md",
name="Meeting Notes",
parent_folder_id="folder123"
)
mcp__gdrive__docs_download
Download Docs as markdown with footnote conversion.
Parameters:
file_id (string, required): Google Doc file ID
local_path (string, required): Output path
export_format (string, optional): Export format (markdown, pdf, docx)
mcp__gdrive__docs_download(
file_id="doc123",
local_path="/tmp/document.md",
export_format="markdown"
)
mcp__gdrive__docs_apply_text_diff
Update document content remotely without downloading.
Parameters:
file_id (string, required): Google Doc file ID
new_content (string, required): New text content
preserve_formatting (boolean, optional): Keep formatting (default: true)
mcp__gdrive__docs_apply_text_diff(
file_id="doc123",
new_content="Updated document text...",
preserve_formatting=True
)
mcp__gdrive__docs_find_replace
Find and replace text with case-sensitive/insensitive matching.
Parameters:
file_id (string, required): Google Doc file ID
find_text (string, required): Text to find
replace_text (string, required): Replacement text
match_case (boolean, optional): Case-sensitive (default: false)
tab_id (string, optional): Specific tab ID
mcp__gdrive__docs_find_replace(
file_id="doc123",
find_text="TODO",
replace_text="DONE"
)
mcp__gdrive__docs_find_replace(
file_id="doc123",
find_text="Error",
replace_text="Warning",
match_case=True
)
Google Docs Comments
mcp__gdrive__docs_comments_list
List all comments on a document.
Parameters:
file_id (string, required): File ID
include_deleted (boolean, optional): Include deleted comments
page_size (number, optional): Results per page (1-100)
page_token (string, optional): Pagination token
mcp__gdrive__docs_comments_list(
file_id="doc123",
page_size=50
)
mcp__gdrive__docs_comments_get
Get specific comment details.
Parameters:
file_id (string, required): File ID
comment_id (string, required): Comment ID
include_deleted (boolean, optional): Include deleted replies
mcp__gdrive__docs_comments_get(
file_id="doc123",
comment_id="comment456"
)
mcp__gdrive__docs_comments_create
Add new comments to documents.
Parameters:
file_id (string, required): File ID
content (string, required): Comment text
anchor (string, optional): Anchor region for specific text
mcp__gdrive__docs_comments_create(
file_id="doc123",
content="Please review this section"
)
mcp__gdrive__docs_comments_reply
Reply to existing comments.
Parameters:
file_id (string, required): File ID
comment_id (string, required): Comment ID
content (string, required): Reply text
action (string, optional): "resolve" or "reopen"
mcp__gdrive__docs_comments_reply(
file_id="doc123",
comment_id="comment456",
content="Fixed, thanks!",
action="resolve"
)
mcp__gdrive__docs_comments_resolve
Mark comment as resolved.
Parameters:
file_id (string, required): File ID
comment_id (string, required): Comment ID
mcp__gdrive__docs_comments_resolve(
file_id="doc123",
comment_id="comment456"
)
Google Sheets Operations
mcp__gdrive__sheets_create
Create sheets with initial headers and data.
Parameters:
name (string, required): Spreadsheet name
parent_folder_id (string, optional): Parent folder ID
headers (array, optional): Column headers
data (2D array, optional): Initial data rows
mcp__gdrive__sheets_create(
name="Customer Database",
headers=["Name", "Email", "Status"],
data=[
["John Doe", "john@example.com", "Active"],
["Jane Smith", "jane@example.com", "Pending"]
]
)
mcp__gdrive__sheets_update
Modify specific cells using A1 notation with formula support.
Parameters:
file_id (string, required): Spreadsheet ID
range (string, required): A1 notation (e.g., "Sheet1!A1:C3")
values (2D array, required): Cell values
input_option (string, optional): "RAW" or "USER_ENTERED" (default)
mcp__gdrive__sheets_update(
file_id="sheet123",
range="A1:B2",
values=[
["Product", "Price"],
["Widget", "=SUM(B3:B10)"]
],
input_option="USER_ENTERED"
)
mcp__gdrive__sheets_append
Append rows to end of data without range calculation.
Parameters:
file_id (string, required): Spreadsheet ID
values (2D array, required): Rows to append
range (string, optional): Starting range (default: "Sheet1!A1")
input_option (string, optional): "RAW" or "USER_ENTERED"
mcp__gdrive__sheets_append(
file_id="sheet123",
values=[
["New Customer", "new@example.com", "Active"],
["Another Customer", "another@example.com", "Pending"]
]
)
Google Calendar Operations
mcp__gdrive__calendar_list
List events with time range filtering and privacy controls.
Parameters:
calendar_id (string, optional): Calendar ID (default: "primary")
time_min (string, optional): Start time (RFC3339 format)
time_max (string, optional): End time (RFC3339 format)
max_results (number, optional): Max events (1-2500, default: 50)
page_token (string, optional): Pagination token
single_events (boolean, optional): Expand recurring events (default: true)
include_attendees (boolean, optional): Include attendees (default: false)
include_description (boolean, optional): Include description (default: false)
include_location (boolean, optional): Include location (default: false)
mcp__gdrive__calendar_list(
time_min="2025-01-01T00:00:00Z",
time_max="2025-01-31T23:59:59Z",
max_results=50
)
mcp__gdrive__calendar_search
Search events by text query with advanced filters.
Parameters:
q (string, optional): Free-text search query
calendar_id (string, optional): Calendar ID (default: "primary")
time_min (string, optional): Start time
time_max (string, optional): End time
max_results (number, optional): Max results (1-2500)
mcp__gdrive__calendar_search(
q="team meeting",
time_min="2025-01-01T00:00:00Z",
max_results=10
)
mcp__gdrive__calendar_create
Create events with recurrence support.
Parameters:
summary (string, required): Event title
start (string, required): Start time (RFC3339)
end (string, required): End time (RFC3339)
calendar_id (string, optional): Calendar ID
description (string, optional): Event description
location (string, optional): Event location
recurrence (object, optional): Recurrence pattern
mcp__gdrive__calendar_create(
summary="Sprint Planning",
start="2025-11-10T14:00:00Z",
end="2025-11-10T15:00:00Z"
)
mcp__gdrive__calendar_create(
summary="Daily Standup",
start="2025-11-10T09:00:00Z",
end="2025-11-10T09:15:00Z",
recurrence={"frequency": "daily", "count": 30}
)
mcp__gdrive__calendar_update
Modify existing calendar events.
Parameters:
event_id (string, required): Event ID
calendar_id (string, optional): Calendar ID
summary (string, optional): New title
start (string, optional): New start time
end (string, optional): New end time
description (string, optional): New description
mcp__gdrive__calendar_update(
event_id="event123",
summary="Updated Meeting Title",
start="2025-11-10T15:00:00Z"
)
mcp__gdrive__calendar_delete
Remove events from calendar.
Parameters:
event_id (string, required): Event ID
calendar_id (string, optional): Calendar ID
mcp__gdrive__calendar_delete(event_id="event123")
mcp__gdrive__calendar_update_reminders
Modify event reminder settings.
Parameters:
event_id (string, required): Event ID
calendar_id (string, optional): Calendar ID
use_default (boolean, required): Use calendar defaults
overrides (array, optional): Custom reminders (method, minutes)
send_updates (string, optional): "none", "all", "externalOnly"
mcp__gdrive__calendar_update_reminders(
event_id="event123",
use_default=False,
overrides=[]
)
mcp__gdrive__calendar_update_reminders(
event_id="event123",
use_default=False,
overrides=[
{"method": "popup", "minutes": 10},
{"method": "email", "minutes": 60}
]
)
Gmail Operations
mcp__gdrive__gmail_search
Search messages with advanced query syntax.
Parameters:
query (string, required): Gmail search query
max_results (number, optional): Max messages to return
mcp__gdrive__gmail_search(
query="from:boss@company.com subject:urgent",
max_results=10
)
mcp__gdrive__gmail_search(
query="has:attachment after:2025/01/01"
)
mcp__gdrive__gmail_get
Get full message content with headers.
Parameters:
message_id (string, required): Gmail message ID
mcp__gdrive__gmail_get(message_id="msg123")
Returns: Complete message with headers, body, attachments metadata
mcp__gdrive__gmail_thread
Get entire conversation thread.
Parameters:
thread_id (string, required): Gmail thread ID
mcp__gdrive__gmail_thread(thread_id="thread123")
mcp__gdrive__gmail_send
Send new messages with attachments.
Parameters:
to (string, required): Recipient email(s)
subject (string, required): Email subject
body (string, required): Message body
cc (string, optional): CC recipients
bcc (string, optional): BCC recipients
attachments (array, optional): File paths to attach
mcp__gdrive__gmail_send(
to="user@example.com",
subject="Project Update",
body="Please find the attached report.",
attachments=["/tmp/report.pdf"]
)
mcp__gdrive__gmail_draft
Create draft messages.
Parameters:
to (string, required): Recipient email
subject (string, required): Email subject
body (string, required): Message body
mcp__gdrive__gmail_draft(
to="team@example.com",
subject="Draft: Review Request",
body="Please review this document..."
)
mcp__gdrive__gmail_send_draft
Send existing drafts.
Parameters:
draft_id (string, required): Draft ID
mcp__gdrive__gmail_send_draft(draft_id="draft123")
mcp__gdrive__gmail_list_labels
List all Gmail labels.
mcp__gdrive__gmail_list_labels()
mcp__gdrive__gmail_label
Add/remove labels on messages.
Parameters:
message_id (string, required): Message ID
add_labels (array, optional): Labels to add
remove_labels (array, optional): Labels to remove
mcp__gdrive__gmail_label(
message_id="msg123",
add_labels=["IMPORTANT"],
remove_labels=["INBOX"]
)
mcp__gdrive__gmail_archive
Archive messages (remove from inbox).
Parameters:
message_id (string, required): Message ID
mcp__gdrive__gmail_archive(message_id="msg123")
mcp__gdrive__gmail_star
Star/unstar messages.
Parameters:
message_id (string, required): Message ID
unstar (boolean, optional): Unstar message (default: false)
mcp__gdrive__gmail_star(message_id="msg123")
mcp__gdrive__gmail_star(message_id="msg123", unstar=True)
mcp__gdrive__gmail_trash
Move messages to trash.
Parameters:
message_id (string, required): Message ID
mcp__gdrive__gmail_trash(message_id="msg123")
mcp__gdrive__gmail_delete
Permanently delete messages.
Parameters:
message_id (string, required): Message ID
mcp__gdrive__gmail_delete(message_id="msg123")
mcp__gdrive__gmail_download_attachment
Download message attachments.
Parameters:
message_id (string, required): Message ID
attachment_id (string, required): Attachment ID
output_path (string, required): Local output path
mcp__gdrive__gmail_download_attachment(
message_id="msg123",
attachment_id="attach456",
output_path="/tmp/document.pdf"
)
Google Tasks Operations
mcp__gdrive__tasks_list_lists
List all task lists.
mcp__gdrive__tasks_list_lists()
mcp__gdrive__tasks_get_list
Get specific task list details.
Parameters:
task_list_id (string, required): Task list ID
mcp__gdrive__tasks_get_list(task_list_id="list123")
mcp__gdrive__tasks_list
List tasks in a task list.
Parameters:
task_list_id (string, required): Task list ID
show_completed (boolean, optional): Include completed tasks
show_deleted (boolean, optional): Include deleted tasks
show_hidden (boolean, optional): Include hidden tasks
mcp__gdrive__tasks_list(
task_list_id="list123",
show_completed=True
)
mcp__gdrive__tasks_get
Get specific task details.
Parameters:
task_list_id (string, required): Task list ID
task_id (string, required): Task ID
mcp__gdrive__tasks_get(
task_list_id="list123",
task_id="task456"
)
mcp__gdrive__tasks_create_list
Create new task lists.
Parameters:
title (string, required): Task list title
mcp__gdrive__tasks_create_list(title="Q1 Goals")
mcp__gdrive__tasks_create
Create new tasks with due dates.
Parameters:
task_list_id (string, required): Task list ID
title (string, required): Task title
notes (string, optional): Task notes
due (string, optional): Due date (RFC3339)
parent (string, optional): Parent task ID
mcp__gdrive__tasks_create(
task_list_id="list123",
title="Review PR #42",
due="2025-11-10T17:00:00Z",
notes="High priority"
)
mcp__gdrive__tasks_update
Modify existing tasks.
Parameters:
task_list_id (string, required): Task list ID
task_id (string, required): Task ID
title (string, optional): New title
notes (string, optional): New notes
due (string, optional): New due date
status (string, optional): "needsAction" or "completed"
mcp__gdrive__tasks_update(
task_list_id="list123",
task_id="task456",
title="Updated Task Title",
status="completed"
)
mcp__gdrive__tasks_complete
Mark tasks as completed.
Parameters:
task_list_id (string, required): Task list ID
task_id (string, required): Task ID
mcp__gdrive__tasks_complete(
task_list_id="list123",
task_id="task456"
)
mcp__gdrive__tasks_delete
Delete tasks.
Parameters:
task_list_id (string, required): Task list ID
task_id (string, required): Task ID
mcp__gdrive__tasks_delete(
task_list_id="list123",
task_id="task456"
)
mcp__gdrive__tasks_clear_completed
Clear all completed tasks from a list.
Parameters:
task_list_id (string, required): Task list ID
mcp__gdrive__tasks_clear_completed(task_list_id="list123")
XLSX File Operations
mcp__gdrive__parse_xlsx
Parse Excel (.xlsx) file contents.
Parameters:
file_id (string, required): Google Drive file ID of .xlsx file
mcp__gdrive__parse_xlsx(file_id="spreadsheet123")
Returns: Structured data from Excel file (sheets, rows, columns)
mcp__gdrive__write_xlsx
Create XLSX file from JSON workbook structure.
Parameters:
workbook (object, required): Workbook structure with sheets array
file_path (string, required): Absolute path where XLSX should be created
mcp__gdrive__write_xlsx(
workbook={
"sheets": [
{
"name": "Q1 Budget",
"data": [
["Category", "Amount"],
["Salaries", 150000],
["Marketing", 75000]
],
"formulas": {
"B4": "=SUM(B2:B3)"
}
}
]
},
file_path="/tmp/output.xlsx"
)
CLI Operations Reference
Authentication
gspace auth check
gspace auth login
Drive File Operations
gspace drive files ls
gspace drive files ls --owner user@example.com --limit 20
gspace drive files download FILE_ID /tmp/document.pdf
gspace drive files download FILE_ID /tmp/doc.md --export markdown
gspace drive files upload /path/to/file "File Name"
gspace drive files upload data.csv "Spreadsheet" --convert
gspace drive files copy FILE_ID --name "Copy of Document"
gspace drive files rename FILE_ID "New Name"
gspace drive files delete FILE_ID
gspace drive files metadata FILE_ID
Drive Folders
gspace drive folders create "Project Documents"
gspace drive folders move FILE_ID FOLDER_ID
Permissions
gspace permissions grant FILE_ID --type user --role writer --email user@example.com
gspace permissions grant FILE_ID --type domain --role reader --domain current
gspace permissions list FILE_ID
gspace permissions update FILE_ID PERMISSION_ID --role commenter
gspace permissions revoke FILE_ID PERMISSION_ID
Google Docs
gspace docs create /path/to/notes.md "Document Title"
gspace docs download DOC_ID /tmp/output.md --export markdown
gspace docs find-replace DOC_ID "old text" "new text"
gspace docs find-replace DOC_ID "Error" "Warning" --match-case
gspace docs comments list DOC_ID
gspace docs comments create DOC_ID "Great work!"
gspace docs comments reply DOC_ID COMMENT_ID "Thanks!"
gspace docs comments resolve DOC_ID COMMENT_ID
Google Sheets
gspace sheets create "Sales Data" --headers "Product,Price,Quantity"
gspace sheets update SHEET_ID --range "A1:B2" --values '[["Name","Value"],["Item",100]]'
gspace sheets append SHEET_ID --values '[["New Row 1","Value 1"]]'
Google Calendar
gspace calendar list --time-min 2025-01-01T00:00:00Z
gspace calendar today
gspace calendar tomorrow
gspace calendar search --query "team meeting"
gspace calendar create "Sprint Planning" --start "2025-11-10T14:00:00Z" --end "2025-11-10T15:00:00Z"
gspace calendar update EVENT_ID --summary "New Title"
gspace calendar delete EVENT_ID
gspace calendar update-reminders EVENT_ID --disable
Gmail
gspace gmail search --query "from:boss@company.com subject:urgent"
gspace gmail get MESSAGE_ID
gspace gmail thread THREAD_ID
gspace gmail send --to user@example.com --subject "Hello" --body "Message"
gspace gmail send --to user@example.com --subject "Report" --attach report.pdf
gspace gmail draft --to team@example.com --subject "Review"
gspace gmail send-draft DRAFT_ID
gspace gmail archive MESSAGE_ID
gspace gmail star MESSAGE_ID
gspace gmail trash MESSAGE_ID
gspace gmail delete MESSAGE_ID
gspace gmail label MESSAGE_ID --add IMPORTANT --remove INBOX
gspace gmail list-labels
gspace gmail download-attachment MESSAGE_ID ATTACHMENT_ID /tmp/file.pdf
Google Tasks
gspace tasks list-lists
gspace tasks list TASK_LIST_ID
gspace tasks list TASK_LIST_ID --show-completed
gspace tasks create TASK_LIST_ID "Review PR" --due "2025-11-10T17:00:00Z"
gspace tasks update TASK_LIST_ID TASK_ID --title "Updated Title"
gspace tasks complete TASK_LIST_ID TASK_ID
gspace tasks delete TASK_LIST_ID TASK_ID
gspace tasks clear-completed TASK_LIST_ID
Common Workflows
Workflow 1: Find and Download Documents (MCP)
files = mcp__gdrive__drive_files_list(
query="Q4 report",
type="application/vnd.google-apps.document",
limit=10
)
mcp__gdrive__drive_files_download(
file_id=files[0].id,
local_path="/tmp/report.md",
export_format="markdown"
)
Workflow 2: Email Task Management (MCP)
messages = mcp__gdrive__gmail_search(
query="subject:TODO is:unread",
max_results=20
)
for message in messages:
email = mcp__gdrive__gmail_get(message_id=message.id)
mcp__gdrive__tasks_create(
task_list_id="default",
title=f"Follow up: {email.subject}",
notes=email.snippet
)
mcp__gdrive__gmail_archive(message_id=message.id)
Workflow 3: Calendar Event Cleanup (MCP)
events = mcp__gdrive__calendar_search(
q="do not block",
time_min="2025-01-01T00:00:00Z"
)
for event in events:
mcp__gdrive__calendar_update_reminders(
event_id=event.id,
use_default=False,
overrides=[]
)
Workflow 4: Bulk File Permissions (CLI)
gspace drive files ls --folder-id FOLDER_ID --type application/pdf --json | \
jq -r '.[].id' | \
while read file_id; do
gspace permissions grant "$file_id" --type domain --role reader --domain current
done
Workflow 5: Email Backup (CLI)
gspace gmail search --query "from:vendor@example.com has:attachment" --json | \
jq -r '.[].id' | \
while read msg_id; do
gspace gmail get "$msg_id" --json | \
jq -r '.attachments[].id' | \
while read attach_id; do
gspace gmail download-attachment "$msg_id" "$attach_id" "/tmp/backup_${attach_id}.pdf"
done
done
Best Practices
General Principles
- Prefer MCP for programmatic operations: MCP tools provide structured responses
- Use CLI for interactive workflows: Better for shell scripts and automation
- Batch operations carefully: Use pagination and limits to avoid overwhelming responses
- Check authentication first: Use
*_check_auth tools before operations
- Handle errors gracefully: All MCP tools return error details in responses
MCP-Specific Best Practices
- Use appropriate limits: Set
limit or max_results to avoid large responses
- Leverage filters: Use owner, date, type filters to narrow searches
- Parse responses: All MCP tools return structured JSON
- Privacy controls: Use calendar privacy flags to minimize PII exposure
- Pagination: Use
page_token for large result sets
CLI-Specific Best Practices
- JSON output for scripting: Use
--json flag with jq for processing
- Confirm destructive operations: CLI prompts for confirmations by default
- Use environment variables: Set
GOOGLE_CLOUD_PROJECT for quota management
- Batch with shell loops: Combine CLI with shell scripts for bulk operations
Search Query Syntax
Drive Queries
name contains 'text' - Search by filename
fullText contains 'text' - Search file contents
mimeType = 'application/pdf' - Filter by file type
'folder-id' in parents - Files in specific folder
trashed = false - Exclude trashed files
modifiedTime > '2025-01-01T00:00:00' - Modified after date
Common MIME types:
- Google Docs:
application/vnd.google-apps.document
- Google Sheets:
application/vnd.google-apps.spreadsheet
- Google Slides:
application/vnd.google-apps.presentation
- PDF:
application/pdf
Gmail Queries
from:sender@example.com - From specific sender
to:recipient@example.com - To specific recipient
subject:keyword - Subject contains keyword
has:attachment - Has attachments
filename:pdf - Specific attachment type
after:2025/01/01 - Date filters
before:2025/12/31 - Date filters
is:unread - Unread messages
is:starred - Starred messages
label:IMPORTANT - Specific label
Error Handling
Common Errors
Authentication Errors:
mcp__gdrive__drive_check_auth()
File Not Found:
try:
metadata = mcp__gdrive__drive_files_metadata(file_id="abc123")
except:
pass
Permission Denied:
gcloud auth login --enable-gdrive-access
Quick Reference
MCP Tools by Category
Authentication:
drive_check_auth, gmail_check_auth, calendar_check_auth
Drive Files:
drive_files_list, drive_files_download, drive_files_upload
drive_files_copy, drive_files_rename, drive_files_delete
drive_files_metadata, drive_files_validate_markdown, drive_files_list_tabs
Drive Folders:
drive_folders_create, drive_folders_move
Permissions:
permissions_grant, permissions_list, permissions_update, permissions_revoke
Docs:
docs_create, docs_download, docs_apply_text_diff, docs_find_replace
Docs Comments:
docs_comments_list, docs_comments_get, docs_comments_create
docs_comments_reply, docs_comments_resolve
Sheets:
sheets_create, sheets_update, sheets_append
Calendar:
calendar_list, calendar_search, calendar_create
calendar_update, calendar_delete, calendar_update_reminders
Gmail:
gmail_search, gmail_get, gmail_thread
gmail_send, gmail_draft, gmail_send_draft
gmail_list_labels, gmail_label, gmail_archive, gmail_star
gmail_trash, gmail_delete, gmail_download_attachment
Tasks:
tasks_list_lists, tasks_get_list, tasks_list, tasks_get
tasks_create_list, tasks_create, tasks_update
tasks_complete, tasks_delete, tasks_clear_completed
XLSX:
Summary
Total MCP Tools: 40+ comprehensive Google Workspace operations
Use MCP tools for:
- All CRUD operations (Create, Read, Update, Delete)
- Searching and filtering content
- Managing permissions and access control
- Email, calendar, and task management
- Document editing and collaboration
- Spreadsheet data manipulation
Use CLI for:
- Interactive authentication flows
- Shell script automation
- Batch operations with pipes
- Human-readable output formatting
- Quick shortcuts (calendar today/tomorrow)
Key advantages:
- MCP: Structured responses, programmatic access, direct integration
- CLI: Scriptable, interactive, human-friendly, shell integration