A simple MCP server that provides tools, resources, and prompts for working with Google Sheets and Google Forms
Project description
Google Sheets & Forms MCP Server
A simple MCP server that provides tools, resources, and prompts for working with Google Sheets and Google Forms.
Features
Tools
list_spreadsheets- List your Google Spreadsheetsread_sheet- Read data from a Google Sheetwrite_sheet- Write data to a Google Sheetappend_sheet- Append data to a Google Sheetcreate_spreadsheet- Create a new spreadsheetcreate_form- Create a new Google Form
Resources
sheet://{spreadsheet_id}/{range_name}- Access sheet data as a resource
Prompts
analyze_sheet_data- Template for analyzing sheet datacreate_report_template- Template for creating report spreadsheetsform_to_sheet- Template for form-to-sheet workflow
Setup
1. Create virtual environment
cd gsheets-mcp-server
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
2. Install dependencies
pip install -r requirements.txt
3. Get Google API Credentials
- Go to Google Cloud Console
- Create a new project or select existing one
- Enable the following APIs:
- Google Sheets API
- Google Forms API
- Google Drive API
- Go to "Credentials" → "Create Credentials" → "OAuth client ID"
- Choose "Desktop app" as application type
- Download the credentials JSON file
- Save it as
credentials.jsonin this directory
4. Test the server with MCP Inspector
npx @modelcontextprotocol/inspector python gsheets_server.py
Claude Desktop Configuration
Add this to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"gsheets": {
"command": "python",
"args": [
"/FULL/PATH/TO/gsheets-mcp-server/gsheets_server.py"
],
"env": {
"GOOGLE_CREDENTIALS_PATH": "/FULL/PATH/TO/gsheets-mcp-server/credentials.json"
}
}
}
}
Important: Replace /FULL/PATH/TO/ with the actual absolute path to this directory.
First Run
On first run, the server will open a browser window for Google authentication. After you authorize the app, a token.pickle file will be created to store your credentials for future use.
Example Usage in Claude Desktop
Once configured, you can ask Claude:
- "List my spreadsheets"
- "Read the data from spreadsheet ID 'abc123' in range 'Sheet1!A1:C10'"
- "Create a new spreadsheet called 'Q1 Report'"
- "Append this data to my sheet: [['Name', 'Email'], ['John', 'john@example.com']]"
- "Use the analyze_sheet_data prompt"
- "Show me the sheet resource for spreadsheet 'abc123'"
Getting Spreadsheet IDs
The spreadsheet ID is in the URL:
https://docs.google.com/spreadsheets/d/SPREADSHEET_ID_HERE/edit
Troubleshooting
- Authentication fails: Delete
token.pickleand run again - Permission denied: Check that you've enabled the APIs in Google Cloud Console
- Module not found: Make sure virtual environment is activated and dependencies are installed
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iflow_mcp_hellotinah_mcp-1.0.0.tar.gz.
File metadata
- Download URL: iflow_mcp_hellotinah_mcp-1.0.0.tar.gz
- Upload date:
- Size: 6.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e511d93f70328a9f8b7658a942ffd36c8f42b227403d044db23c6ae78e3df9c6
|
|
| MD5 |
dd5b4a23cc6fdc9a3e9cb653a4cc0b51
|
|
| BLAKE2b-256 |
50320b35edb24eaf9b66200991f43a7746f63ae02a10313cf414a2b0b5823beb
|
File details
Details for the file iflow_mcp_hellotinah_mcp-1.0.0-py3-none-any.whl.
File metadata
- Download URL: iflow_mcp_hellotinah_mcp-1.0.0-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a935328dc19861c921d1850871cef3b290d01f3fed977c366dc5d3bd70fa121
|
|
| MD5 |
ab20497fa759e99167f7116a729d050a
|
|
| BLAKE2b-256 |
1b9eebd189f6ebec327216b9d376dc54cdbdc36124c72c3d4c04486df25cadab
|