Connect Google Sheets to any MCP client
The Model Context Protocol (MCP) lets AI agents pull live data from external tools. PasteSheet exposes any Google Sheet as an MCP server, so Claude, Cursor, and ChatGPT can list tabs, read your schema, and query rows without you writing a single line of glue code.
Last updated
Key facts
- MCP is an open protocol built on JSON-RPC 2.0. A server exposes Resources, Prompts and Tools to any MCP client — Claude, Cursor, ChatGPT and VS Code all speak it. source
-
PasteSheet's MCP server exposes three tools —
list_tabs,get_schemaandquery_rows— and is read-only by design: an agent can query your sheet but can never modify it. - Public sheets need no Google Cloud project or service account. Restricted sheets use a file-scoped Google connection and Picker selection; neither path requires you to build your own OAuth client or server.
-
The Google Sheets API allows 300 read requests per minute per project and 60 per minute per user. Past that it returns
429 RESOURCE_EXHAUSTED. source
What is a Google Sheets MCP server?
A Google Sheets MCP server exposes a spreadsheet to an AI client as a set of callable tools, so Claude, Cursor, or ChatGPT can list its tabs, inspect its columns, and query its rows on demand. PasteSheet hosts one for any sheet you paste — no Google Cloud project, no service account, and nothing to deploy.
MCP (the Model Context Protocol) is the open standard AI clients use to talk to external data and tools. An MCP server advertises a set of tools; the AI decides when to call them and how to use the results. A "Google Sheets MCP server" is simply a server that does this for your spreadsheet.
PasteSheet builds that server for you. For a link-shared sheet, paste its URL. For a restricted sheet, connect your Google account and choose the exact file in Google Picker. Either way you get a hosted MCP endpoint that any compatible client can add as a custom connector, with no Google Cloud project or server to run. (Google's own official and Workspace MCP servers do not cover Sheets as a hosted service — see how they compare.)
The tools your agent gets
Once connected, the AI can call three read-only tools against your sheet:
-
list_tabs— discover the tabs in the sheet and the default one. -
get_schema— see each column's name, alias, and type before querying. -
query_rows— read rows with exact-match filters, partial (contains) matches, full-text search, sorting, and pagination.
Connect a single sheet
Each endpoint has its own MCP URL. Open the endpoint's Connect via MCP panel in PasteSheet, copy the URL, and add it as a custom connector. For a Desktop-style client the config looks like this:
{
"mcpServers": {
"pastesheet": {
"url": "https://pastesheet.com/mcp/sheets/your-endpoint-id"
}
}
}Connect from your client
The same endpoint works in every MCP-compatible client — pick yours for exact steps:
- Claude Desktop and Claude web — add the endpoint URL as a custom connector.
-
Claude Code — one
claude mcp addcommand in the terminal. - Cursor — add it to the MCP settings.
- ChatGPT — connect the workspace server with OAuth.
- VS Code and Windsurf — paste the URL into the MCP config.
- Manus AI — add it as a custom MCP connector.
- n8n — use the MCP Client Tool node in a workflow.
Public vs private endpoints
Public endpoints are keyless — the MCP URL just works. For a private endpoint, append ?api_key=YOUR_KEY to the URL for web clients, or send an Authorization: Bearer YOUR_KEY header from CLI clients like Cursor and Claude Code.
Want one connector that exposes every sheet you own — or need to use ChatGPT? Connect the workspace server at https://pastesheet.com/mcp with an account key or OAuth. See the per-client guides below for exact steps.
Why does an agent need a cached endpoint?
Because agents are chatty. An agent exploring a question rarely reads a sheet once — it lists tabs, checks the schema, then fires several filtered queries in a row. Hitting Google directly for each of those burns quota fast.
Google's Sheets API allows 300 read requests per minute per project and only 60 per minute per user, and returns a 429 once you cross it (Google's published usage limits). PasteSheet reads your sheet once, caches the rows, and serves every subsequent tool call from that cache — so an agent's tenth query costs Google nothing. The cache window is yours to set, from 30 seconds up to an hour.
What a tool call actually looks like
You never write this by hand — the agent composes it — but seeing the shape explains why the connection is reliable. Ask "show me active enterprise customers, newest first" and the client emits roughly:
{
"name": "query_rows",
"arguments": {
"tab": "Customers",
"filters": { "status": "active", "plan": "enterprise" },
"sort": "signed_up",
"order": "desc",
"limit": 20
}
}Why this beats pasting the sheet into the chat
The filtering happens in the endpoint, not in the model. That distinction matters more than it sounds. When you paste a spreadsheet into a conversation, the model has to hold every row in context and reason over all of them — which is expensive, degrades as the sheet grows, and quietly goes wrong on arithmetic across hundreds of rows.
With a query tool, twenty matching rows come back and the model reasons over twenty rows. A 50,000-row sheet answers just as accurately as a 50-row one, because the sheet size never enters the context window. And the data is current — a pasted copy is stale the moment somebody edits a cell.
Questions worth asking once it is connected
These all work without you naming a column or a tab — the agent reads the schema first:
- "What tabs are in this sheet, and what does each one hold?" — orientation, useful on a sheet you did not build.
- "Which rows have a blank email?" — the kind of data-quality sweep nobody does manually.
-
"Total revenue by region for last quarter." — on Pro, this becomes one
group_by+sumcall rather than the agent adding numbers itself. - "Find anything mentioning 'refund' anywhere in the sheet." — full-text search across every column.
- "Compare this month's signups to last month's and tell me what changed." — two queries and a comparison, composed by the agent.
What the agent can and cannot reach
The security model is deliberately narrow. The tools are read-only — there is no write tool to call, so no prompt, however confused or adversarial, can make the agent modify or delete your data. The worst case is a query returning rows you did not expect, not a mutated spreadsheet.
Scope is the other half. A per-sheet connector reaches exactly one endpoint; the workspace server reaches the endpoints on your account and nothing else. A restricted source can be connected through Google Picker, which grants PasteSheet file-scoped access to the exact sheet you choose. The app only reads that sheet and exposes no write path.
Keep two ideas separate: a private endpoint is not the same as a private sheet. The source can stay restricted in Google while the endpoint is public or protected with a bearer key. If a restricted source powers a public endpoint, the endpoint data is public to anyone holding its URL, so choose that setting deliberately.
Ways to get Google Sheets into MCP
There are four common ways to get a spreadsheet into an MCP client, and they are not equivalent — see the deep dives on Google's official MCP, a self-hosted server, and Zapier and Composio:
| PasteSheet | Google's own MCP | Self-hosted OSS | Zapier / Composio | |
|---|---|---|---|---|
| Hosted for you | Yes | Hosted servers skip Sheets | No — you run it | Yes |
| Covers Sheets | Yes | No hosted Sheets server | Yes | Yes |
| Google Cloud project | No | Yes | Yes | No — OAuth your account |
| Access model | Read-only by design | Read-write, your account | Depends | Read-write, your account |
| Also a REST API | Yes — same endpoint | No | No | No |
| Setup | Paste a share URL | Cloud project + OAuth | Cloud project + hosting | Authorize Google account |
Why the schema step matters
Spreadsheets are untyped, and that is normally the thing that breaks automated access. A column headed Date might hold 2026-01-04, Jan 4, and an empty string in three adjacent rows, and a naive reader treats all three as text.
When you connect a sheet, PasteSheet infers each column's type and a clean alias, and get_schema hands that to the agent before it queries. So the agent knows signed_up is a date and can sort by it, rather than guessing from the header string. It also means you can rename a column for the API without renaming it in the spreadsheet, which keeps a messy human-facing header from leaking into every query.
If the sheet's columns later change shape, schema drift alerts tell you before an agent starts returning confidently wrong answers.
Open source, self-hosted, and in the MCP Registry
The server's docs, client config, and registry manifest are open on GitHub, and it is listed in the official MCP Registry as com.pastesheet/google-sheets — so any client that browses the registry can discover it.
Prefer to run your own? The hosted endpoint is the fastest path, but you have options: see the open-source Google Sheets MCP landscape, or self-host a Sheets MCP server on your own infrastructure and weigh the trade-offs against a managed endpoint.
What it costs
MCP is included on the Free plan. Connect any public endpoint over MCP with no Google Cloud project and no credit card. Private endpoints and the account-wide workspace server need a paid plan (from Starter ($9/mo)) for the keys and OAuth they authenticate with.
Pro adds full-text search and aggregation (count, sum, avg, group_by) that your AI agent can call through query_rows.
Starter
For indie makers shipping a real app.
- Endpoints
- 10
- Requests / mo
- 50,000
- Row cap
- 5,000
- MCP for AI agents
- Private endpoints & keys
- AI column mapping
Frequently asked questions
Is there an official Google Sheets MCP server?
Not a hosted one. Google's hosted Workspace MCP servers cover Gmail, Drive, Calendar, Chat, and the People API — not Sheets — and neither do its managed Cloud MCP servers. Google does publish an open-source Workspace server (a Gemini CLI extension) that includes Sheets, but you run it yourself with a Cloud project and OAuth. PasteSheet is a hosted one you get from a pasted URL.
Do I need to write any code?
No. There is no Apps Script, service account, or server to deploy. Paste a link-shared sheet URL, or connect Google and choose a restricted sheet in Google Picker. PasteSheet hosts the REST API and MCP server for you.
Which AI clients can connect?
Any MCP-compatible client — including Claude Desktop, Claude web, Claude Code, and Cursor via the per-sheet URL, and ChatGPT via the workspace server with OAuth.
Is the MCP connection read-only?
Yes. The exposed tools (list_tabs, get_schema, query_rows) only read your sheet. Agents can query and analyze data but cannot modify the spreadsheet.
Is MCP free?
Yes — MCP is included on PasteSheet's Free plan for public endpoints, with no Google Cloud project and no credit card. Private endpoints and the account-wide workspace server need a paid plan from $9/mo.
Can I connect Manus AI, or every sheet at once?
Yes. Manus AI adds the endpoint URL as a custom MCP connector, and the workspace server at pastesheet.com/mcp exposes every sheet you own through a single connection.
What is a Google Sheets MCP server?
A server that exposes a spreadsheet to an AI client as callable tools rather than as a file or a link. The agent can list tabs, inspect columns, and query rows on demand, using the open Model Context Protocol that Claude, Cursor, ChatGPT, and VS Code all speak.
How is this different from pasting the sheet into the chat?
Filtering happens in the endpoint instead of the model. The agent gets back only matching rows, so accuracy does not degrade as the sheet grows, and the data is live rather than a snapshot that goes stale on the next edit.
How large a sheet can an agent query this way?
Sheet size does not enter the model's context, because queries return only matching rows. The practical ceilings are Google's 10-million-cell limit per spreadsheet and your plan's row cap on a single response.
Does the agent see stale data?
Only within your cache TTL, which you set from 30 seconds to an hour. Shorter TTLs mean fresher reads; longer ones mean fewer upstream calls to Google. Either way the agent queries the endpoint live rather than a snapshot taken at setup.
Can an AI agent modify or delete my spreadsheet?
No. Only three read tools are exposed — list_tabs, get_schema, and query_rows — and none of them write. There is no write tool for a prompt to trigger, so the failure mode is a wrong query, never a changed sheet.
Can PasteSheet read a restricted Google Sheet?
Yes. Connect your Google account, choose the exact sheet in Google Picker, and PasteSheet reads that selected file through a file-scoped connection. The app never writes to the sheet.
Does a private endpoint make my Google Sheet private?
No. Endpoint privacy controls who can query PasteSheet. Source privacy is controlled separately in Google: a restricted source can stay restricted, but a public PasteSheet endpoint still makes its returned data public to anyone with the endpoint URL.
Do I need a different setup for each AI client?
No. One endpoint URL works everywhere — only the place you paste it differs. Claude uses Settings → Connectors, Cursor and VS Code use an MCP config file, Claude Code uses a claude mcp add command.
Sources
- Model Context Protocol specification — Model Context Protocol
- Usage limits — Google Sheets API — Google
Related guides
Connect Google Sheets to Claude via MCP
Connect a public or private Google Sheet to Claude via MCP. Step-by-step setup for Claude Desktop and Claude web to query spreadsheet rows in plain English.
Connect Google Sheets to ChatGPT via MCP
Connect a Google Sheet to ChatGPT using PasteSheet's workspace MCP server and OAuth. Let ChatGPT query your spreadsheet data in plain English, no code required.
Google Sheets MCP Server for Cursor
Add a Google Sheet to Cursor as an MCP server so the editor's AI can query your spreadsheet while you code. No backend — copy one URL and you are connected.
Google Sheets MCP for Claude Code
Add a Google Sheet to Claude Code as an MCP server with one command. Query spreadsheet data from your terminal-based agent — no backend and no code to write.
Does Google Have an Official Sheets MCP Server?
Google's official and Workspace MCP servers both skip spreadsheets. Here is what it shipped, what it left out, and the no-setup way to fill the gap.
Open Source Google Sheets MCP Servers
Comparing open source Google Sheets MCP servers? See what running one really costs in setup and upkeep, and when a hosted read-only endpoint beats it.
Turn your sheet into an API in minutes
Paste a Google Sheet URL and get a live REST API and MCP server — no backend, no code, free to start.