Google Sheets MCP

Google Sheets MCP

An MCP server that enables AI agents to read, create, and modify Google Spreadsheets through actions like editing cells and managing sheets. It features a specialized handoff protocol to synchronize tasks and state between different LLMs using a shared spreadsheet log.

Category
Visit Server

README

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:

    • 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.json in the dist subdirectory
  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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured