Skip to content
appsgit

MCP Gsheets

MCP Gsheets is an MCP server that adds productivity tools to AI assistants such as Claude Desktop, Claude Code and Cursor. MCP server for Google Sheets API — read, write, format, batch operations. It has 100 GitHub stars, is released under the MIT license and runs locally with npx -y mcp-gsheets.

github.com/freema/mcp-gsheets (opens in a new tab)

Install MCP Gsheets

Generated from the server's MCP registry entry. Replace your-value with your own values.

Claude Desktop

claude_desktop_config.json
{
  "mcpServers": {
    "mcp-gsheets": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-gsheets"
      ],
      "env": {
        "GOOGLE_PROJECT_ID": "your-value",
        "GOOGLE_APPLICATION_CREDENTIALS": "your-value",
        "GOOGLE_SERVICE_ACCOUNT_KEY": "your-value",
        "GOOGLE_PRIVATE_KEY": "your-value"
      }
    }
  }
}

Settings > Developer > Edit Config. macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\. Restart Claude Desktop afterwards.

Claude Code

claude mcp add --env GOOGLE_PROJECT_ID=your-value --env GOOGLE_APPLICATION_CREDENTIALS=your-value --env GOOGLE_SERVICE_ACCOUNT_KEY=your-value --env GOOGLE_PRIVATE_KEY=your-value --transport stdio mcp-gsheets -- npx -y mcp-gsheets

Cursor

.cursor/mcp.json
{
  "mcpServers": {
    "mcp-gsheets": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mcp-gsheets"
      ],
      "env": {
        "GOOGLE_PROJECT_ID": "your-value",
        "GOOGLE_APPLICATION_CREDENTIALS": "your-value",
        "GOOGLE_SERVICE_ACCOUNT_KEY": "your-value",
        "GOOGLE_PRIVATE_KEY": "your-value"
      }
    }
  }
}

Project file; use ~/.cursor/mcp.json to enable it in every project.

VS Code

.vscode/mcp.json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "google_application_credentials",
      "description": "GOOGLE_APPLICATION_CREDENTIALS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "google_service_account_key",
      "description": "GOOGLE_SERVICE_ACCOUNT_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "google_private_key",
      "description": "GOOGLE_PRIVATE_KEY",
      "password": true
    }
  ],
  "servers": {
    "mcp-gsheets": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mcp-gsheets"
      ],
      "env": {
        "GOOGLE_PROJECT_ID": "your-value",
        "GOOGLE_APPLICATION_CREDENTIALS": "${input:google_application_credentials}",
        "GOOGLE_SERVICE_ACCOUNT_KEY": "${input:google_service_account_key}",
        "GOOGLE_PRIVATE_KEY": "${input:google_private_key}"
      }
    }
  }
}

Config formats checked against the official docs on Oct 7, 2026: modelcontextprotocol.io (opens in a new tab), code.claude.com (opens in a new tab), cursor.com (opens in a new tab), code.visualstudio.com (opens in a new tab).

Environment variables

Variables the server reads at startup.

NameRequiredDescription
GOOGLE_PROJECT_IDYesGoogle Cloud project ID
GOOGLE_APPLICATION_CREDENTIALSsecretNoPath to service account key JSON file (auth method 1)
GOOGLE_SERVICE_ACCOUNT_KEYsecretNoService account key as JSON string (auth method 2)
GOOGLE_PRIVATE_KEYsecretNoService account private key in PEM format (auth method 3)
GOOGLE_CLIENT_EMAILNoService account email (auth method 3)

Tools (40)

