Google Sheets MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
git clone https://github.com/Jsgordon420365/google-sheets-mcp
cd google-sheets-mcp
npm install
npm run build
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add google-sheets-mcp -- node "<FULL_PATH_TO_GOOGLE_SHEETS_MCP>/dist/index.js"

Replace <FULL_PATH_TO_GOOGLE_SHEETS_MCP>/dist/index.js with the actual folder you prepared in step 1.

README.md

An MCP connector for Google Sheets that allows AI agents to interact directly.

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

  1. Clone this repository:
git clone https://github.com/Jsgordon420365/google-sheets-mcp
cd google-sheets-mcp
  1. Install dependencies: npm install

  2. Build: npm run build

  3. Create OAuth credentials in Google Cloud Platform:

  4. Start the MCP server (you'll automatically be prompted to authenticate/re-authenticate your Google account when necessary): npm run start

Usage

Sample config:

{
  "mcpServers": {
    "google-sheets-mcp": {
      "command": "node",
      "args": ["/users/gordo/google-sheets-mcp/dist/index.js"]
    }
  }
}

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
refresh_auth Re-authenticate your Google Account when credentials expire
list_sheets List all sheets/tabs in a Google Spreadsheet
create_sheet Create a new sheet/tab in a Google Spreadsheet
create_spreadsheet Create a new Google Spreadsheet
read_all_from_sheet Read all data from a specified sheet
read_headings Read the column headings from a sheet
read_rows Read specific rows from a sheet
read_columns Read specific columns from a sheet
edit_cell Edit a single cell in a sheet
edit_row Edit an entire row in a sheet
edit_column Edit an entire column in a sheet
insert_row Insert a new row at specified position
insert_column Insert a new column at specified position
rename_sheet Rename a sheet/tab in a spreadsheet
rename_doc Rename a Google Spreadsheet
record_shift_entry Record a shift in the Handoff Ledger (Shift_Log)
get_baton_status Check who currently has the 'Baton'
call_apps_script 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:**

  1. Check Status: Before starting any task, run get_baton_status to see the latest shift entry and handoff notes.
  2. Identify Yourself: When recording an entry, use your agent name (e.g., "Gemini", "Claude", "ChatGPT").
  3. Temporal Handshake: Use call_apps_script with the action temporal_handshake to sync timestamps if required by the Apps Script logic.
  4. Passing the Baton: When your shift ends, run record_shift_entry with a summary of actionTaken and clear handoffNotes for the next agent.

**Apps Script Integration**

  • URL: https://script.google.com/macros/s/AKfycbwTx6nUZqmXlH5g_mVCwxPctXe2lR0Y1Hy256TQVOLifAiPu0yJZYvkQywccyxJ38Gs/exec
  • Action: temporal_handshake
  • Spreadsheet ID: 1LVcmsIKdgd5uf1K79EtGMgd7epD53x6OBO4cgi7GC9Q

License

MIT

Tools (18)

refresh_authRe-authenticate your Google Account when credentials expire
list_sheetsList all sheets/tabs in a Google Spreadsheet
create_sheetCreate a new sheet/tab in a Google Spreadsheet
create_spreadsheetCreate a new Google Spreadsheet
read_all_from_sheetRead all data from a specified sheet
read_headingsRead the column headings from a sheet
read_rowsRead specific rows from a sheet
read_columnsRead specific columns from a sheet
edit_cellEdit a single cell in a sheet
edit_rowEdit an entire row in a sheet
edit_columnEdit an entire column in a sheet
insert_rowInsert a new row at specified position
insert_columnInsert a new column at specified position
rename_sheetRename a sheet/tab in a spreadsheet
rename_docRename a Google Spreadsheet
record_shift_entryRecord a shift in the Handoff Ledger (Shift_Log)
get_baton_statusCheck who currently has the 'Baton'
call_apps_scriptTrigger custom logic (like Temporal Handshake) via URL

Configuration

claude_desktop_config.json
{"mcpServers": {"google-sheets-mcp": {"command": "node", "args": ["/users/gordo/google-sheets-mcp/dist/index.js"]}}}

Try it

Create a new spreadsheet for my project tracking and add a header row with 'Task', 'Status', and 'Assignee'.
Read the data from the 'Tasks' sheet and tell me which items are marked as 'Pending'.
Update the status of the task in row 5 to 'Completed' in my project spreadsheet.
Check the current baton status to see if it is my turn to work on the shared project log.
Record a shift entry in the ledger summarizing the work I just completed.

Frequently Asked Questions

What are the key features of Google Sheets MCP?

Direct read and write access to Google Sheets cells, rows, and columns.. Automated spreadsheet and tab creation capabilities.. Multi-LLM handoff protocol for state synchronization between different AI agents.. Integration with Google Apps Script for custom logic execution.. Built-in authentication management for Google OAuth..

What can I use Google Sheets MCP for?

Automating data entry and reporting tasks directly from AI agent workflows.. Coordinating complex, multi-step projects across different AI models using a shared ledger.. Managing project task lists and status tracking within Google Sheets.. Triggering custom Google Apps Script workflows via AI-driven commands..

How do I install Google Sheets MCP?

Install Google Sheets MCP by running: git clone https://github.com/Jsgordon420365/google-sheets-mcp && cd google-sheets-mcp && npm install && npm run build

What MCP clients work with Google Sheets MCP?

Google Sheets MCP works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Google Sheets MCP docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare