go_mcp_server_google_sheets
A Model Context Protocol (MCP) server for Google Sheets written in Go. Provides comprehensive tools for interacting with Google Spreadsheets.
GitHub Stars
0
User Rating
Not Rated
Favorites
0
Views
2
Forks
0
Issues
0
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 SETUP.md 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
Web-developer: javascript, php, golang, vue, nodejs, c++, rust, nim, python, flask, django
93
Followers
206
Repositories
155
Gists
0
Total Contributions