Google Forms MCP logo

Google Forms MCP

Manage Google Forms, questions, publishing, responses, and Pub/Sub watches through MCP.

Install Google Forms MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "google-forms-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-google-forms@latest"
      ],
      "env": {
        "GOOGLE_FORMS_CLIENT_ID": "YOUR_VALUE_HERE",
        "GOOGLE_FORMS_CLIENT_SECRET": "YOUR_VALUE_HERE",
        "GOOGLE_FORMS_REFRESH_TOKEN": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

Install not yet sandbox-tested— the server itself is confirmed live (we called its tools/list endpoint). The stdio install command is a separate, ongoing check.

Overview

Google Forms MCP connects AI clients to the Google Forms API for creating and editing forms, reading submissions, controlling publication, and managing response notifications. It uses OAuth 2.0 and supports an in-chat connection flow that stores credentials locally without sending secrets through the conversation. Reach for it when an agent needs to build surveys, inspect form structure, summarize responses, or monitor new submissions. The API remains read-only for respondent answers and cannot submit or edit responses.

Use cases

  • Create surveys with supported question types
  • Inspect form settings and summarize submitted responses
  • Publish forms and control response collection
  • Track new submissions with Pub/Sub watches
  • Update or reorder existing form items

Key features

  • OAuth login with locally stored credentials
  • Google Forms creation and item editing
  • Quiz and email-collection settings
  • Response listing and individual response lookup
  • Cloud Pub/Sub watch management
  • Raw Google Forms API requests

Tools19

What Google Forms MCP lets your agent do. Expand a tool for its parameters.

Verified live~4.6k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 3d ago

Recent health check succeeded.

20/22 checks healthy over the last 92d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 4d ago via OSV.dev · mcp-google-forms@latest (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

npm downloads381Package downloads in the last 30 days.
Last commit6d agoMost recent push to the default branch.
Tools exposed19Callable tools this server registers over MCP.
Directory activity4 viewsConfig copies, upvotes, and views on AllMCPs.

How Google Forms MCP works

What Google Forms MCP does

Google Forms MCP exposes Google Forms operations as MCP tools. It can create forms, inspect their questions and settings, update titles and descriptions, change quiz or email-collection settings, add and edit supported question types, reorder items, delete items, and publish or close response collection.

The server also reads submitted responses and individual response records. Responses include timestamps, answers keyed by question ID, respondent email when collection is enabled, and quiz scores when available. A raw request tool provides access to Google Forms API endpoints that do not have dedicated wrappers.

How it works

The server communicates with Google through OAuth 2.0 using the Forms API scopes for form content and read-only responses. Authentication can be completed from the conversation: configure a Desktop-app OAuth client, start login, open the returned authorization URL on the same machine, and finish the login. A local listener on 127.0.0.1 receives the redirect, while tokens are stored in an owner-only local file.

Forms created through the API begin unpublished. Publish them explicitly with create_form or set_publish_settings before sharing the responder URL. Publishing and response collection are separate controls, so a form can remain visible while refusing new submissions.

Form items are addressed by their zero-based positions. Use get_form before modifying, deleting, or moving items, and refresh the form after deletions because later positions shift. Response notifications contain identifiers and event metadata rather than response data; after a notification, retrieve new submissions with list_responses.

Setup and configuration

Node.js 20 or newer and a Google account are required. Add the server to an MCP client with the npm package command:

Terminal
npx -y mcp-google-forms@latest

Create or select a Google Cloud project, enable the Google Forms API, configure the consent screen, and create a Desktop-app OAuth client. Pass the downloaded client JSON file path to set_client; do not paste its secret into chat. The shared client configuration is stored under ~/.config/mcp-google-auth/client.json, while tokens remain specific to this server.

The package can also use GOOGLE_FORMS_CLIENT_ID, GOOGLE_FORMS_CLIENT_SECRET, and GOOGLE_FORMS_REFRESH_TOKEN in an MCP client configuration. auth_status reports credential source, account, expiry, and OAuth scopes without returning the token. logout revokes locally stored credentials and removes their file, but does not remove environment variables.

Tools and capabilities

  • Inspect authentication state and obtain setup instructions.
  • Create forms and read complete form definitions, including items, publication state, responder URL, and linked sheet ID.
  • Update form information and settings, including quiz mode and email collection modes.
  • Add text, paragraph, radio, checkbox, dropdown, scale, date, time, and rating questions.
  • Update, delete, and move form items by index.
  • Publish or unpublish forms and open or close response collection.
  • List responses incrementally with an RFC3339 submitted_after timestamp, paginate results, or fetch one response by ID.
  • Create, list, renew, and delete Cloud Pub/Sub watches for response or schema events.
  • Send direct Google Forms API requests with raw_request.

Limitations and notes

The Forms API cannot create, edit, or delete submitted responses. File-upload questions cannot be created through the API, and question grids require a raw batch update. The document title, which is the Drive file name, is set during creation and cannot be changed through this server.

Response listing has a lower per-minute quota than other reads, so incremental polling is preferable to repeatedly fetching all responses. Pub/Sub watches expire after seven days, allow one watch per user per form and event type, and are limited to 20 per Cloud project. The notification topic must be in the Google Cloud project and grant publishing permission to Google's Forms notification service account.

Forms created before Google's publication model may not support publication settings. OAuth consent screens left in Testing mode produce refresh tokens that expire after seven days; publishing the consent screen avoids that behavior.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Google Forms MCP

Google Forms MCP is an MCP server that connects AI clients to the Google Forms API. Its main tools create and edit forms, manage questions and publication, read responses, configure Pub/Sub watches, and send raw API requests. OAuth credentials are stored locally, and submitted answers remain read-only through the server.

Install it as an MCP stdio server with `npx -y mcp-google-forms@latest`. Add that command to your MCP client, then configure Google OAuth by creating a Desktop-app client, passing its downloaded JSON path to `set_client`, and completing the browser login flow.

Yes, Google Forms MCP works with Cursor through a stdio entry in `~/.cursor/mcp.json`. Configure the server with the `npx -y mcp-google-forms@latest` command, restart or reload Cursor as needed, and complete the Google OAuth setup from the conversation.

No, Google Forms MCP can only read submitted responses. Use `list_responses` to retrieve multiple submissions or `get_response` for one response by ID; the Google Forms API does not allow this server to create or edit respondent answers.

Create a `RESPONSES` watch with `manage_watches`, then call `list_responses` using `submitted_after` when a notification arrives. The Pub/Sub message contains form and watch metadata rather than response data, and watches must be renewed every seven days.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewGoogle Forms MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/google-forms-mcp?style=directory)](https://allmcps.com/mcp/google-forms-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/google-forms-mcp"><img src="https://allmcps.com/api/badge/google-forms-mcp?style=directory" alt="Google Forms MCP on AllMCPs" /></a>