Google Forms MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOOGLE_FORMS_TOKEN | No | Override the location of the stored Google refresh token JSON file. | |
| GOOGLE_FORMS_MULTIUSER | No | Set to true to enable multi-user public onboarding mode. | |
| GOOGLE_FORMS_CLIENT_SECRET | No | Override the location of the Google OAuth client credentials JSON file. | |
| GOOGLE_FORMS_CONNECTOR_TOKEN | No | Bearer token used by Claude/ChatGPT remote connector clients for the authenticated HTTP entrypoint. | |
| GOOGLE_FORMS_PUBLIC_BASE_URL | No | Public HTTPS base URL for multi-user onboarding, e.g. https://forms.example.com. | |
| GOOGLE_FORMS_WEB_CLIENT_SECRET | No | Path to the Google OAuth Web application client secret JSON for multi-user mode. | |
| GOOGLE_FORMS_MULTIUSER_DATA_DIR | No | Data directory for multi-user credentials, tokens, draft databases, and confirmation keys. | |
| GOOGLE_FORMS_CONNECTOR_PUBLIC_HOSTS | No | Comma-separated public hostnames allowed for the authenticated HTTP connector, e.g. forms.example.com. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| preview_google_formB | Validate and preview a Google Form without creating or saving anything. |
| create_form_draftA | Save a persistent, versioned form draft without creating a Google Form. |
| get_form_draftC | Return the current version of a persistent form draft. |
| patch_form_draftC | Apply targeted operations to a draft while preserving unrelated content. |
| undo_draft_changeC | Move a draft back by one version without touching Google Forms. |
| publish_form_draftC | Create a native Google Form from the exact approved draft version. |
| update_existing_google_formC | Preview or apply a signed targeted update plan to an existing Google Form. |
| google_forms_auth_statusA | Report whether the active user's Google authorization is configured. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Most tools map to distinct stages of a draft lifecycle (create/get/patch/undo/publish), so an agent can route most requests cleanly. However, preview_google_form overlaps with update_existing_google_form's preview mode, and publish_form_draft vs update_existing_google_form both write to live Google Forms, creating some boundary ambiguity.
Names are consistently snake_case with a verb_noun shape (create_form_draft, patch_form_draft, undo_draft_change). Minor deviations exist: the noun is phrased variously as 'form_draft', 'existing_google_form', and the namespace-prefixed google_forms_auth_status breaks the pattern slightly.
Eight tools is well-scoped for a draft-based form authoring workflow. Each tool (create, get, patch, undo, preview, publish, update, auth) earns its place without redundancy.
The draft lifecycle is covered end-to-end: create/get/patch/undo/publish plus preview, update-existing, and auth. Minor gaps remain, such as no delete_form_draft, no way to list drafts, and no read/fetch tool for existing Google Forms beyond updating them.