Server facts
MCP Google Sheets
Project
- Author
- xing5
- Repository
- github.com/xing5/mcp-google-sheets
- License
- MIT
- Category
- Data & Analytics
Tech
- Runtime / language
- pythonPython
- Transports
- stdio
- Remote available
- No
- Authentication
- Not specified
Activity
- GitHub stars
- 1,012
- Last commit
- Data as of
Tags
- Data Automation
- Google Drive
- Google Sheets
- Python
- Spreadsheets
Overview
MCP Google Sheets is a Python server that connects MCP clients to Google Sheets and Google Drive. Its tools allow assistants to discover spreadsheets, read values or formulas, update cell ranges, and manage spreadsheet tabs. The documented interface also covers inserting rows and columns, copying tabs, creating spreadsheets, and sharing access with recipients. Batch operations support updating multiple ranges or reading data across several spreadsheets. Summary retrieval can expose titles, tab names, headers, and preview rows, providing an initial view before a larger data request. Cell reads can return values alone or include the much larger grid metadata and formatting payload.
Authentication must be configured in Google Cloud before running the server, including enabling the necessary APIs. The README recommends a service account but also describes OAuth and credential injection through environment variables. Its quick-start setup uses a service-account key path and a Drive folder identifier. Execution through uvx downloads and runs the package, and the README recommends the latest-version suffix to avoid stale cached releases. All nineteen tools are enabled by default, which the README estimates at roughly thirteen thousand context tokens. Users can narrow that set through an include-tools argument or an environment variable. This makes the server configurable for either broad spreadsheet administration or a smaller read-and-update workflow.
Install & configure
Requirements
- Python
- uv with uvx available on PATH
- Google Cloud credentials and enabled APIs
- An MCP-compatible client
uvx mcp-google-sheets@latestUses the README's recommended service-account quick start. OAuth and direct credential injection are alternatives. Optional --include-tools or ENABLED_TOOLS filtering restricts exposed tools.
Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.
Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Use Settings → Developer → Edit Config when available. Do not assume a Linux configuration path; check the client documentation for your platform. Remote servers use the app’s connector flow when supported, not the local stdio file shown here. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"mcp-google-sheets": {
"command": "uvx",
"args": [
"mcp-google-sheets@latest"
],
"env": {
"SERVICE_ACCOUNT_PATH": "<Path to the service-account JSON key>",
"DRIVE_FOLDER_ID": "<Google Drive folder ID for spreadsheet access>"
}
}
}
}Config file · Project: .cursor/mcp.json
User: ~/.cursor/mcp.json
The project path is relative to the workspace root. The tilde denotes your user home directory. Use Cursor’s MCP settings to confirm which configuration and scope your installed version is reading. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"mcp-google-sheets": {
"command": "uvx",
"args": [
"mcp-google-sheets@latest"
],
"env": {
"SERVICE_ACCOUNT_PATH": "<Path to the service-account JSON key>",
"DRIVE_FOLDER_ID": "<Google Drive folder ID for spreadsheet access>"
}
}
}
}Config file · Workspace: .vscode/mcp.json
For user scope, use the “MCP: Open User Configuration” command if available. Do not guess a user configuration path across operating systems, profiles, containers, or remote workspaces; check the client documentation. Merge this example with existing settings; do not overwrite unrelated servers.
{
"servers": {
"mcp-google-sheets": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-google-sheets@latest"
],
"env": {
"SERVICE_ACCOUNT_PATH": "<Path to the service-account JSON key>",
"DRIVE_FOLDER_ID": "<Google Drive folder ID for spreadsheet access>"
}
}
}
}Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json
Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json
Open the MCP configuration through Windsurf’s settings when possible to confirm the active file. Paths can differ in managed or future releases; check the client documentation if this location is not present. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"mcp-google-sheets": {
"command": "uvx",
"args": [
"mcp-google-sheets@latest"
],
"env": {
"SERVICE_ACCOUNT_PATH": "<Path to the service-account JSON key>",
"DRIVE_FOLDER_ID": "<Google Drive folder ID for spreadsheet access>"
}
}
}
}Config file · Project scope: .mcp.json at the repository root
The project file uses mcpServers. For user scope, use claude mcp add --scope user rather than assuming .mcp.json in your home directory is the user configuration. Check the client documentation for managed settings and storage details. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"mcp-google-sheets": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-google-sheets@latest"
],
"env": {
"SERVICE_ACCOUNT_PATH": "<Path to the service-account JSON key>",
"DRIVE_FOLDER_ID": "<Google Drive folder ID for spreadsheet access>"
}
}
}
}Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.
Tools
Source: repository README. Tool descriptions are a documented snapshot, not a live capability check.
| Tool | What it does |
|---|---|
| add_columns | Insert empty columns at a chosen tab position. |
| add_rows | Insert empty rows at a chosen tab position. |
| batch_update | Perform batch spreadsheet updates. |
| batch_update_cells | Write values to several ranges in one API request. |
| copy_sheet | Duplicate a tab into another spreadsheet, with optional renaming. |
| create_sheet | Add a tab to an existing spreadsheet. |
| create_spreadsheet | Create a spreadsheet, optionally in a specified folder. |
| find_in_spreadsheet | Locate content within a spreadsheet. |
| get_multiple_sheet_data | Read several ranges, including ranges from different spreadsheets. |
| get_multiple_spreadsheet_summary | Preview spreadsheet titles, tabs, headers, and initial rows. |
| get_sheet_data | Read a tab or range, optionally including formatting and grid metadata. |
| get_sheet_formulas | Read cell formulas from a tab or specified range. |
| list_folders | Enumerate Drive folders. |
| list_sheets | Enumerate the tabs in a spreadsheet. |
| list_spreadsheets | Find accessible spreadsheets or list those in a chosen folder. |
| rename_sheet | Change an existing tab's name. |
| search_spreadsheets | Search for spreadsheets. |
| share_spreadsheet | Assign recipient access roles and optionally send sharing notifications. |
| update_cells | Replace values in the specified spreadsheet range. |
Names, permissions, and defaults can change. Check the current upstream documentation before granting access.
Use cases
- Read spreadsheet ranges and formulas for assistant-led analysis.
- Update several cell ranges in a batch.
- Create spreadsheets and organize their tabs.
- Share a spreadsheet with specified recipients and roles.
Strengths
- Supports both spreadsheet content and Drive-oriented discovery.
- Includes batch reads, batch writes, and multi-spreadsheet summaries.
- Tool filtering can substantially reduce initial context usage.
Limitations
- Google Cloud credentials and API setup are required before launch.
- Enabling all tools has a sizable documented context cost.
- Cell updates overwrite existing values in the target range.
Frequently asked questions
Independent listing, not an affiliation or security review. Grant the least access needed and verify the upstream instructions before running code.