Google Sheets Mcp

by mkummer225

137 stars
291 downloads
Not rated
GitHub

About

A server for interacting with Google Sheets, allowing you to read, write, and manage spreadsheet data.

Details

Author
mkummer225
GitHub stars
137
Downloads
291
Categories
Productivity, Other

- Authenticate using Google OAuth 2.0 with desktop credentials
- List, create, and rename sheets and spreadsheets
- Read all data, specific rows, or columns from a sheet
- Edit individual cells, entire rows, or entire columns
- Insert new rows or columns at specified positions
- Refresh authentication when credentials expire

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Google Sheets Mcp
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Clone the repository, run npm install and npm run build, then place your Google OAuth credentials file (gcp-oauth.keys.json) in the dist directory. Start the server with npm run start and configure your MCP client with the sample JSON config pointing to the built index.js file. Specify a spreadsheetId or ask your agent to create a new spreadsheet.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "google sheets mcp": {
            "google-sheets-mcp": {
                "command": "node",
                "args": [
                    "/{path_to_dir}/google-sheets-mcp/dist/index.js"
                ]
            }
        }
    }
}

McpServers

{
    "google-sheets-mcp": {
        "command": "node",
        "args": [
            "/{path_to_dir}/google-sheets-mcp/dist/index.js"
        ]
    }
}

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

2. Install dependencies:
npm install

3. Build:
npm run build

4. 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

5. 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": [
"/{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

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.