Is there an official Google Sheets MCP server from Google?
This server is a community project by xing5, not a Google product. It talks to Google's official Sheets and Drive APIs using your own credentials.
@xing5
Basic information
This MCP server integrates with your Google Drive and Google Sheets, to enable creating and modifying spreadsheets.
Add this server to your MCP-compatible client using the configuration below.
{
"mcpServers": {
"mcp-google-sheets": {
"command": "uvx",
"args": [
"mcp-google-sheets@latest"
]
}
}
}Tool list not available yet
This listing does not currently have a tool list to display. This does not mean the server has no tools; check its documentation for supported capabilities.
Fetch the live tool list by running this server in a temporary sandbox using the button above.
Google Sheets MCP Server (mcp-google-sheets) is an open-source Python MCP server that connects Claude, Cursor and other MCP clients to the Google Sheets and Google Drive APIs, so an AI assistant can list, read, write, share and chart spreadsheets.
It is a community project by xing5 (MIT license), published on PyPI as mcp-google-sheets and launched with a single uvx command. It is not made by Google. The server does not store your data: every operation goes through the official Google Sheets and Drive APIs using credentials you control.
Prerequisites
client_email as Editor. Note the folder ID from its URL (https://drive.google.com/drive/folders/<FOLDER_ID>).uv installed, which provides uvx:# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Environment variables
| Variable | Method | Purpose |
|---|---|---|
SERVICE_ACCOUNT_PATH | Service account | Path to the JSON key file |
DRIVE_FOLDER_ID | Service account | ID of the Drive folder shared with the service account |
CREDENTIALS_PATH / TOKEN_PATH | OAuth 2.0 | OAuth client JSON and where to store the token (defaults credentials.json / token.json) |
CREDENTIALS_CONFIG | Either | Base64-encoded credentials JSON, useful in Docker or CI |
GOOGLE_APPLICATION_CREDENTIALS | ADC | Google's standard Application Default Credentials path |
The server checks CREDENTIALS_CONFIG, then SERVICE_ACCOUNT_PATH, then CREDENTIALS_PATH, and finally falls back to Application Default Credentials. Test it from a terminal first:
export SERVICE_ACCOUNT_PATH="/path/to/your/service-account-key.json"
export DRIVE_FOLDER_ID="YOUR_DRIVE_FOLDER_ID"
uvx mcp-google-sheets@latest
The README recommends always using @latest; without it uvx may run a cached older version.
Add this to claude_desktop_config.json:
{
"mcpServers": {
"google-sheets": {
"command": "uvx",
"args": ["mcp-google-sheets@latest"],
"env": {
"SERVICE_ACCOUNT_PATH": "/full/path/to/your/service-account-key.json",
"DRIVE_FOLDER_ID": "your_shared_folder_id_here"
}
}
}
}
For OAuth instead, replace the env block with CREDENTIALS_PATH and TOKEN_PATH; a browser window opens for Google login on first use. On macOS, if you see spawn uvx ENOENT, set command to the full path, for example /Users/yourusername/.local/bin/uvx.
Register the same command with the Claude Code CLI:
claude mcp add google-sheets \
-e SERVICE_ACCOUNT_PATH=/full/path/to/your/service-account-key.json \
-e DRIVE_FOLDER_ID=your_shared_folder_id_here \
-- uvx mcp-google-sheets@latest
Put the same mcpServers JSON block shown for Claude Desktop into ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project).
reader, commenter or writer roles.add_chart.--include-tools or ENABLED_TOOLS to cut the roughly 13K tokens the full tool set uses.uvx, plus a Dockerfile for SSE deployments.spreadsheet://{spreadsheet_id}/info, for basic spreadsheet metadata.list_spreadsheets, search_spreadsheets, list_folders, list_sheets and get_multiple_spreadsheet_summary find files and preview titles, tabs, headers and the first rows.get_sheet_data reads a range in A1 notation (optionally with full grid data and formatting), get_sheet_formulas returns formulas instead of values, and get_multiple_sheet_data reads several ranges across spreadsheets in one call. find_in_spreadsheet is also available.update_cells overwrites a range, batch_update_cells writes many ranges at once, add_rows and add_columns insert empty rows or columns, and batch_update is exposed for broader updates.create_spreadsheet, create_sheet, copy_sheet, rename_sheet and share_spreadsheet manage files and access; add_chart builds charts from a data range.The README's recommended minimal subset is get_sheet_data, update_cells, list_spreadsheets and list_sheets.
Among these, xing5's mcp-google-sheets has the largest GitHub following and the widest Sheets tool set, which is why it is the usual choice for a Google Sheets MCP setup.
spawn uvx ENOENT on macOS: the client cannot find uvx. Use the full path, such as /Users/yourusername/.local/bin/uvx.list_spreadsheets: with a service account, only files in the folder you shared with the service account email (and set in DRIVE_FOLDER_ID) are visible. Share the folder or file with that client_email as Editor.uvx mcp-google-sheets@latest; without @latest, uvx may keep a cached version.--include-tools or ENABLED_TOOLS, comma-separated with no spaces.This server is a community project by xing5, not a Google product. It talks to Google's official Sheets and Drive APIs using your own credentials.
Yes. mcp-google-sheets is open source under the MIT license. You only need a Google Cloud project, and normal Google API quotas apply.
No API key in the usual sense. You authenticate with a service account JSON key (recommended), an OAuth 2.0 client, Base64 credentials in `CREDENTIALS_CONFIG`, or Application Default Credentials.
It is a standard stdio MCP server, so any MCP client that can launch `uvx mcp-google-sheets@latest` can use it, including Claude Desktop, Claude Code and Cursor. The README's own examples target Claude Desktop.
Yes. The included Dockerfile runs the server with SSE transport on a configurable host and port; use `CREDENTIALS_CONFIG` to pass credentials into the container.
With a service account, only spreadsheets in folders or files shared with that account. With OAuth, whatever your Google account can access, so grant the narrowest scope that fits your use.
All tools are enabled by default (about 13K tokens). Pass `--include-tools get_sheet_data,update_cells,list_spreadsheets,list_sheets` or set `ENABLED_TOOLS` to expose only what you need.
It stays in Google Drive and Google Sheets. The server only relays requests to the Google APIs and does not keep a copy.
filesystem MCP server for accessing WSL distributions from Windows
A Model Context Protocol (MCP) server for platform-agnostic file capabilities, including advanced search/replace and directory tree traversal
MCP server to integrate AWS S3 and LLM
Model Context Protocol (MCP) Server for reading from Google Drive and editing Google Sheets

Model Context Protocol Servers
Comments