PluginBench
MCP Server
Active
MIT

Google Forms MCP MCP Server

io.github.A1-x-Tech/mcp-google-forms

What is the Google Forms MCP MCP server?

MCP server for the Google Forms API: create forms, manage questions, read responses and watches.

How to install Google Forms MCP

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • GOOGLE_FORMS_CLIENT_ID

    Google OAuth2 client id (refresh-token flow).

  • GOOGLE_FORMS_CLIENT_SECRET
    secret

    Google OAuth2 client secret (refresh-token flow). Treat it as a secret.

  • GOOGLE_FORMS_REFRESH_TOKEN
    secret

    Google OAuth2 refresh token, exchanged for access tokens automatically. Treat it as a secret.

  • GOOGLE_FORMS_ACCESS_TOKEN
    secret

    Static OAuth2 access token (~1h lifetime) — alternative to the refresh-token trio, mostly for testing.

  • GOOGLE_FORMS_API_BASE

    API root override.

  • GOOGLE_FORMS_TIMEOUT_MS

    Per-request timeout in milliseconds.

  • GOOGLE_FORMS_MAX_RETRIES

    Retries on transient errors (429 always; 5xx/network for reads).

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp-google-forms": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-google-forms"
      ],
      "env": {
        "GOOGLE_FORMS_CLIENT_ID": "<YOUR_GOOGLE_FORMS_CLIENT_ID>",
        "GOOGLE_FORMS_CLIENT_SECRET": "<YOUR_GOOGLE_FORMS_CLIENT_SECRET>",
        "GOOGLE_FORMS_REFRESH_TOKEN": "<YOUR_GOOGLE_FORMS_REFRESH_TOKEN>",
        "GOOGLE_FORMS_ACCESS_TOKEN": "<YOUR_GOOGLE_FORMS_ACCESS_TOKEN>",
        "GOOGLE_FORMS_API_BASE": "<YOUR_GOOGLE_FORMS_API_BASE>",
        "GOOGLE_FORMS_TIMEOUT_MS": "<YOUR_GOOGLE_FORMS_TIMEOUT_MS>",
        "GOOGLE_FORMS_MAX_RETRIES": "<YOUR_GOOGLE_FORMS_MAX_RETRIES>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "mcp-google-forms": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-google-forms"
      ],
      "env": {
        "GOOGLE_FORMS_CLIENT_ID": "<YOUR_GOOGLE_FORMS_CLIENT_ID>",
        "GOOGLE_FORMS_CLIENT_SECRET": "<YOUR_GOOGLE_FORMS_CLIENT_SECRET>",
        "GOOGLE_FORMS_REFRESH_TOKEN": "<YOUR_GOOGLE_FORMS_REFRESH_TOKEN>",
        "GOOGLE_FORMS_ACCESS_TOKEN": "<YOUR_GOOGLE_FORMS_ACCESS_TOKEN>",
        "GOOGLE_FORMS_API_BASE": "<YOUR_GOOGLE_FORMS_API_BASE>",
        "GOOGLE_FORMS_TIMEOUT_MS": "<YOUR_GOOGLE_FORMS_TIMEOUT_MS>",
        "GOOGLE_FORMS_MAX_RETRIES": "<YOUR_GOOGLE_FORMS_MAX_RETRIES>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcp-google-forms": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-google-forms"
      ],
      "env": {
        "GOOGLE_FORMS_CLIENT_ID": "<YOUR_GOOGLE_FORMS_CLIENT_ID>",
        "GOOGLE_FORMS_CLIENT_SECRET": "<YOUR_GOOGLE_FORMS_CLIENT_SECRET>",
        "GOOGLE_FORMS_REFRESH_TOKEN": "<YOUR_GOOGLE_FORMS_REFRESH_TOKEN>",
        "GOOGLE_FORMS_ACCESS_TOKEN": "<YOUR_GOOGLE_FORMS_ACCESS_TOKEN>",
        "GOOGLE_FORMS_API_BASE": "<YOUR_GOOGLE_FORMS_API_BASE>",
        "GOOGLE_FORMS_TIMEOUT_MS": "<YOUR_GOOGLE_FORMS_TIMEOUT_MS>",
        "GOOGLE_FORMS_MAX_RETRIES": "<YOUR_GOOGLE_FORMS_MAX_RETRIES>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "mcp-google-forms": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mcp-google-forms"
      ],
      "env": {
        "GOOGLE_FORMS_CLIENT_ID": "<YOUR_GOOGLE_FORMS_CLIENT_ID>",
        "GOOGLE_FORMS_CLIENT_SECRET": "<YOUR_GOOGLE_FORMS_CLIENT_SECRET>",
        "GOOGLE_FORMS_REFRESH_TOKEN": "<YOUR_GOOGLE_FORMS_REFRESH_TOKEN>",
        "GOOGLE_FORMS_ACCESS_TOKEN": "<YOUR_GOOGLE_FORMS_ACCESS_TOKEN>",
        "GOOGLE_FORMS_API_BASE": "<YOUR_GOOGLE_FORMS_API_BASE>",
        "GOOGLE_FORMS_TIMEOUT_MS": "<YOUR_GOOGLE_FORMS_TIMEOUT_MS>",
        "GOOGLE_FORMS_MAX_RETRIES": "<YOUR_GOOGLE_FORMS_MAX_RETRIES>"
      }
    }
  }
}
Claude Code
claude mcp add mcp-google-forms --env GOOGLE_FORMS_CLIENT_ID=<YOUR_GOOGLE_FORMS_CLIENT_ID> --env GOOGLE_FORMS_CLIENT_SECRET=<YOUR_GOOGLE_FORMS_CLIENT_SECRET> --env GOOGLE_FORMS_REFRESH_TOKEN=<YOUR_GOOGLE_FORMS_REFRESH_TOKEN> --env GOOGLE_FORMS_ACCESS_TOKEN=<YOUR_GOOGLE_FORMS_ACCESS_TOKEN> --env GOOGLE_FORMS_API_BASE=<YOUR_GOOGLE_FORMS_API_BASE> --env GOOGLE_FORMS_TIMEOUT_MS=<YOUR_GOOGLE_FORMS_TIMEOUT_MS> --env GOOGLE_FORMS_MAX_RETRIES=<YOUR_GOOGLE_FORMS_MAX_RETRIES> -- npx -y mcp-google-forms

Related MCP servers

MCP server for the Avito Ads API: campaigns, ad groups, creatives, statistics and balances.

0
TypeScript
MIT
View repository →

MCP server for Google Business Profile: locations, reviews, local posts and performance metrics.

0
TypeScript
MIT
View repository →

Real-user Core Web Vitals from the Chrome UX Report (CrUX) API for any origin or URL.

0
TypeScript
MIT
View repository →

MCP server for Google Merchant Center (Merchant API v1): products, promotions, reports, issues.

0
TypeScript
MIT
View repository →

MCP server for the Google Search Console API: search analytics, sitemaps, URL inspection, sites.

0
TypeScript
MIT
View repository →

MCP server for the Google Tag Manager API v2: containers, workspaces, tags, triggers, publishing.

0
TypeScript
MIT
View repository →