MCP for Google Sheets, hosted and ready
SheetsGate delivers Streamable HTTP MCP with a full Sheets and Drive tool catalog. You authorize Google once; every assistant you plug in reuses that connection — no per-project OAuth, no servers to run.
Overview
Model Context Protocol (MCP) lets clients list tools and call them over HTTP. SheetsGate operates the server: you paste your dashboard URL and token into each assistant, link Google once, and every invocation respects your plan, token mode, and optional file scoping.
- Transport
- Streamable HTTP — same pattern as Claude Desktop and Cursor remote MCP. Legacy SSE may exist for older clients; prefer the
/mcpendpoint. - Authorization model
- The token in the URL authenticates your SheetsGate MCP session. Each Google API call runs only for an explicit tool invocation from your assistant, using the encrypted refresh token for the linked account. There is no background Drive indexing or broad account access — only the payloads those tools define.
- Plans & quotas
- Each plan defines monthly tool-call budgets, which tools are enabled, and per-token rate limits. The
server_infotool reflects your live quota. - Where it runs
- Public base URL
https://mcp.sheetsgate.com(fromNEXT_PUBLIC_MCP_URL). Your dashboard snippet is always aligned with this host.
Quick start
- Sign up and connect Google in the dashboard. Your assistants receive Sheets and Drive tools scoped exactly to the OAuth permissions you grant.
- Open MCP Tokens in the dashboard and create a token. Copy the secret once — it is only shown at creation.
- Replace the placeholder
YOUR_TOKENin the URL below with your real token string. - Add the MCP server in your IDE or assistant using the JSON in the sections below. Restart once if the client caches MCP configuration.
Endpoint URL
Every tool call uses the same pattern: your token sits in the path, followed by /mcp.
Use the exact URL from your dashboard when copying configuration — it always matches your environment.
Example MCP config
Key name sheetsgate is only a label for your client; you can rename it if the app allows.
{
"mcpServers": {
"sheetsgate": {
"url": "https://mcp.sheetsgate.com/v1/YOUR_TOKEN/mcp",
"transport": "streamable-http"
}
}
}Cursor & VS Code
Cursor
- Open Settings → MCP (or your project's
.cursor/mcp.json). - Add a server entry with
"url"pointing at your full…/v1/<token>/mcpURL and"transport": "streamable-http". - Save, then reload the MCP panel or restart Cursor so tools appear in the composer.
VS Code
If you use an MCP-capable extension or built-in agent support that accepts remote HTTP MCP servers, use the same url + streamable-http shape as in the snippet above. Field names can vary by extension — match its documented JSON shape but keep our URL unchanged.
Claude Desktop
Claude Desktop reads global MCP settings from a JSON file. Merge the mcpServers entry with any servers you already use.
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"sheetsgate": {
"url": "https://mcp.sheetsgate.com/v1/YOUR_TOKEN/mcp",
"transport": "streamable-http"
}
}
}Fully quit and reopen Claude Desktop after editing the file.
ChatGPT, automation, and other stacks
ChatGPT and browser assistants: use the same hosted URL wherever the product exposes remote MCP over HTTP. SheetsGate is a Streamable HTTP endpoint; clients limited to local stdio MCP need their own bridge — standard for that architecture, not a gap in the MCP surface we expose.
n8n, LangChain, custom agents: if the stack implements MCP Streamable HTTP (or the same JSON-RPC sequence an MCP client uses), point it at https://mcp.sheetsgate.com/v1/<token>/mcpand follow the vendor's connector guide. One URL for every integration.
Call from code
The MCP endpoint speaks JSON-RPC 2.0 over HTTP POST. Authenticate the same way as AI clients: put your secret token in the URL path, /v1/YOUR_TOKEN/mcp, then send only Content-Type: application/json and the JSON-RPC body. Treat the full URL like a password — avoid logging it or committing it to source control.
Request shape
method: always"tools/call"params.name: tool name (see the tool table below)params.arguments: tool-specific arguments
The response is standard JSON-RPC — result lives at result.content[0].text (parsed JSON).
curl -X POST https://mcp.sheetsgate.com/v1/YOUR_TOKEN/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "sheets_read",
"arguments": {
"spreadsheetId": "YOUR_SPREADSHEET_ID",
"range": "Sheet1!A1:D10"
}
}
}'All available tools and their arguments are listed in the tool reference section below.
How tools behave
Discovery & execution
After your client connects, it lists tools from the server. Each request maps to one MCP tool your assistant invoked; SheetsGateexecutes it against Google's APIs with your linked account. Reads and writes are confined to the ranges and options in the tool arguments — deterministic contracts, no silent scope expansion.
Plan gates & token modes
- Tool allowlists come from your subscription. If a tool is not on your plan, the server rejects the call with an upgrade-oriented message.
- Read-only tokens only expose read/search tools (reads, metadata, Drive list, find). Mutating tools return a permission error.
- Optional per-token tool picks (on supported plans) can further narrow which names succeed even if your plan normally includes more.
Spreadsheet IDs & validation
Tools expect valid Google spreadsheet or file IDs. Passing malformed IDs fails fast before any request is sent to Google. If you connect optional per-file allowlists on your token, requests outside that set are denied — useful when you want an assistant to touch only one workbook. On supported plans you can also set per-column read/write rules for that single allowed spreadsheet: enforcement applies on the MCP tool path only (the same defense-in-depth caveat as file allowlists — direct Google OAuth access is unchanged).
Latency, timeouts, and errors
- Individual tool work is bounded by a server-side timeout (on the order of one minute for heavy operations).
- User-facing error text is intentionally generic; sensitive details stay in server logs. Domain-safe messages like “spreadsheet not found” may pass through when useful.
- Large JSON-RPC payloads are capped — prefer batch tools or fewer giant cell arrays per call.
Monthly calls & burst limits
Reference values from the deployed configuration (operations may tune limits in the database):
| Plan | Calls / month |
|---|---|
| Free | 500 |
| Basic | 1,500 |
| Pro | 4,000 |
| Team | 10,000 |
| Enterprise | Unlimited |
Call server_info in-session for your exact remaining allowance.
Tool reference
Descriptions below match the live catalog. Argument schemas are exposed by the MCP client when you attach the server; your assistant reads those field names and types the same way it does for any MCP tool.
Session
Introspect the live connection: plan tier, usage against monthly quota, and the tool names available for this token.
server_infoGet current plan, usage stats, and available tools for this session
Read & search
Fetch values, metadata, formulas, and Drive listings without mutating data. Prefer batch reads when an agent needs many ranges.
sheets_readRead any range of data from a spreadsheetsheets_get_metadataDiscover sheet names, tab count, and dimensionssheets_get_multipleRead several ranges from a spreadsheet in one requestsheets_get_formulasExtract the raw formulas from a range of cellssheets_findSearch for values and return matching cell locationsdrive_listSearch and list spreadsheets in Google Drivedrive_get_fileGet metadata for a specific Drive file by ID
Write & structure
Create and change spreadsheets: cells, rows, tabs, names, and coordinated updates. Each write happens when your AI calls the tool, under the Google account you linked.
sheets_writeWrite or update cells with new valuessheets_appendAdd new rows without overwriting existing datasheets_clearWipe a range cleansheets_createCreate a brand-new spreadsheet on demandsheets_add_sheetAdd a new tab to an existing spreadsheetsheets_insert_rowsInsert blank rows at a specific positionsheets_renameRename a spreadsheet or a sheet tabsheets_copy_sheetDuplicate a sheet tab within or across spreadsheetssheets_batch_updateExecute multiple spreadsheet updates atomicallysheets_find_replaceFind and replace values across a sheet
Formatting & charts
Visual presentation: typography, fills, borders, charts, conditional rules, and frozen panes.
sheets_formatApply bold, italic, colors, and borders to cellssheets_format_batchApply formatting to multiple ranges in one callsheets_chartCreate charts and visualizations from sheet datasheets_conditional_formatConditional colors and text styles by cell valuesheets_freezeFreeze header rows or label columns
Formulas & validation
USER_ENTERED formulas and data validation (dropdowns, checkboxes, numeric rules) on ranges.
sheets_add_formulasWrite formulas with USER_ENTERED parsing (multiple cells)sheets_data_validationDropdowns, numeric/date rules, checkboxes on a range
Additional tools
These entries are also published when your plan includes them.
sheets_delete_rowsDelete rows by 0-based index; rows below shift upsheets_delete_sheetRemove a sheet tab by numeric sheet IDsheets_sortSort a row range by one or more columns
Security hygiene
- Rotate tokens when someone leaves the team or a client config could have been exposed.
- Use read-only tokens for experiments — production writes stay behind separate credentials.
- Narrow tools and file IDs in the dashboard when an automation should touch a single workbook or capability set.
- Your AI vendor processes prompts and tool payloads under its own policies; classify sensitive data accordingly.