MCP server for reading and editing Google Forms with the official Google Forms and Google Drive APIs.
Google Forms MCP demonstrates solid definition quality with consistent naming, comprehensive parameter schemas, and tool annotations. All 20 tools follow verb_noun convention (create_form, get_form, update_form_info, etc.). Input schemas are present and typed via Zod. Descriptions are present for all tools and most parameters. However, descriptions are often terse (many under 100 chars), lack dependency hints, and some parameter descriptions are minimal. Output schemas are not explicitly documented in the visible code. Error handling returns structured AppError objects but lacks recovery guidance. Tool composition is clean, each tool has a single responsibility. The server properly uses tool annotations (readOnlyHint, destructiveHint) to signal operation safety.
Add a checkbox (multiple-select) question to the form.
Add a dropdown (select) question to the form.
Insert a standalone image block into the form. Use this for banners, separators, references, or visual examples between questions.
Add a multiple-choice (radio button) question to the form.
Add a long-answer paragraph question to the form.
Add a section header (page break) to the form.
Output schemas not documented. Tool descriptions state what is returned (e.g., 'Fetch form metadata...') but the response structure is not formally documented. LLMs cannot plan downstream tool calls without knowing which fields to expect.
Descriptions lack dependency hints and recovery guidance. For example, update_question and update_section accept both 'itemId' and 'currentIndex' as optional identifiers, but the description does not explain when to use each or what happens if both are missing.
Error handling returns structured AppError but lacks actionable recovery guidance. Errors include error codes and details but do not tell the LLM what to do next (e.g., 'Try list_items() first to find the itemId').
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | <=2025-11-25 | v2 |
Add a short-answer text question to the form.
Create a new empty Google Form. Optionally set the Drive document title and form description during setup.
Delete a form item (question, section, or image block).
Fetch form metadata, publish settings, responder URL, and normalized items for a Google Form.
Fetch a single form response by ID.
List all form items in a normalized, agent-friendly structure with indexes, itemIds, question types, and options.
List form responses with optional pagination.
Move a form item to a different position.
Publish or unpublish a form, and optionally set responder access permissions.
Add or update an image attached to a question.
Update the form title and/or description. Use this when changing top-level form metadata, not individual questions.
Update an existing image block's properties (alt text, width, alignment).
Update an existing question's title, description, required status, or options.
Update an existing section's title and/or description.
Destructive operations (delete_item) lack confirmation or dry-run support. An agent could accidentally delete form items without a confirmation step.
Parameter descriptions for choice questions (add_multiple_choice_question, add_checkbox_question, add_dropdown_question) do not explain the structure of 'optionNavigation' array or when to use goToSectionId vs goToAction.