A Parafin internal MCP server for interacting with Google Drive (Sheets/Docs).
Project description
mcp-google-drive
Parafin internal MCP server for Google Drive, Sheets, and Docs. Built with FastMCP and distributed via Claude Desktop (.mcpb) for accounting and Claude Code (CodeArtifact) for developers.
Auth
On first run, a browser window opens for Google OAuth. Sign in with your @parafin.com account. A token is saved to ~/.config/mcp-google-drive/token.json and silently refreshed on subsequent runs.
Prerequisites: Place credentials.json (obtain from #llm in Slack) at:
~/.config/mcp-google-drive/credentials.json
Setup (Developers)
# One-time install from CodeArtifact
export CODEARTIFACT_AUTH_TOKEN=$(aws codeartifact get-authorization-token \
--domain parafin --domain-owner <AWS_ACCOUNT_ID> \
--query authorizationToken --output text)
export UV_INDEX_URL="https://aws:${CODEARTIFACT_AUTH_TOKEN}@parafin-<AWS_ACCOUNT_ID>.d.codeartifact.us-east-1.amazonaws.com/pypi/parafin/simple/"
uvx --index-url "${UV_INDEX_URL}" mcp-google-drive
# Register with Claude Code
claude mcp add google-drive -- uvx mcp-google-drive
Local Development
claude mcp add google-drive -- uv run --directory /path/to/mcp-google-drive mcp-google-drive
Tools
Google Sheets — Read
| Tool | Description |
|---|---|
get_sheet_data |
Get cell values from a sheet, optionally including formatting metadata |
get_sheet_formulas |
Get raw formulas from a sheet |
list_sheets |
List all sheet tabs in a spreadsheet |
list_spreadsheets |
List spreadsheets in a Drive folder |
get_multiple_sheet_data |
Fetch data from multiple sheet ranges in one call |
get_multiple_spreadsheet_summary |
Summarize multiple spreadsheets (headers + first N rows) |
search_spreadsheets |
Search for spreadsheets by name or content |
find_in_spreadsheet |
Find cells containing a specific value across sheets |
Google Sheets — Write / Create
| Tool | Description |
|---|---|
update_cells |
Write values to a cell range |
batch_update_cells |
Write to multiple ranges in one call |
add_rows |
Insert rows into a sheet |
add_columns |
Insert columns into a sheet |
copy_sheet |
Copy a sheet tab between spreadsheets |
rename_sheet |
Rename a sheet tab |
create_spreadsheet |
Create a new Google Spreadsheet |
create_sheet |
Add a new tab to an existing spreadsheet |
share_spreadsheet |
Share a spreadsheet with users by email and role |
batch_update |
Execute raw Sheets API batchUpdate requests |
add_chart |
Add a column, bar, line, area, pie, or scatter chart to a sheet |
Google Drive — Read
| Tool | Description |
|---|---|
list_files |
List files, optionally filtered by folder and/or MIME type |
get_file_metadata |
Get metadata for a file (name, type, owners, modified date) |
search_files |
Search files using a full Drive query string |
list_folders |
List folders within a parent folder |
get_file_content |
Download raw text content of a file (CSV, TXT, etc.) |
Google Drive — Write / Create
| Tool | Description |
|---|---|
create_folder |
Create a new folder |
move_file |
Move a file to a different folder |
Google Docs — Read
| Tool | Description |
|---|---|
get_document |
Get the full plain text content of a Google Doc |
list_documents |
List Google Docs in Drive or a specific folder |
Google Docs — Write / Create
| Tool | Description |
|---|---|
create_document |
Create a new Google Doc |
update_document |
Apply raw Docs API batchUpdate requests to a document |
Permissions
Access control is enforced by Formal.ai at the proxy layer. The server exposes the full tool surface — Formal policies determine what each user can actually do. The GCP OAuth application is scoped to @parafin.com accounts only.
Credential Files
| File | Purpose | Source |
|---|---|---|
~/.config/mcp-google-drive/credentials.json |
OAuth client ID/secret | Shared via #llm or IT |
~/.config/mcp-google-drive/token.json |
User access/refresh token | Generated on first run |
Neither file should ever be committed to version control.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_google_drive-0.1.0.tar.gz.
File metadata
- Download URL: mcp_google_drive-0.1.0.tar.gz
- Upload date:
- Size: 69.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c1092b914a4ab0e8bf3d8371780b76b66cea427f326bd8739bd111495bc7c99
|
|
| MD5 |
2d50ce134ed18868b5b9316c76b10f77
|
|
| BLAKE2b-256 |
daabb68c4278fcee2a7d59c3b5713385bdbdd5c69207c5769c6c01173a73c121
|
File details
Details for the file mcp_google_drive-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mcp_google_drive-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96f04ae95e10b788377add17cb4a37d8a43f4a404c12e92c8620aa2c5c98ce07
|
|
| MD5 |
e66d8aa477fd87d8db3a4a38b5e13030
|
|
| BLAKE2b-256 |
624ee3cffb63d414b3e1b14b3e843cb533d2d58490c93643494937f935cc2a1b
|