google-forms-mcp

google-forms-mcp

Enables AI assistants to create, manage, and analyze Google Forms with all question types, sections, quiz mode, and Google Drive/Sheets integration.

Category
Visit Server

README

๐ŸŸฃ Google Forms MCP

Release v1.0.0 PyPI version License: MIT Python 3.10+ MCP Protocol CI Docker Support

Production-grade Model Context Protocol (MCP) server for Google Forms automation.

Create, manage, and analyze Google Forms through an autonomous AI Planner that works with Claude, ChatGPT, Cursor, VS Code, Windsurf, Cline, Roo Code, and any MCP-compatible client.


โœจ Features

๐Ÿค– Autonomous AI Planner

  • Automatically detects user intent and interviews the user for missing details.
  • Validates the execution plan to prevent API errors.
  • Orchestrates Google Forms tools automatically to build complex forms.
  • Includes pre-built templates (Hackathon, Survey, Quiz, RSVP).

๐Ÿ“ Form Management

  • Create forms with title, description, and quiz mode
  • Update form metadata and settings
  • Delete / Duplicate / Publish forms
  • Search for forms in Google Drive

โ“ All 11 Question Types

  • Short Answer, Paragraph, Multiple Choice, Checkboxes, Dropdown
  • File Upload, Linear Scale, Date, Time
  • Multiple Choice Grid, Checkbox Grid

๐Ÿ“‘ Sections & Layout

  • Add, update, delete sections (page breaks)
  • Add images, videos, and text blocks

๐Ÿงช Quiz Mode

  • Enable quiz grading with point values
  • Set answer keys with correct answers
  • Configure right/wrong feedback

๐Ÿ“Š Response Management

  • Read all form responses (paginated)
  • Get response summary statistics
  • Export as CSV or JSON

๐Ÿ“ Google Drive Integration

  • Create folders, move/copy/trash files
  • Search files and forms
  • Share with users, groups, or domains
  • Manage permissions

๐Ÿ“ˆ Google Sheets Integration

  • Create spreadsheets
  • Read, write, and append data
  • Export sheets as CSV

๐Ÿš€ Quickstart

1. Google Cloud Setup

  1. Go to Google Cloud Console
  2. Create a new project (or select existing)
  3. Enable these APIs:
    • Google Forms API
    • Google Drive API
    • Google Sheets API
  4. Go to APIs & Services โ†’ Credentials
  5. Create OAuth 2.0 Client ID (Desktop application)
  6. Download the credentials or note the Client ID and Client Secret

2. Get a Refresh Token

Use the Google OAuth Playground or the built-in auth flow:

# Option A: Use environment variables with a pre-obtained refresh token
export GOOGLE_CLIENT_ID="your-client-id"
export GOOGLE_CLIENT_SECRET="your-client-secret"
export GOOGLE_REFRESH_TOKEN="your-refresh-token"

# Option B: Interactive flow (opens browser)
export GOOGLE_CLIENT_SECRETS_FILE="path/to/client_secret.json"

3. Install & Run

# Using uvx (recommended)
uvx google-forms-mcp

# Using pip
pip install google-forms-mcp
python -m google_forms_mcp

# Using Docker Compose
docker-compose up -d

4. Configure Your MCP Client

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "google-forms": {
      "command": "uvx",
      "args": ["google-forms-mcp"],
      "env": {
        "GOOGLE_CLIENT_ID": "your-client-id",
        "GOOGLE_CLIENT_SECRET": "your-client-secret",
        "GOOGLE_REFRESH_TOKEN": "your-refresh-token"
      }
    }
  }
}

Cursor / VS Code / Windsurf

Add to your MCP settings:

{
  "mcpServers": {
    "google-forms": {
      "command": "uvx",
      "args": ["google-forms-mcp"],
      "env": {
        "GOOGLE_CLIENT_ID": "your-client-id",
        "GOOGLE_CLIENT_SECRET": "your-client-secret",
        "GOOGLE_REFRESH_TOKEN": "your-refresh-token"
      }
    }
  }
}

Cline / Roo Code

Add to your cline_mcp_settings.json:

{
  "mcpServers": {
    "google-forms": {
      "command": "uvx",
      "args": ["google-forms-mcp"],
      "env": {
        "GOOGLE_CLIENT_ID": "your-client-id",
        "GOOGLE_CLIENT_SECRET": "your-client-secret",
        "GOOGLE_REFRESH_TOKEN": "your-refresh-token"
      }
    }
  }
}

๐Ÿ”ง Available Tools (38 tools)

Forms (19 tools)

Tool Description
create_form Create a new Google Form
get_form Retrieve complete form structure
update_form_info Update title and description
delete_form Delete (trash or permanent)
duplicate_form Copy an existing form
publish_form Publish or stop accepting responses
add_question Add any of the 11 question types
update_question Modify an existing question
delete_question Remove a question
move_question Reorder a question
duplicate_question Duplicate an existing question
set_question_branching Branch based on choice option
add_section Add a section (page break)
update_section Update section title/description
delete_section Remove a section
set_section_navigation Set section navigation action
update_settings Update form settings (quiz, progress bar, etc.)
add_media Add an image or video
add_text_item Add a text block

Responses (4 tools)

Tool Description
get_responses List all responses (paginated)
get_response Get a single response by ID
get_response_summary Aggregated statistics
export_responses Export as CSV or JSON

Drive (12 tools)

Tool Description
create_folder Create a Drive folder
search_forms Search for Google Forms
search_files Search for any files
move_file Move to another folder
copy_file Copy a file
trash_file Move to trash
restore_file Restore from trash
get_file_metadata Get complete file metadata
share_file Share with users/groups
transfer_ownership Transfer file ownership
get_permissions List sharing permissions
remove_permission Remove a permission

Sheets (7 tools)

Tool Description
create_spreadsheet Create a new spreadsheet
get_spreadsheet_info Get spreadsheet metadata
read_sheet_data Read from a range
write_sheet_data Write to a range
append_sheet_data Append rows
clear_sheet_data Clear data from a range
export_sheet_csv Export as CSV

โš™๏ธ Configuration

Environment Variable Description Default
GOOGLE_CLIENT_ID OAuth 2.0 Client ID Required
GOOGLE_CLIENT_SECRET OAuth 2.0 Client Secret Required
GOOGLE_REFRESH_TOKEN Pre-obtained Refresh Token Required
GOOGLE_CLIENT_SECRETS_FILE Path to client secrets JSON โ€”
GOOGLE_FORMS_MCP_TRANSPORT Transport mode: stdio or http stdio
GOOGLE_FORMS_MCP_PORT HTTP port (when transport=http) 8000
GOOGLE_FORMS_MCP_LOG_LEVEL Log level INFO
GOOGLE_FORMS_MCP_TOKEN_PATH Token storage path ~/.google-forms-mcp/token.json

โš ๏ธ Known Limitations

These are Google Forms API limitations, not limitations of this MCP:

Feature Status
Theme customization (colors, fonts, headers) โŒ Not supported by API
Delete responses โŒ Not supported by API
Link Form to Sheets โŒ Not supported via API (requires UI/Apps Script)
Settings โœ… Now fully supported

๐Ÿค Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

# Clone the repo
git clone https://github.com/your-org/google-forms-mcp.git
cd google-forms-mcp

# Install dependencies
uv sync --dev

# Run tests
uv run pytest

# Lint & format
uv run ruff check src/ tests/
uv run ruff format src/ tests/

๐Ÿ“„ License

MIT License โ€” see LICENSE for details.

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured