go_mcp_server_google_sheets
If you are the rightful owner of go_mcp_server_google_sheets and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server for Google Sheets written in Go, providing tools for interacting with Google Spreadsheets.
Google Sheets MCP Server
A Model Context Protocol (MCP) server for Google Sheets written in Go. Provides comprehensive tools for interacting with Google Spreadsheets.
Features
- Sheet Data: Get/update cell data, formulas, batch operations
- Sheet Management: Create, rename, copy sheets, add rows/columns
- Spreadsheet Management: Create, list, share spreadsheets
- Multiple Authentication Methods: Service account, OAuth2, ADC
Quick Start
-
Build:
make build
-
Setup Google API Credentials (see for detailed instructions)
-
Configure Environment:
# Service Account (recommended) export SERVICE_ACCOUNT_PATH="path/to/service-account.json" # OAuth2 export CREDENTIALS_PATH="path/to/credentials.json" # Base64 encoded service account export CREDENTIALS_CONFIG="base64_encoded_service_account_json"
-
Run:
# Stdio mode ./go_mcp_server_google_sheets # SSE mode ./go_mcp_server_google_sheets -t sse -p 8891
Environment Variables
SERVICE_ACCOUNT_PATH
- Path to service account JSON fileCREDENTIALS_PATH
- Path to OAuth2 credentials JSON fileCREDENTIALS_CONFIG
- Base64 encoded service account JSONTOKEN_PATH
- OAuth2 token storage path (default: token.json)DRIVE_FOLDER_ID
- Google Drive folder ID for new spreadsheets
Available Tools
Data Operations
get_sheet_data
- Get data from sheetget_sheet_formulas
- Get formulas from sheetupdate_cells
- Update cell valuesbatch_update_cells
- Batch update multiple ranges
Sheet Management
list_sheets
- List all sheets in spreadsheetcreate_sheet
- Create new sheetrename_sheet
- Rename existing sheetcopy_sheet
- Copy sheet between spreadsheetsadd_rows
/add_columns
- Add rows or columns
Spreadsheet Management
create_spreadsheet
- Create new spreadsheetlist_spreadsheets
- List spreadsheets in Driveshare_spreadsheet
- Share spreadsheet with users
Authentication Setup
Method 1: Service Account (Recommended)
-
Create Google Cloud Project:
- Go to Google Cloud Console
- Create a new project or select existing one
-
Enable APIs:
- Go to "APIs & Services" > "Library"
- Enable "Google Sheets API"
- Enable "Google Drive API"
-
Create Service Account:
- Go to "APIs & Services" > "Credentials"
- Click "Create Credentials" > "Service Account"
- Fill in service account details
- Click "Create and Continue"
-
Generate Key:
- Click on created service account
- Go to "Keys" tab
- Click "Add Key" > "Create new key"
- Choose "JSON" format
- Download the file (this is your
service-account.json
)
-
Set Environment Variable:
export SERVICE_ACCOUNT_PATH="/path/to/your/service-account.json"
Method 2: OAuth2 (For User Access)
-
Create OAuth2 Credentials:
- In Google Cloud Console, go to "APIs & Services" > "Credentials"
- Click "Create Credentials" > "OAuth client ID"
- Choose "Desktop application"
- Download the JSON file (this is your
credentials.json
)
-
Set Environment Variable:
export CREDENTIALS_PATH="/path/to/your/credentials.json"
Method 3: Base64 Encoded (For Containers/CI)
-
Encode Service Account:
base64 -w 0 /path/to/service-account.json
-
Set Environment Variable:
export CREDENTIALS_CONFIG="your_base64_encoded_string_here"
Sharing Spreadsheets with Service Account
When using Service Account, you need to share your spreadsheets with the service account email:
- Open your Google Spreadsheet
- Click "Share" button
- Add the service account email (found in your JSON file as
client_email
) - Give appropriate permissions (Viewer/Editor)
License
MIT