Skip to main content

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 Spreadsheets
  • read_sheet - Read data from a Google Sheet
  • write_sheet - Write data to a Google Sheet
  • append_sheet - Append data to a Google Sheet
  • create_spreadsheet - Create a new spreadsheet
  • create_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 data
  • create_report_template - Template for creating report spreadsheets
  • form_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

  1. Go to Google Cloud Console
  2. Create a new project or select existing one
  3. Enable the following APIs:
    • Google Sheets API
    • Google Forms API
    • Google Drive API
  4. Go to "Credentials" → "Create Credentials" → "OAuth client ID"
  5. Choose "Desktop app" as application type
  6. Download the credentials JSON file
  7. Save it as credentials.json in 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.pickle and 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_hellotinah_mcp-1.0.0.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_mcp_hellotinah_mcp-1.0.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

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

Hashes for iflow_mcp_hellotinah_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e511d93f70328a9f8b7658a942ffd36c8f42b227403d044db23c6ae78e3df9c6
MD5 dd5b4a23cc6fdc9a3e9cb653a4cc0b51
BLAKE2b-256 50320b35edb24eaf9b66200991f43a7746f63ae02a10313cf414a2b0b5823beb

See more details on using hashes here.

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

Hashes for iflow_mcp_hellotinah_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1a935328dc19861c921d1850871cef3b290d01f3fed977c366dc5d3bd70fa121
MD5 ab20497fa759e99167f7116a729d050a
BLAKE2b-256 1b9eebd189f6ebec327216b9d376dc54cdbdc36124c72c3d4c04486df25cadab

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page