Skip to main content
Glama

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

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jsgordon420365/google-sheets-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server