Google Sheets MCP Server
Enables comprehensive interaction with Google Sheets and Google Drive through OAuth2 authentication. Supports spreadsheet creation, data manipulation, formatting, chart creation, and advanced operations like SQL queries and batch updates.
README
Google Sheets MCP Server
A Model Context Protocol (MCP) server that provides tools for interacting with Google Sheets and Google Drive using OAuth2 authentication.
Features
- Authentication: OAuth2-based authentication with Google APIs
- Google Sheets: Create, read, update, and delete spreadsheets and worksheets
- Data Operations: Batch operations and data filtering
- Formatting: Cell formatting, charts, and conditional formatting
Prerequisites
- Python 3.12+
- UV package manager
- Google Cloud Project with Google Sheets API enabled
- OAuth2 credentials from Google Cloud Console
Quick Start
1. Clone and Setup
# Clone the repository
git clone https://github.com/jayeshchowdary/gsheets-mcp
cd gsheets-mcp
# Install dependencies with UV
uv sync
2. Authentication Setup
- Download your
credentials.jsonfrom Google Cloud Console - Place it in the project directory
- Run authentication:
uv run authenticate.py - Follow the prompts to complete OAuth2 authentication
3. Start the MCP Server
# Start the server
uv run simplemcp.py
4. Test with MCP Inspector
# In another terminal, start the inspector
npx @modelcontextprotocol/inspector
# Connect to your server using the inspector interface
# Command: uv
# Args: run simplemcp.py
# Working Directory: . (current directory)
Project Structure
gsheets-mcp/
├── pyproject.toml # UV project configuration
├── uv.lock # Locked dependencies
├── simplemcp.py # Main MCP server
├── authenticate.py # Authentication script
├── credentials.json # OAuth2 credentials (not in git)
├── .token.json # Authentication token (not in git)
├── mcp-server-config.json # MCP client configuration
└── README.md # This file
Available Tools
Spreadsheet Management
list_sheets- List all Google Sheets in your Drivecreate_google_sheet- Create a new Google Sheetdelete_spreadsheet- Delete a Google Sheetget_spreadsheet_info- Get spreadsheet metadata
Worksheet Management
add_worksheet- Add a new worksheet to a spreadsheetdelete_sheet- Delete a worksheet from a spreadsheetget_sheet_names- Get all worksheet namesfind_worksheet_by_title- Find worksheet by exact titlecopy_sheet_to_another_spreadsheet- Copy sheet between spreadsheets
Data Operations
get_cell_data- Get data from specific cellsupdate_sheet_data- Update cell dataappend_values_to_spreadsheet- Append data to spreadsheetbatch_update_by_filter- Update values by data filterexecute_sql_query- Execute SQL-like queries on sheets
Data Filtering
get_spreadsheet_by_data_filter- Get data using filtersbatch_get_spreadsheet_values_by_data_filter- Get values by data filterbatch_clear_spreadsheet_values- Clear multiple rangesbatch_clear_values_by_data_filter- Clear values by data filter
Table Operations
list_tables- List all tables in a spreadsheetget_table_schema- Get table structure and schemacreate_sheet_from_json- Create sheet from JSON data
Formatting and Charts
format_cell- Apply cell formattingcreate_chart- Create charts in sheetsset_basic_filter- Set basic filtersclear_basic_filter- Clear basic filters
Dimension Management
append_dimension- Add rows/columnsinsert_dimension- Insert rows/columns at specific positionsdelete_dimension- Delete rows/columnscreate_spreadsheet_column- Create new columnscreate_spreadsheet_row- Create new rows
Developer Metadata
create_developer_metadata- Create metadatasearch_developer_metadata- Search metadatadelete_developer_metadata- Delete metadata
Properties Management
update_sheet_properties- Update worksheet propertiesupdate_spreadsheet_properties- Update spreadsheet properties
Drive Operations
search_spreadsheets- Search for spreadsheets in Drive
Development
Adding Dependencies
# Add new package
uv add package-name
# Sync after changes
uv sync
Testing
# Test if server can import
uv run python -c "import simplemcp; print('✅ Ready!')"
# Test credentials
uv run python -c "import simplemcp; print(f'Credentials: {simplemcp.creds is not None}')"
Troubleshooting
Common Issues
-
"Credentials file not found"
- Ensure
credentials.jsonexists in project directory - Run
uv run authenticate.pyto set up authentication
- Ensure
-
"Token file not found"
- Run
uv run authenticate.pyto create a new token
- Run
-
"Module not found"
- Run
uv syncto install dependencies
- Run
-
"Authentication required"
- Run
uv run authenticate.pyto set up authentication
- Run
UV-Specific Issues
-
"Command not found: uv"
- Install UV:
curl -LsSf https://astral.sh/uv/install.sh | sh - Restart your terminal
- Install UV:
-
"Failed to install dependencies"
- Clear UV cache:
uv cache clean - Reinstall:
uv sync --reinstall
- Clear UV cache:
Security Notes
- Never commit
credentials.jsonor.token.jsonto version control - Keep your OAuth2 credentials secure
- Tokens are automatically refreshed when needed
Support
For issues or questions:
- Check the troubleshooting section above
- Verify UV is properly installed and dependencies are synced
- Ensure Google Sheets API is enabled in your Google Cloud Project
- Check that your OAuth2 credentials have the correct scopes
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.