Google Sheets MCP Server

by hightemp

350 downloads
Not rated
GitHub

About

A Model Context Protocol (MCP) server for Google Sheets written in Go. Provides comprehensive tools for interacting with Google Spreadsheets.

Details

Author
hightemp
Downloads
350
Categories
Other

First build the binary with make build, then set up Google API credentials and configure environment variables such as SERVICE_ACCOUNT_PATH, CREDENTIALS_PATH, or CREDENTIALS_CONFIG. Run the server in stdio mode (default) or SSE mode using ./go_mcp_server_google_sheets -t sse -p 8891. Tools include data operations like get_sheet_data, sheet management like create_sheet, and spreadsheet management like create_spreadsheet and share_spreadsheet.

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

1. Build:

   make build

2. Setup Google API Credentials (see SETUP.md for detailed instructions)

3. 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"

3. 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 file
- CREDENTIALS_PATH - Path to OAuth2 credentials JSON file
- CREDENTIALS_CONFIG - Base64 encoded service account JSON
- TOKEN_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 sheet - get_sheet_formulas - Get formulas from sheet - update_cells - Update cell values - batch_update_cells - Batch update multiple ranges

Sheet Management

- list_sheets - List all sheets in spreadsheet - create_sheet - Create new sheet - rename_sheet - Rename existing sheet - copy_sheet - Copy sheet between spreadsheets - add_rows / add_columns - Add rows or columns

Spreadsheet Management

- create_spreadsheet - Create new spreadsheet - list_spreadsheets - List spreadsheets in Drive - share_spreadsheet - Share spreadsheet with users

Authentication Setup

Method 1: Service Account (Recommended)

1. Create Google Cloud Project:
- Go to Google Cloud Console
- Create a new project or select existing one

2. Enable APIs:
- Go to "APIs & Services" > "Library"
- Enable "Google Sheets API"
- Enable "Google Drive API"

3. Create Service Account:
- Go to "APIs & Services" > "Credentials"
- Click "Create Credentials" > "Service Account"
- Fill in service account details
- Click "Create and Continue"

4. 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)

5. Set Environment Variable:

   export SERVICE_ACCOUNT_PATH="/path/to/your/service-account.json"

Method 2: OAuth2 (For User Access)

1. 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)

2. Set Environment Variable:

   export CREDENTIALS_PATH="/path/to/your/credentials.json"

Method 3: Base64 Encoded (For Containers/CI)

1. Encode Service Account:

   base64 -w 0 /path/to/service-account.json

2. 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:

1. Open your Google Spreadsheet
2. Click "Share" button
3. Add the service account email (found in your JSON file as client_email)
4. Give appropriate permissions (Viewer/Editor)

License

MIT

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.