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
29
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 buildSetup 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.jsonSet 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