Provides comprehensive Google Forms management including creating and updating forms, adding all 12 question types, managing sections, retrieving responses, and exporting data to CSV. Optimized for creating feedback and survey forms.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Forms MCP Servercreate a customer feedback form with name, rating, and comments fields"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Tools CLI
Command-line tool for managing Google Workspace - create forms, add questions, export responses, read spreadsheets.
Features
Full form management - Create, update, delete, duplicate forms
All question types - 12 Google Forms question types supported
Response export - Export responses to CSV
Google Sheets - Read and export spreadsheet data
YAML templates - Create complex forms from simple YAML files
Interactive OAuth wizard - Easy setup for non-technical users
Cursor Skill - Works as an AI agent skill in Cursor IDE
Quick Start
1. Install
# Clone the repository
git clone https://github.com/maksdizzy/google-forms-cli
cd google-forms-cli
# Install with uv
uv sync2. Setup OAuth
# Run interactive setup wizard
uv run gtools auth setupThe wizard guides you through:
Creating OAuth credentials in Google Cloud Console
Getting a refresh token
Saving credentials to
.env
3. Use
# List your forms
uv run gtools forms list
# Create a new form
uv run gtools forms create "My Survey"
# Add a question
uv run gtools forms add-question FORM_ID --type MULTIPLE_CHOICE --title "Rate us" --options "1,2,3,4,5"
# Export responses
uv run gtools forms export FORM_ID --output responses.csv
# Read a spreadsheet
uv run gtools sheets read SPREADSHEET_IDCLI Structure
gtools
├── auth # Authentication management
│ ├── setup # Interactive OAuth wizard
│ └── check # Verify credentials
├── forms # Google Forms operations
│ ├── list # List all forms
│ ├── create # Create new form
│ ├── get # Get form details
│ ├── update # Update form
│ ├── delete # Delete form
│ ├── duplicate # Copy form with personalization
│ ├── link # Get share links
│ ├── add-question # Add question
│ ├── delete-question # Remove question
│ ├── move-question # Reorder question
│ ├── add-section # Add section break
│ ├── responses # List responses
│ ├── export # Export to CSV
│ ├── apply # Create from YAML
│ └── export-template # Export to YAML
└── sheets # Google Sheets operations
├── info # Get spreadsheet metadata
├── list # List sheets
└── read # Read data (table/CSV/JSON)Commands
Authentication
Command | Description |
| Interactive OAuth setup |
| Verify credentials |
Form Management
Command | Description |
| List all forms |
| Create new form |
| Get form details |
| Update form |
| Delete form |
| Copy form |
| Get share links |
Questions
Command | Description |
| Add question |
| Remove question |
| Reorder question |
| Add section break |
Responses
Command | Description |
| List responses |
| Export to CSV |
Templates
Command | Description |
| Create from template |
| Export to YAML |
Google Sheets
Command | Description |
| Get spreadsheet metadata |
| List sheets |
| Read data |
Question Types
# Text questions
--type SHORT_ANSWER
--type PARAGRAPH
# Choice questions (use --options)
--type MULTIPLE_CHOICE --options "A,B,C"
--type CHECKBOXES --options "X,Y,Z"
--type DROPDOWN --options "1,2,3"
# Scale questions
--type LINEAR_SCALE --low 1 --high 5
--type RATING --high 5
# Other
--type DATE
--type TIMEYAML Templates
Create forms from YAML files:
form:
title: "Customer Feedback"
description: "Share your experience"
questions:
- type: SHORT_ANSWER
title: "Your name"
required: true
- type: MULTIPLE_CHOICE
title: "Satisfaction"
options: [Excellent, Good, Fair, Poor]
required: true
- type: PARAGRAPH
title: "Comments"Apply with:
uv run gtools forms apply feedback.yamlSee templates/examples/ for more examples:
feedback_form.yaml- Employee feedback surveyevent_registration.yaml- Event registration formcustomer_satisfaction.yaml- Customer satisfaction survey
OAuth Setup Details
Prerequisites
Go to Google Cloud Console
Create a new project
Enable Google Forms API, Google Drive API, and Google Sheets API
Create OAuth 2.0 credentials (Desktop application)
Get Refresh Token
Option 1: OAuth Playground (recommended)
Go to OAuth Playground
Click Settings → Check "Use your own OAuth credentials"
Enter your Client ID and Client Secret
Add scopes:
https://www.googleapis.com/auth/forms.bodyhttps://www.googleapis.com/auth/forms.responses.readonlyhttps://www.googleapis.com/auth/drive.filehttps://www.googleapis.com/auth/spreadsheets.readonly
Authorize and exchange for tokens
Copy the refresh token
Option 2: Interactive wizard
uv run gtools auth setupFor Cursor/AI Agents
This tool is designed to work as a skill for AI agents in Cursor IDE.
See skill.md for complete agent instructions including:
Quick reference for all commands
Common workflows
Error handling
Project Structure
google-forms-cli/
├── src/gtools/
│ ├── __init__.py # Package init
│ ├── cli.py # Main CLI entry point
│ ├── templates.py # YAML template engine
│ ├── core/
│ │ ├── auth.py # OAuth + interactive wizard
│ │ ├── base.py # BaseAPI class
│ │ └── scopes.py # OAuth scopes
│ ├── forms/
│ │ ├── api.py # Google Forms API wrapper
│ │ ├── models.py # Pydantic models
│ │ └── commands.py # Forms CLI commands
│ └── sheets/
│ ├── api.py # Google Sheets API wrapper
│ ├── models.py # Pydantic models
│ └── commands.py # Sheets CLI commands
├── templates/
│ └── examples/ # Example YAML templates
├── skill.md # Cursor agent instructions
├── pyproject.toml # Project configuration
└── README.md # This fileBackwards Compatibility
The legacy gforms command still works as an alias:
# Both commands work identically
uv run gforms forms list
uv run gtools forms listTroubleshooting
OAuth Errors:
uv run gtools auth check # Verify credentials
uv run gtools auth setup # Reconfigure if neededAPI Errors:
Verify Form ID with
uv run gtools forms listCheck API quotas in Google Cloud Console
Security
.envfile is gitignored (never committed)Refresh token provides account access - keep secure
Revoke access: https://myaccount.google.com/permissions
License
MIT
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.