Parsed from the Tools section of the README; check the repository for the current list.

  • sheets_get_values

    Read cell values from a single range

  • sheets_batch_get_values

    Read cell values from multiple ranges in one request

  • sheets_get_metadata

    Get spreadsheet metadata: title, locale, sheets list with IDs, row/column counts

  • sheets_check_access

    Verify that the service account can access a spreadsheet

  • sheets_update_values

    Write values to a single range (overwrites existing content)

  • sheets_batch_update_values

    Write values to multiple ranges in one request

  • sheets_append_values

    Append rows after the last row of an existing table. Default insertDataOption is OVERWRITE — set INSERTROWS to push…

  • sheets_clear_values

    Clear all values in a range (preserves formatting)

  • sheets_insert_rows

    Insert blank or pre-filled rows at a specific position

  • sheets_delete_columns

    Delete one or more columns using a full-column A1 range

  • sheets_delete_rows

    Delete one or more rows using a full-row A1 range

  • sheets_insert_link

    Insert a hyperlink formula into a cell

  • sheets_insert_date

    Insert a date/datetime value formatted correctly into a cell

  • sheets_create_spreadsheet

    Create a new Google Sheets file

  • sheets_insert_sheet

    Add a new sheet tab to an existing spreadsheet

  • sheets_delete_sheet

    Remove a sheet tab by its numeric sheet ID

  • sheets_duplicate_sheet

    Copy a sheet within the same spreadsheet

  • sheets_copy_to

    Copy a sheet to a different spreadsheet

  • sheets_update_sheet_properties

    Rename a sheet, change tab colour, toggle grid lines, etc.

  • sheets_batch_delete_sheets

    Delete multiple sheet tabs in one request

  • sheets_format_cells

    Apply background colour, font style, alignment and number format to a range

  • sheets_batch_format_cells

    Apply different formats to multiple ranges in one request

  • sheets_update_borders

    Set or remove borders on a range (style, width, colour per side)

  • sheets_merge_cells

    Merge a range of cells

  • sheets_unmerge_cells

    Unmerge previously merged cells in a range

  • sheets_add_conditional_formatting

    Add a conditional formatting rule (gradient or boolean) to a range

  • sheets_add_table

    Create a native Google Sheets table with typed columns and optional dropdown values

  • sheets_update_table

    Update an existing native Google Sheets table by table ID using an explicit field mask

  • sheets_delete_table

    Delete a native Google Sheets table by table ID

  • sheets_get_tables

    Read native tables for a spreadsheet or a specific sheet

  • sheets_create_chart

    Create a bar, line, pie, column or other chart on a sheet

  • sheets_update_chart

    Modify an existing chart's spec or position

  • sheets_delete_chart

    Remove a chart from a spreadsheet

  • sheets_get_merged_cells

    Return all merged cell ranges for a sheet, with A1 notation and raw GridRange coordinates

  • sheets_get_sheet_dimensions

    Return column widths, row heights, frozen column/row counts, and hidden flags for every column and row

  • sheets_get_sheet_formatting

    Read raw cell formatting (background colour, font, borders, alignment, number format) for a range without returning…

  • sheets_get_conditional_formatting

    Read all conditional formatting rules and banded (alternating-colour) ranges defined on a sheet

  • sheets_get_sheet_structure

    Lightweight structural metadata only — no per-cell data. Returns dimensions, frozen rows/cols, tab colour, column…

  • sheets_get_formatting_compact

    Read cell formatting for a range and return it as compact A1Range→format pairs (run-length encoded).

  • sheets_get_full_sheet_snapshot

    Master one-shot tool — returns all structural and formatting metadata (merges, dimensions, conditional formatting, and…

About MCP Gsheets

A Model Context Protocol (MCP) server for Google Sheets API integration. Enables reading, writing, and managing Google Sheets documents directly from your MCP client (e.g., Claude Code, Claude Desktop, Cursor, etc.).

  • automation
  • google-sheets-api
  • mcp
  • nodejs
  • typescript

FAQ

MCP Gsheets FAQ

Still curious? Email info@appsgit.com.

What is MCP Gsheets?

MCP Gsheets is an MCP server that adds productivity tools to AI assistants such as Claude Desktop, Claude Code and Cursor. MCP server for Google Sheets API — read, write, format, batch operations. It has 100 GitHub stars, is released under the MIT license and runs locally with npx -y mcp-gsheets. The source code is at github.com/freema/mcp-gsheets.

How do I install the MCP Gsheets MCP server?

Add the command npx -y mcp-gsheets to your MCP client: put it in claude_desktop_config.json for Claude Desktop, run claude mcp add for Claude Code, or add it to .cursor/mcp.json (Cursor) or .vscode/mcp.json (VS Code). The snippets on this page are ready to paste.

Is MCP Gsheets free?

The server is open source under the MIT license, so running it is free. It needs credentials (GOOGLE_APPLICATION_CREDENTIALS, GOOGLE_SERVICE_ACCOUNT_KEY and GOOGLE_PRIVATE_KEY) for the service it connects to, which may require a paid account.

Is MCP Gsheets actively maintained?

The most recent commit was on Oct 2, 2026. The latest release is v1.10.3, published Sep 19, 2026. appsgit only lists MCP servers with a commit in the last six months and re-checks every server daily.