askill
google-forms

google-formsSafety 90Repository

Create and manage Google Forms programmatically via MCP. Use when: (1) creating survey forms, (2) adding questions/sections to forms, (3) getting form responses, (4) converting AskUserQuestion to shareable forms. Covers setup, all tools, item ordering, and API limitations.

7 stars
1.2k downloads
Updated 2/8/2026

Package Files

Loading files...
SKILL.md

Google Forms MCP

Setup

  1. Enable Google Forms API + Google Drive API at console.cloud.google.com
  2. Create OAuth 2.0 credentials (Desktop app type)
  3. Get refresh token:
    cd ~/.claude/mcp/google-forms-mcp
    bun install && bun run build
    GOOGLE_CLIENT_ID="..." GOOGLE_CLIENT_SECRET="..." bun run token
    
  4. Add to .mcp.json (use full path, not ~):
    {
      "mcpServers": {
        "google-forms-mcp": {
          "command": "bun",
          "args": ["/Users/USERNAME/.claude/mcp/google-forms-mcp/build/index.js"],
          "env": {
            "GOOGLE_CLIENT_ID": "...",
            "GOOGLE_CLIENT_SECRET": "...",
            "GOOGLE_REFRESH_TOKEN": "..."
          }
        }
      }
    }
    
  5. Run /mcp reset to load

Tools

ToolDescription
create_formCreate form (returns formId)
update_formUpdate title/description
get_formGet form structure
list_formsList all forms
delete_formDelete form permanently
add_sectionVisual divider (no page break)
add_pagePage break (requires Next button)
add_text_questionFree text input
add_multiple_choice_questionRadio or checkbox
update_questionModify existing question
delete_questionRemove question by index
get_form_responsesGet submitted responses

Item Ordering (CRITICAL)

All items are added at index 0. The LAST item you add appears FIRST.

For a multi-section form, add in reverse order:

1. create_form → update_form (description)
2. Additional Notes (last item)
3. Last section questions (e.g., 4.2, 4.1)
4. Last section header (Section 4)
5. Previous section questions (e.g., 3.4, 3.3, 3.2, 3.1)
6. Previous section header (Section 3)
7. ... continue for all sections ...
8. First section questions (e.g., 1.3, 1.2, 1.1)
9. First section header (Section 1) ← ADD LAST, APPEARS FIRST

Multiple Choice Options

Two formats supported:

// Simple strings
options: ["Option A", "Option B", "Option C"]

// With descriptions (renders as "Label – Description")
options: [
  { label: "Option A", description: "Details about A" },
  { label: "Option B", description: "Details about B" }
]

Parameters:

  • includeOther: true - Adds "Other" with text field
  • multiSelect: true - Checkboxes (multi-select)
  • multiSelect: false - Radio buttons (single choice, default)

API Limitations

ErrorCauseSolution
Only info.title can be set when creating a formCan't set description on createUse update_form after create_form
Displayed text cannot contain newlinesOptions can't have \nUse " – " (en-dash) to separate label from description
Cannot set option.value when isOther is trueOther option can't have valueFixed in MCP - just use includeOther: true

Section vs Page

  • add_section - Visual divider only, stays on same page (uses textItem)
  • add_page - Creates page break, user clicks "Next" (uses pageBreakItem)

For single-page surveys, always use add_section.

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

95/100Analyzed 2/13/2026

An excellent, high-utility guide for the Google Forms MCP. It provides clear setup instructions, a comprehensive tool list, and critically addresses non-obvious API behaviors like reverse item ordering and specific limitations.

90
95
90
95
95

Metadata

Licenseunknown
Version-
Updated2/8/2026
PublisherNeverSight

Tags

apici-cdllm