Google Sheets MCP Server
A hosted Google Sheets MCP server. Connect any Google Sheet to Claude, ChatGPT, Cursor, or Claude Code — and query it in plain English.
No Google Cloud project. No service account. No server to run. Paste a share URL and you get an MCP endpoint.
Read-only by design. The server can list, inspect, and query your sheet. It cannot modify it. Safe to hand to an agent.
Powered by PasteSheet. Published to the official MCP Registry as com.pastesheet/google-sheets.
Quick start
Claude Code
claude mcp add --transport http pastesheet https://pastesheet.com/mcp
Claude Desktop / Claude web
Settings → Connectors → Add custom connector → paste:
https://pastesheet.com/mcp
You'll be sent through OAuth once, then Claude can query every sheet in your workspace.
Cursor
~/.cursor/mcp.json — see examples/cursor-mcp.json:
{
"mcpServers": {
"pastesheet": {
"url": "https://pastesheet.com/mcp"
}
}
}
ChatGPT
Settings → Connectors → Add custom connector → https://pastesheet.com/mcp, then authorize with OAuth.
Two servers, two URLs
| Server | URL | Use it when |
|---|---|---|
| Workspace | https://pastesheet.com/mcp | You want one connector that exposes every sheet in your account. Authenticates with OAuth. Start here. |
| Single sheet | https://pastesheet.com/mcp/sheets/{endpoint-id} | You want to expose exactly one sheet. Public sheets are keyless; private ones take Authorization: Bearer ps_.... |
The workspace URL is the same for everyone — OAuth resolves which account you are, and you only ever see your own sheets.
Tools
| Tool | What it does |
|---|---|
list_sheets | Discover the sheets in your workspace and their ids. (workspace server only) |
list_tabs | List a sheet's tabs and the default one. |
get_schema | Read each column's name, alias, and type before querying. |
query_rows | Read rows with filters, partial matches, full-text search, sorting, and pagination. |
Example prompts
Once connected, just ask:
- "What's in my Products sheet?"
- "Which rows in the Q3 tab have status = shipped?"
- "Total revenue by region from my Sales sheet."
- "Find every customer whose company starts with 'Acme'."
The agent calls list_sheets → get_schema → query_rows on its own. You don't name the tools.
Why not talk to the Google Sheets API directly?
You can — it's free. But it's built for a different job:
- It reads cells and ranges, not records. You reassemble rows yourself.
- It needs a Google Cloud project plus OAuth or a service account.
- It meters you: 300 read requests per minute per project, 60 per minute per user, then returns
429(Google's published limits).
That last one bites with agents, because agents are chatty — one question becomes a schema read plus several filtered queries. PasteSheet reads the sheet once, caches it, and serves the rest from cache, so the tenth query costs Google nothing.
Pricing
The free tier runs 3 endpoints, 2,000 requests/month, 500 rows, 1 tab per sheet — no credit card. Paid plans raise the caps and add private endpoints, custom cache TTL, and full-text search.
Links
- PasteSheet
- Connect Google Sheets to Claude
- Connect Google Sheets to ChatGPT
- Connect Google Sheets to Cursor
- Google Sheets MCP for Claude Code
- All guides
Issues and questions: open an issue here, or get in touch.