Provides access to the Google ecosystem for spreadsheet automation and custom logic execution through Google Apps Script integration.
Integrates with Google Cloud Platform for API management and OAuth authentication to facilitate secure programmatic access to Google Sheets.
Enables AI agents to interact with Google Sheets to create, read, and edit spreadsheets, manage individual sheets, and synchronize state between multiple agents using a specialized handoff protocol.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Sheets MCPcreate a new spreadsheet called 'Project Tracker' and add 'Task' and 'Due Date' as headings"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Sheets MCP
A Model Context Protocol (MCP) connector for Google Sheets that allows AI agents to interact with spreadsheets directly.
Demo
https://github.com/user-attachments/assets/cc4729d9-4e6e-437b-848b-6da9a09418c3
Setup
Clone this repository:
Install dependencies:
npm installBuild:
npm run buildCreate OAuth credentials in Google Cloud Platform:
Create a new project in Google Cloud Console
Enable the Google Sheets API
Configure the OAuth consent screen
Create OAuth client ID credentials (Desktop application) with an appropriate redirect URI (ex: http://localhost:3000/oauth2callback)
Download the credentials and save as
gcp-oauth.keys.jsonin thedistsubdirectory
Start the MCP server (you'll automatically be prompted to authenticate/re-authenticate your Google account when necessary):
npm run start
Usage
Sample config:
Then you should be able to simply specify your spreadsheetId or ask your agent to create a new one for you.
Available Actions
Action | Description |
| Re-authenticate your Google Account when credentials expire |
| List all sheets/tabs in a Google Spreadsheet |
| Create a new sheet/tab in a Google Spreadsheet |
| Create a new Google Spreadsheet |
| Read all data from a specified sheet |
| Read the column headings from a sheet |
| Read specific rows from a sheet |
| Read specific columns from a sheet |
| Edit a single cell in a sheet |
| Edit an entire row in a sheet |
| Edit an entire column in a sheet |
| Insert a new row at specified position |
| Insert a new column at specified position |
| Rename a sheet/tab in a spreadsheet |
| Rename a Google Spreadsheet |
| Record a shift in the Handoff Ledger (Shift_Log) |
| Check who currently has the 'Baton' |
| Trigger custom logic (like Temporal Handshake) via URL |
Multi-LLM Handoff Protocol (Baton Sync)
This server is optimized for the Adam, Ben, and Cindy Protocol, allowing multiple LLMs (Gemini, Claude, ChatGPT) to maintain a synchronized state via a Shift_Log tab.
The Protocol Rules:
Check Status: Before starting any task, run
get_baton_statusto see the latest shift entry and handoff notes.Identify Yourself: When recording an entry, use your agent name (e.g., "Gemini", "Claude", "ChatGPT").
Temporal Handshake: Use
call_apps_scriptwith the actiontemporal_handshaketo sync timestamps if required by the Apps Script logic.Passing the Baton: When your shift ends, run
record_shift_entrywith a summary ofactionTakenand clearhandoffNotesfor the next agent.
Apps Script Integration
URL:
https://script.google.com/macros/s/AKfycbwTx6nUZqmXlH5g_mVCwxPctXe2lR0Y1Hy256TQVOLifAiPu0yJZYvkQywccyxJ38Gs/execAction:
temporal_handshakeSpreadsheet ID:
1LVcmsIKdgd5uf1K79EtGMgd7epD53x6OBO4cgi7GC9Q
License
MIT