Skip to main content
Glama

MCP Google Sheets Server

This project provides a Model Context Protocol (MCP) server that allows interaction with Google Sheets.

It exposes tools to:

  • List sheets (tabs) within a spreadsheet.

  • Read data from specific cell ranges.

  • Write data to specific cell ranges.

It explicitly does not provide tools for managing Google Drive files (listing, creating, deleting folders/files). Access is restricted to spreadsheet content only.

Prerequisites

  1. Python 3.11+

  2. Google Cloud Project with the Google Sheets API enabled

  3. Service Account Key:

    • Go to the Google Cloud Console and create a new Service Account.

    • Download the service account key file (JSON format).

    • Grant this service account the "Editor" role for the Google Sheets you want to access.

Related MCP server: google-sheets-mcp

How to use

  1. Clone the repository.

    git clone https://github.com/shionhonda/mcp-gsheet.git
  2. Set up Google Credentials:

    • Set the GOOGLE_APPLICATION_CREDENTIALS environment variable to the absolute path of your downloaded service account JSON key file.

    export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
    • Alternatively, you can place the key file in a standard location recognized by the Google Cloud client libraries (not recommended for shared environments).

  3. Install Dependencies:

    uv venv
    source .venv/bin/activate
  4. Run the Server

    To develop the server with MCP Inspector:

    mcp dev server.py

    To run the server:

    mcp run server.py

    The server will start and listen for MCP requests over standard input/output (stdio).

Claude Desktop

Add the following to your Claude Desktop configuration:

{
  "mcpServers": {
    "gsheet": {
      "command": "/path/to/uv",
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account-key.json"
      },
      "args": ["--directory", "/path/to/mcp-gsheet", "run", "server.py"]
    }
  }
}

MCP Tools Provided

  • list_sheets(spreadsheet_id: str) -> list[str]: Lists the names of all sheets in the specified spreadsheet.

  • read_cells(spreadsheet_id: str, range_name: str) -> list[list[str]]: Reads data from the given range (e.g., 'Sheet1!A1:B5').

  • write_cells(spreadsheet_id: str, range_name: str, values: list[list[str]]) -> str: Writes the provided 2D list of values to the specified starting cell/range (e.g., 'Sheet1!C1').

Available Tools

3 tools
list_sheetsB

Lists all sheets (tabs) in a specific Google Spreadsheet.

Inputs: spreadsheet_id (required).

read_cellsB

Reads data from a specified range in a Google Sheet.

Inputs: range_name (required), spreadsheet_id (required).

write_cellsB

Writes data to a specified range in a Google Sheet.

Inputs: values (required), range_name (required), spreadsheet_id (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool performs a clearly distinct function: listing tabs, reading cell data, and writing cell data. There is no overlap or ambiguity between them.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern: list_sheets, read_cells, write_cells. The naming is uniform and predictable.

    Tool Count5/5

    Three tools is a well-scoped set for a Google Sheets server focused on basic data operations. Each tool is necessary and there are no redundant additions.

    Completeness4/5

    The core workflows of listing available sheets and reading/writing cell data are covered. Minor gaps exist such as creating or deleting sheets, but the essential use cases are addressed.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers