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
访问服务器

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.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选