mcp-google-forms
v1.2.0
Published
MCP server for the Google Forms API — create forms, manage questions, publish, read responses and watch for new submissions. For Claude, Cursor, Codex and other AI clients.
Maintainers
Readme
Google Forms MCP
English | Русский
A1 Google Forms MCP позволяет AI-приложению создавать и настраивать Google Forms на естественном языке. Можно подготовить опрос, выбрать вопросы, опубликовать его в нужный момент, прочитать ответы и настроить уведомления о новых отправках.
Сервер работает с Google Forms API через ваш Google-аккаунт. Он отличает черновую форму от опубликованной и явно показывает ограничения API, а не создаёт впечатление, что через форму можно сделать всё.
- 19 инструментов. Проверка структуры формы и ответов, создание и редактирование форм и вопросов, управление публикацией и Pub/Sub watches.
- Подключение из диалога. Скажите «подключи Google Формы»: сервер проведёт через создание OAuth-клиента, поймает редирект Google на
127.0.0.1с PKCE и сам сохранит токены — без конфигов и перезапуска. - Осознанная публикация. Формы, созданные через API, по умолчанию не опубликованы и не принимают ответы, пока вы их не опубликуете.
- Ответы сохраняются как есть. API умеет читать ответы, но не создавать и не редактировать их; инструмента отправки ответов у сервера нет.
- Минимальные scope Google. Используются
forms.bodyиforms.responses.readonlyбез широкого доступа к Drive.
Начните с запроса, который только читает данные:
Покажи вчерашние ответы на форму обратной связи и кратко суммируй ответы в свободной форме.
Подключить сервер · Посмотреть сценарии · Открыть техническую документацию
Увидеть работу за минуту
Вы: Покажи вопросы и настройки приёма ответов в форме обратной связи.
Ассистент: Показывает форму, её пункты, статус публикации и возможность принимать ответы. Ничего не меняется.
Вы: Подготовь обязательный вопрос с оценкой от 1 до 5: «Как прошёл ваш опыт?» — после первого вопроса.
Ассистент: Показывает целевую форму, позицию и предлагаемый вопрос, затем запрашивает подтверждение перед добавлением.
Вы: Подтверждаю.
Ассистент: Добавляет вопрос в форму. Он не публикует и не закрывает форму, пока вы не попросите об этом отдельно.
Содержание
- Быстрый старт
- Что можно поручить
- Как меняется форма
- Что может измениться
- Как получить доступ
- Конфигурация
- Данные, лимиты и работа в фоне
- Техническая документация
- Поддержка
Быстрый старт
Нужны Node.js 20+ и Google-аккаунт. Учётные данные при установке не нужны: сервер подключается прямо в диалоге.
- Добавьте сервер в AI-приложение.
- Скажите «подключи Google Формы» — ассистент проведёт создание OAuth-клиента и выдачу доступа, не трогая конфиги.
- Отправьте запрос, который только читает данные.
В приложении: откройте Settings → MCP servers, нажмите Add server, выберите STDIO, укажите команду npx -y mcp-google-forms@latest и переменные окружения GOOGLE_FORMS_CLIENT_ID, GOOGLE_FORMS_CLIENT_SECRET, GOOGLE_FORMS_REFRESH_TOKEN, затем нажмите Save, потом Restart.
В командной строке:
codex mcp add google-forms \
-- npx -y mcp-google-forms@latestcodex mcp listclaude mcp add \
--transport stdio --scope user google-forms \
-- npx -y mcp-google-forms@latestclaude mcp listАктуальный официальный путь — Settings → Extensions. Для пользовательского desktop extension откройте Advanced settings → Extension Developer → Install Extension…, выберите файл .mcpb и следуйте подсказкам.
Этот репозиторий сейчас публикует npm-пакет со stdio и пока не содержит .mcpb. Поэтому используйте приведённый ниже JSON stdio-конфиг как fallback только в сборках Claude Desktop, где ещё поддерживается локальная конфигурация:
{
"mcpServers": {
"google-forms": {
"command": "npx",
"args": ["-y", "mcp-google-forms@latest"]
}
}
}В таких сборках сохраните его в ~/Library/Application Support/Claude/claude_desktop_config.json на macOS или %APPDATA%\Claude\claude_desktop_config.json на Windows.
Документация Claude Desktop MCP
Добавьте в ~/.cursor/mcp.json на macOS/Linux или %USERPROFILE%\.cursor\mcp.json на Windows:
{
"mcpServers": {
"google-forms": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-google-forms@latest"]
}
}
}Запустите MCP: Open User Configuration и добавьте:
{
"servers": {
"google-forms": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-google-forms@latest"]
}
}
}Проверьте сервер командой MCP: List Servers.
Что можно поручить
Проверить опрос и ответы
- Покажи вопросы, настройки приёма ответов и ссылку для респондентов.
- Сколько ответов пришло с понедельника? Суммируй обратную связь в свободной форме.
- Покажи один ответ по его ID.
Собрать и улучшить форму
- Создай RSVP-форму с именем, выбором питания и датой приезда.
- Добавь обязательный вопрос с оценкой, выпадающий список, дату, время, один или несколько вариантов или текстовое поле.
- Перемести вопрос или обнови название, описание, quiz mode или сбор email.
Опубликовать и настроить уведомления
- Опубликуй готовую форму и покажи ссылку для респондентов.
- Останови приём новых ответов, не удаляя форму.
- Создай, продли или удали Cloud Pub/Sub watch для новых отправок.
Как меняется форма
create_formсоздаёт форму, которая по умолчанию не опубликована.- Вопросы — это пункты, которые определяются позицией в форме.
- Публикация открывает форму для респондентов; закрытие приёма ответов оставляет форму опубликованной, но не принимает новые отправки.
- Ответы — отдельная read-only запись. API не может отправить, изменить или удалить ответ респондента.
Через Forms API нельзя создать вопрос с загрузкой файла, хотя существующий такой вопрос можно прочитать. Старые формы, созданные до модели публикации Google, могут не поддерживать настройки публикации.
Что может измениться
| Операция | Что происходит | Граница подтверждения | |---|---|---| | Проверка формы и её ответов | Читает структуру и отправки | Ничего не меняет | | Создание формы | Добавляет неопубликованную форму | Меняет Google Forms | | Добавление или перемещение вопроса | Меняет пункты формы | Меняет форму | | Обновление данных, настроек или вопроса | Меняет название, настройки или выбранный вопрос | Меняет форму | | Публикация, снятие с публикации, открытие или закрытие ответов | Меняет доступность формы | Меняет доступ для респондентов | | Удаление пункта | Удаляет выбранный вопрос | Разрушительно | | Управление Pub/Sub watch | Создаёт, продлевает или удаляет доставку уведомлений | Потенциально разрушительно | | Технический запрос API | Может вызвать метод API без отдельного инструмента | Потенциально разрушительно |
Как AI-приложение просит подтверждение, определяет само приложение. Сервер помечает операции чтения, записи и удаления, чтобы оно отличило проверку от рабочего изменения.
Как получить доступ
Google Forms требует OAuth 2.0: одного API-ключа недостаточно. Путей два, и первый не требует править конфигурационные файлы.
Подключение из диалога (рекомендуемый путь)
Скажите «подключи Google Формы», и ассистент пройдёт флоу вместе с вами:
setup_instructionsвыдаёт чек-лист: создать или выбрать проект Google Cloud, включить Google Forms API, настроить consent screen и создать OAuth-клиент типа Desktop app.- Скачайте JSON этого клиента («Download JSON») и передайте ассистенту путь к файлу —
set_clientсохранит его с правами только для владельца. Секрет через переписку не проходит. start_loginвозвращает ссылку на согласие Google. Откройте её на этой же машине и подтвердите доступ: код возвращается на одноразовый слушатель127.0.0.1(PKCE), а не в чат.finish_loginменяет код на токены и кладёт их в~/.config/mcp-google-forms/credentials.json(права 0600).
Токены перечитываются на каждый вызов, поэтому подключение действует немедленно — перезапускать AI-приложение не нужно. auth_status показывает состояние, logout отзывает токен и удаляет его.
Переменные окружения (CI и автоматические установки)
Создайте или выберите проект Google Cloud и включите Google Forms API.
Настройте OAuth consent screen и создайте OAuth-клиент типа Desktop app.
Авторизуйте Google-аккаунт, который владеет формами или может их редактировать. OAuth 2.0 Playground поможет получить refresh token, если включить Use your own OAuth credentials.
Запросите оба scope:
https://www.googleapis.com/auth/forms.body https://www.googleapis.com/auth/forms.responses.readonly
Refresh token OAuth-приложения в режиме Testing может истечь через семь дней. Для долгого доступа опубликуйте OAuth-приложение или используйте Internal-приложение в домене Workspace. Храните client secret и refresh token как пароли.
Конфигурация
Все переменные необязательные — без единой из них сервер подключается из диалога.
| Переменная | Обязательна | Описание |
|---|---|---|
| GOOGLE_FORMS_CLIENT_ID | Нет* | OAuth client ID. |
| GOOGLE_FORMS_CLIENT_SECRET | Нет* | OAuth client secret. |
| GOOGLE_FORMS_REFRESH_TOKEN | Нет* | OAuth refresh token. |
| GOOGLE_FORMS_ACCESS_TOKEN | Нет* | Короткоживущая альтернатива OAuth-тройке. |
| GOOGLE_FORMS_OAUTH_PORT | Нет | Фиксированный порт loopback-слушателя для входа из диалога; нужен при пробросе портов по SSH. |
| GOOGLE_FORMS_API_BASE | Нет | Переопределяет базовый URL Google Forms API. |
| GOOGLE_FORMS_TIMEOUT_MS | Нет | Тайм-аут одного запроса; по умолчанию 60000 мс. |
| GOOGLE_FORMS_MAX_RETRIES | Нет | Повторы временных ошибок; по умолчанию 3. |
* Передайте OAuth-тройку или access token.
Данные, лимиты и работа в фоне
- Запросы идут в Google Forms. Локальный сервер обновляет OAuth-токены Google и вызывает Forms API. Анонимная телеметрия содержит ID установки, версию пакета, версии AI-клиента и платформы и имена инструментов — но не OAuth-токены, данные формы, аргументы или промпты. Чтобы отключить её, задайте
ASKADS_TELEMETRY=0. - У Google есть поминутные квоты. Документированные лимиты: 975 чтений на проект, 450 вызовов
list_responsesи 375 записей. При429сервер использует задержку; чтение также повторяется после сетевых и5xxошибок, а запись после неопределённой ошибки не повторяется. - Постоянного опроса нет. Сервер работает только при вызове. Pub/Sub watch может уведомить вашу инфраструктуру о новых ответах; если AI-приложение поддерживает задания по расписанию, оно также может периодически проверять ответы.
Техническая документация
- Каталог MCP-возможностей — страницы по пользовательским задачам для каждого инструмента.
- Все инструменты и параметры
- Документация по разработке
- Документация по публикации
- Справочник Google Forms API
Поддержка
Нашли ошибку или не хватает сценария? Создайте issue или напишите в Telegram.
