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/mkummer225/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

Hosted / Railway (SSE transport)

If you need a URL-based MCP endpoint (e.g., for the Agent Toolkit’s “Connect to MCP Server” flow), run with the SSE transport and deploy to a host like Railway:

  1. Build: npm run build

  2. Set env vars (do not commit secrets):

    • MCP_TRANSPORT=sse

    • PORT=3000 (or your platform’s port)

    • GSHEETS_OAUTH_JSON — your OAuth client JSON (plain or base64-encoded). Required if the file dist/gcp-oauth.keys.json is not present.

    • GSHEETS_CREDENTIALS_JSON — a pre-authorized credentials JSON (plain or base64-encoded). Use this to avoid interactive auth on hosted environments.

  3. Deploy dist/ to Railway and run node dist/index.js.

  4. In your client/UI, point the MCP URL to https://<your-railway-app>.up.railway.app/sse (the server will direct POSTs to /messages via the SSE endpoint event).

Note: Keep *.keys.json and credential files out of git. Use env vars or your host’s secrets manager instead.

Usage

Sample config:

{ "mcpServers": { "google-sheets-mcp": { "command": "node", "args": [ "/{path_to_dir}/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

License

MIT

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

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/RoelofvHeeren/Final-Sheet-MCP'

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