npx skills add https://github.com/openclaw/skills
udecode/google-forms-mcp · Archived
google-forms
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.
Installation
npx skills add udecode/google-forms-mcp --skill google-forms
Stronger alternatives
This repository is archived — consider an actively maintained alternative.
Migration guide for developers moving from Google Maps Platform to Mapbox GL JS, covering API e…
1.1K installsThis skill should be used when the user wants to "write agent code", "build an agent with ADK",…
160.8K installsThis skill should be used when the user wants to "develop an agent", "build an agent using ADK"…
160.5K installsThis skill should be used when the user wants to "run an evaluation", "evaluate my agent", "eva…
160.4K installsSimilar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
This skill should be used when the user wants to "deploy an agent", "deploy my ADK agent", "set…
160.4K installsThis skill should be used when the user wants to "create an agent project", "start a new ADK pr…
160.4K installsThis skill should be used when the user wants to "set up tracing", "monitor my agent", "configu…
160.4K installsThis skill should be used when the user wants to "publish an agent", "publish my ADK agent", "r…
160.2K installsCompile-time dependency injection in Golang using google/wire — wire.NewSet, wire.Build, wire.B…
34.6K installs>- MANDATORY recipe for every Caffeine build that sends email through the user's own Gmail acco…
15.4K installsMore details
Agent compatibility
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Also listed on
Alternate registries and mirrors of this skill.
Repository health
main
Skill metadata
Parsed from SKILL.md frontmatter.
Package contents
Files included with this skill beyond the listing page.
-
skill md
SKILL.md3,468 B -
docs
SUMMARY.md293 B
History
- First seen on skills.sh
- First recorded snapshot · 31 installs
SKILL.md
Google Forms MCP
Setup
- Enable Google Forms API + Google Drive API at console.cloud.google.com
- Create OAuth 2.0 credentials (Desktop app type)
- Get refresh token:
``bash cd ~/.claude/mcp/google-forms-mcp bun install && bun run build GOOGLECLIENTID="..." GOOGLECLIENTSECRET="..." bun run token ``
- Add to
.mcp.json(use full path, not~):
``json { "mcpServers": { "google-forms-mcp": { "command": "bun", "args": ["/Users/USERNAME/.claude/mcp/google-forms-mcp/build/index.js"], "env": { "GOOGLECLIENTID": "...", "GOOGLECLIENTSECRET": "...", "GOOGLEREFRESHTOKEN": "..." } } } } ``
- Run
/mcp resetto load
Tools
| Tool | Description |
|---|---|
create_form |
Create form (returns formId) |
update_form |
Update title/description |
get_form |
Get form structure |
list_forms |
List all forms |
delete_form |
Delete form permanently |
add_section |
Visual divider (no page break) |
add_page |
Page break (requires Next button) |
addtextquestion |
Free text input |
addmultiplechoice_question |
Radio or checkbox |
update_question |
Modify existing question |
delete_question |
Remove question by index |
getformresponses |
Get 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 fieldmultiSelect: true- Checkboxes (multi-select)multiSelect: false- Radio buttons (single choice, default)
API Limitations
| Error | Cause | Solution |
|---|---|---|
Only info.title can be set when creating a form |
Can't set description on create | Use updateform after createform |
Displayed text cannot contain newlines |
Options can't have \n |
Use " – " (en-dash) to separate label from description |
Cannot set option.value when isOther is true |
Other option can't have value | Fixed in MCP - just use includeOther: true |
Section vs Page
add_section- Visual divider only, stays on same page (usestextItem)add_page- Creates page break, user clicks "Next" (usespageBreakItem)
For single-page surveys, always use add_section.