Google Forms MCP
Allows agents to read, edit, publish, and manage Google Forms programmatically using the official Google Forms API.
Click on "Deploy 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 MCPCreate a new Google Form for employee onboarding."
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 Forms MCP
MCP server for reading, editing, and publishing Google Forms with the official Google Forms API.
This project is for developers and agent builders who want to automate real Google Forms work instead of scraping pages or manually clicking through the UI.
Why This Exists
Most MCP servers that touch productivity software stop at read-only access or expose vague tool behavior.
This one is focused on a narrower, more useful job:
inspect a real Google Form
update structure and copy safely
add and edit questions
move and delete items
attach images
list responses
publish or unpublish the form
That makes it useful for:
AI agents that maintain intake forms
agencies that generate or refine client questionnaires
internal tools teams building workflow automations around Google Forms
developers who need repeatable form changes in code
Related MCP server: google-spreadsheet-mcp
What Problem It Solves
Google Forms is widely used, but it is painful to automate reliably.
Typical pain points:
agents do not know the form structure before editing
manual edits are slow and error-prone
publishing state and responder access are easy to mishandle
response retrieval is inconsistent across ad hoc scripts
This MCP gives agents a structured, typed surface to work with.
Product Positioning
This is not a generic “Google workspace MCP”.
It is best positioned as:
The MCP for programmatic Google Forms operations: read, edit, restructure, and publish forms safely with official APIs.
That is much more sellable than “professional Google Forms server”.
First Successful Use in Under 2 Minutes
The fastest path to value is:
Connect the server with working Google OAuth credentials.
Run
create_formorget_form.Run
list_items.Change one obvious thing with
update_form_infooradd_text_question.
Recommended first prompt:
Create a Google Form called "Client Intake Form", add a short description for respondents, then add a required short-answer question titled "Project owner name".If that works, users immediately understand the value.
Core Capabilities
create_formget_formlist_itemsupdate_form_infoadd_text_questionadd_paragraph_questionadd_multiple_choice_questionadd_checkbox_questionadd_dropdown_questionadd_sectionupdate_sectionadd_image_itemupdate_image_itemset_question_imageupdate_questionmove_itemdelete_itemlist_responsesget_responseset_publish_settings
The tools return structured JSON with normalized item data so agents can reason about the form before mutating it.
Installation
Option 1: Run From Source
Requirements:
Node.js
>=20.11.0pnpmGoogle Cloud OAuth credentials
Install:
pnpm install
Copy-Item .env.example .envFill in .env:
GOOGLE_CLIENT_ID=your-google-oauth-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-google-oauth-client-secret
GOOGLE_REDIRECT_URI=http://127.0.0.1:3005/oauth2callback
GOOGLE_TOKEN_PATH=.tokens/google-oauth.json
GOOGLE_INCLUDE_DRIVE_SCOPE=false
GOOGLE_LOG_LEVEL=infoAuthorize once:
pnpm run authBuild:
pnpm run buildOption 2: Package Distribution
The package is prepared to be published as google-forms-mcp-naster.
Once published to npm, the intended command surface is:
npx google-forms-mcp-nasterIf you want real adoption, publish the package. Requiring source checkout is a growth bottleneck.
Option 3: Trusted Publishing from GitHub Actions
This repository includes a GitHub Actions workflow for npm Trusted Publishing.
Setup steps:
In npm, open the package or account publishing settings.
Add this GitHub repository as a trusted publisher.
Use the workflow in
.github/workflows/publish.yml.Publish from GitHub Actions instead of local CLI tokens.
See docs/NPM_TRUSTED_PUBLISHING.md.
MCP Client Configuration
Codex
{
"mcpServers": {
"google-forms": {
"command": "node",
"args": ["C:/path/to/google-forms-mcp/dist/src/index.js"],
"cwd": "C:/path/to/google-forms-mcp",
"env": {
"GOOGLE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
"GOOGLE_CLIENT_SECRET": "your-client-secret",
"GOOGLE_REDIRECT_URI": "http://127.0.0.1:3005/oauth2callback",
"GOOGLE_TOKEN_PATH": ".tokens/google-oauth.json",
"GOOGLE_INCLUDE_DRIVE_SCOPE": "false",
"GOOGLE_LOG_LEVEL": "info"
}
}
}
}Generic stdio MCP Client
{
"command": "node",
"args": ["/absolute/path/to/dist/src/index.js"],
"cwd": "/absolute/path/to/repo",
"env": {
"GOOGLE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
"GOOGLE_CLIENT_SECRET": "your-client-secret",
"GOOGLE_REDIRECT_URI": "http://127.0.0.1:3005/oauth2callback",
"GOOGLE_TOKEN_PATH": ".tokens/google-oauth.json",
"GOOGLE_INCLUDE_DRIVE_SCOPE": "false",
"GOOGLE_LOG_LEVEL": "info"
}
}Google Cloud Setup
Create or select a Google Cloud project.
Enable Google Forms API.
Enable Google Drive API only if you need responder access updates.
Configure the OAuth consent screen.
Create an OAuth client.
Add
http://127.0.0.1:3005/oauth2callbackas an authorized redirect URI if using a web OAuth client.Put the client ID and secret into
.env.
Tool Design Notes
This MCP is strongest when the agent works in this order:
get_formorlist_itemsinspect indexes, itemIds, and current shape
mutate with a targeted tool
re-read the form if more edits are needed
This order matters because Google Forms edits are structure-sensitive.
Recommended Prompts
See docs/PROMPTS.md.
Troubleshooting
Launch and Quality Checklists
Scripts
pnpm run devpnpm run buildpnpm run startpnpm run testpnpm run authpnpm run uipnpm run professionalize:web-formpnpm run apply:design-images
The two project-specific scripts are not the product. They are utility scripts layered on top of the product.
Current Limitations
local
stdiotransport is the primary supported modeno remote hosted version yet
no per-user responder sharing flow
Google OAuth setup is still the main installation hurdle
Security
Never commit:
.env.tokens/client_secret*.json
If any credential was ever exposed, rotate it before making the repository public.
See SECURITY.md.
License
MIT. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Create forms, read submissions, and build invitations from Claude, ChatGPT, or any MCP client.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
MCP server for managing FormDesigner forms, fields, logic rules, themes, and entries
Related MCP Servers
- FlicenseBqualityDmaintenanceMCP server for managing Google Forms — quizzes, grading, images, responses.19-
- AlicenseNot gradedqualityDmaintenanceMCP server enabling AI agents to read, write, and manage Google Sheets, including sheet manipulation, row/column operations, dropdowns, checkboxes, and conditional formatting.6 npmMIT
- FlicenseAqualityCmaintenanceMCP server for FormsList, a form-backend SaaS. Enables creating form endpoints, reading submissions, configuring auto-responses, and generating embed snippets via natural language.7-
- AlicenseAqualityAmaintenanceAn MCP server for the Google Forms API that enables creating and editing forms, publishing them, reading responses, and setting up push notifications from AI clients using natural language.1385 npmMIT