How to move from constant CSV downloads and copy-paste friction to Claude reading, writing, and creating Google Sheets autonomously
Deep integration of Claude across all business workflows. Not a one-off connection — a flexible, reusable bridge between Claude and any Google Sheet, for any task: grants database, social media analysis, webinar tracking, client data.
Every time data needed to move between Claude and a spreadsheet, it required a full manual loop — downloading, converting, uploading, sharing, then copying results back out. Slow, error-prone, and capacity-draining.
Claude.ai has a native Google Drive connector — so surely it can access Google Sheets? No. The native Drive connector is limited to Google Docs only. Claude cannot read cell contents, write to cells, or create new spreadsheets through it. For any real Sheets integration, a dedicated MCP server is required — in Claude Desktop, configured separately from claude.ai entirely.
Service account key creation blocked — Google Workspace org policy had JSON key downloads disabled. Every standard tutorial assumes this works.
Switched to OAuth 2.0 Client ID (Desktop app type) — bypasses org policy entirely, uses personal auth instead of service account keys.
Google Drive API not enabled — mcp-google-sheets requires both Sheets API and Drive API. Enabling only one causes silent failures with no useful error message.
Explicitly enabled both APIs in GCP Library — Sheets API and Drive API. They don't auto-enable each other.
uvx not resolving in Claude Desktop config — using "uvx" as the command caused silent launch failures with no error output to debug from.
Replaced with the full absolute path to uvx (e.g. /Users/name/.local/bin/uvx). Resolved immediately.
Read cell contents directly — no upload, no copy-paste
Write and update cells without manually touching the sheet
Create brand new spreadsheets from scratch on command
Works across all sheets — grants database, social media analysis, webinar tracking, and more
Google Cloud project — Sheets API + Drive API both enabled explicitly
OAuth 2.0 Client ID (Desktop app) — consent screen configured, personal email as test user
mcp-google-sheets added to claude_desktop_config.json — full absolute uvx path, OAuth credentials in env block
One-time browser auth flow — token saved automatically, no repeat login needed
Start with OAuth from day one — even without org policy restrictions, it's more portable and avoids the security risk of stored JSON key files. Treat Claude Desktop and claude.ai as completely separate systems from the start — different configs, different MCP connections, nothing shared. Always use absolute paths in Claude Desktop configs; "uvx" alone is a silent failure waiting to happen.