MCP server for working with Google Forms - provides tools to list, create, update, close forms and apply batch operations to form questions/elements
The server has 5 tools with detailed descriptions in Russian. Tools are well-named with clear action verbs (list_, get_, apply_, close_, upsert_). Descriptions are comprehensive and explain WHAT, WHEN, and WHY each tool exists (baseline: 194 chars average; these range 250-450 chars, which is acceptable). However, parameter schemas are incomplete: most tools lack formal type definitions and constraints in the visible schema. Input parameters shown as JSON objects but lack enum constraints, min/max bounds, and some descriptions are minimal. Error handling is present (McpError with ErrorData) but recovery guidance is limited. Security handling appears sound (no credentials visible as params). Tool composition is good, each tool has a single clear responsibility. The visible code shows proper async/await patterns and telemetry integration. Main gaps: parameter validation rules not visible, output schemas not formally documented in code, and some parameter descriptions could be more actionable.
Инструмент для применения набора операций (patch) к вопросам/элементам формы через batchUpdate. Решает проблему изменения структуры формы - позволяет программно добавлять, удалять, перемещать или изменять вопросы и другие элементы формы в одной транзакции. Этот инструмент полезен при необходимости динамического изменения структуры форм, например, при адаптации формы под конкретные требования, автоматическом обновлении вопросов или массовом изменении содержимого форм. Примеры использования: - Добавление новых вопросов в существующую форму - Удаление устаревших вопросов - Обновление текстов вопросов - Изменение типов вопросов
Инструмент для закрытия формы, чтобы она больше не принимала новые ответы. Решает проблему контроля за временем приема ответов на форму - позволяет программно остановить прием новых ответов, когда цель сбора данных достигнута или срок приема истек. Этот инструмент полезен при автоматизации процессов управления формами, когда нужно своевременно остановить прием ответов, например, после окончания регистрации на мероприятие или завершения периода опроса. Примеры использования: - Закрытие формы после достижения определенного количества ответов - Автоматическое закрытие формы по расписанию - Остановка приема ответов при определенных условиях
Инструмент для получения полной информации о конкретной форме по её ID. Решает проблему доступа к детальной информации о форме, включая метаданные, вопросы, варианты ответов и другие элементы формы. Этот инструмент полезен при необходимости анализа содержимого формы, экспорта данных, проверки структуры формы или подготовке данных для анализа ответов на форму. Примеры использования: - Получение полной структуры формы для анализа - Проверка наличия определённых вопросов в форме - Документирование содержимого форм
Parameter schemas lack formal constraints and type details. Input parameters shown as basic JSON objects without enum constraints, min/max bounds, format specifications, or validation rules. For example, 'requests' in apply_questions_patch is typed as 'array' but lacks description of valid sub-request structures.
Output schemas are not formally documented in the source code. Tools return ToolResult with structured_content but the schema of that structured content (fields, types, nullability) is not declared. LLMs cannot predict response structure.
apply_questions_patch requires a 'requests' parameter that expects a complex nested structure (Google Forms batchUpdate API format). The parameter lacks sufficient documentation of valid request shapes, required fields, and examples of valid sub-request types (createItem, deleteItem, updateItem, moveItem).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 75 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 50 | - | v1 |
Инструмент для получения списка всех форм пользователя из Google Drive. Решает проблему получения обзора всех доступных форм, позволяя быстро получить идентификаторы и имена всех форм, к которым у пользователя есть доступ. Этот инструмент полезен при необходимости выбора формы из доступных, автоматического определения форм для последующей обработки или получения общего представления о существующих в системе формах. Примеры использования: - Получение списка всех форм для выбора конкретной формы - Аудит существующих форм в аккаунте - Автоматический поиск формы по названию
Инструмент для создания новой формы или обновления существующей в Google Forms. Решает проблему управления формами - позволяет программно создавать формы с заданными параметрами или обновлять существующие формы, изменяя их заголовок и описание. Этот инструмент полезен при автоматизации процессов создания анкет, опросов, регистраций и других форм, а также при синхронизации метаданных форм с внешними системами. Примеры использования: - Создание новой формы: вызвать инструмент с пустым form_id - Обновление существующей формы: указать конкретный form_id - Изменение заголовка и описания формы в автоматическом режиме
Error handling returns McpError with basic messages but does not classify errors as retryable vs. fatal or provide recovery guidance. For example, 'Ошибка при выполнении: {e}' does not tell the LLM whether to retry, ask the user, or give up.
upsert_form description says 'form_id or None for creating new' but the parameter is typed as string, not Optional[string]. This mismatch could confuse both LLMs and static type checkers. If None is valid, schema must reflect it.
No pagination parameters visible for list_forms despite it retrieving 'all forms'. If users have many forms, a single unbounded call could return thousands of items, bloating context. Missing limit/offset or page_size parameters.