Google Forms MCP
Allows agents to read, edit, publish, and manage Google Forms programmatically using the official Google Forms API.
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 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: gworkspace-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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/naster3/google-forms-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server