Allows AI agents to interact with Google Sheets directly, providing tools to create, read, and edit spreadsheets, sheets, rows, and columns, as well as manage sheet metadata and authentication.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Sheets MCPAdd a new row to the 'Expenses' sheet with today's lunch for $15"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Clone this repository:
Install dependencies:
npm installBuild:
npm run buildCreate 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.jsonin thedistsubdirectory
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:
Build:
npm run buildSet env vars (do not commit secrets):
MCP_TRANSPORT=ssePORT=3000(or your platform’s port)GSHEETS_OAUTH_JSON— your OAuth client JSON (plain or base64-encoded). Required if the filedist/gcp-oauth.keys.jsonis not present.GSHEETS_CREDENTIALS_JSON— a pre-authorized credentials JSON (plain or base64-encoded). Use this to avoid interactive auth on hosted environments.
Deploy
dist/to Railway and runnode dist/index.js.In your client/UI, point the MCP URL to
https://<your-railway-app>.up.railway.app/sse(the server will direct POSTs to/messagesvia 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:
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 |
| Re-authenticate your Google Account when credentials expire |
| List all sheets/tabs in a Google Spreadsheet |
| Create a new sheet/tab in a Google Spreadsheet |
| Create a new Google Spreadsheet |
| Read all data from a specified sheet |
| Read the column headings from a sheet |
| Read specific rows from a sheet |
| Read specific columns from a sheet |
| Edit a single cell in a sheet |
| Edit an entire row in a sheet |
| Edit an entire column in a sheet |
| Insert a new row at specified position |
| Insert a new column at specified position |
| Rename a sheet/tab in a spreadsheet |
| Rename a Google Spreadsheet |
License
MIT