mcp-google-forms

Servidor MCP para la API de Google Forms: crea formularios, gestiona preguntas, publica, lee respuestas y observa nuevas presentaciones. Para Claude, Cursor, Codex y otros clientes de IA.

Documentación

A1 Google Forms MCP

Español | Русский

npm Glama CI License: MIT

A1 Google Forms MCP permite que una aplicación de IA cree y gestione Google Forms en lenguaje natural. Crea una encuesta, elige sus preguntas, publícala cuando esté lista, lee las respuestas y usa notificaciones para nuevas respuestas.

Utiliza la API de Google Forms con tu cuenta de Google. Distingue un formulario en borrador de un formulario publicado y hace explícitos los límites de la API de Forms en lugar de dar a entender que cualquier tarea de formularios es posible.

  • 19 herramientas. Inspecciona la estructura del formulario y las respuestas, crea y edita formularios y preguntas, gestiona la publicación y configura vigilancias de Pub/Sub.
  • Se conecta desde la conversación. Di "conectar Google Forms": el servidor te guía a través del cliente OAuth, captura la redirección de Google en 127.0.0.1 con PKCE y guarda los tokens él mismo — sin archivos de configuración, sin reinicios.
  • Publica deliberadamente. Los formularios creados a través de la API comienzan sin publicar, por lo que no pueden recopilar respuestas hasta que los publiques.
  • Las respuestas permanecen intactas. La API puede leer respuestas pero no puede crearlas ni editarlas; el servidor no tiene ninguna herramienta que envíe respuestas.
  • Ámbitos de Google mínimos. Utiliza forms.body y forms.responses.readonly, sin acceso amplio a Drive.

Comienza con una pregunta de solo lectura:

Muéstrame las respuestas de ayer al formulario de comentarios de clientes y resume las respuestas de texto libre.

Conectar el servidor · Explorar casos de uso · Abrir documentación técnica


Véalo funcionar en un minuto

Tú: Muéstrame las preguntas y la configuración de respuestas del formulario de comentarios de clientes.

Asistente: Muestra el formulario, sus elementos, si está publicado y si acepta respuestas. No cambia nada.

Tú: Prepara una pregunta de calificación obligatoria del 1 al 5 llamada "¿Cómo fue tu experiencia?" después de la primera pregunta.

Asistente: Muestra el formulario de destino, la posición y la pregunta propuesta, y luego pide confirmación antes de añadirla.

Tú: Confirmar.

Asistente: Añade la pregunta al formulario. No publica ni cierra el formulario a menos que lo pidas por separado.

Contenido

Inicio rápido

Necesitas Node.js 20+ y una cuenta de Google. No se requieren credenciales en el momento de la instalación — el servidor se conecta desde la conversación.

  1. Añade el servidor a tu aplicación de IA.
  2. Di "conectar Google Forms": el asistente te guía a través de la creación del cliente OAuth y la aprobación del acceso sin editar archivos de configuración.
  3. Haz la pregunta de solo lectura anterior.
Codex

En la aplicación: abre Configuración → Servidores MCP, selecciona Añadir servidor, elige STDIO, introduce el comando npx -y mcp-google-forms@latest y las variables de entorno GOOGLE_FORMS_CLIENT_ID, GOOGLE_FORMS_CLIENT_SECRET, GOOGLE_FORMS_REFRESH_TOKEN, luego selecciona Guardar y Reiniciar.

Desde la línea de comandos:

codex mcp add google-forms \
  -- npx -y mcp-google-forms@latest
codex mcp list

Documentación de MCP de Codex

Claude Code
claude mcp add \
  --transport stdio --scope user google-forms \
  -- npx -y mcp-google-forms@latest
claude mcp list

Documentación de MCP de Claude Code

Claude Desktop

La ruta oficial actual es Configuración → Extensiones. Para una extensión de escritorio personalizada, abre Configuración avanzada → Desarrollador de extensiones → Instalar extensión…, selecciona un archivo .mcpb y sigue las indicaciones.

Este repositorio publica actualmente un paquete npm stdio y no contiene un paquete .mcpb. Para las versiones de Claude Desktop que aún admiten configuración local, usa la siguiente configuración JSON stdio como alternativa:

{
  "mcpServers": {
    "google-forms": {
      "command": "npx",
      "args": ["-y", "mcp-google-forms@latest"]
    }
  }
}

En esas versiones, guárdalo en ~/Library/Application Support/Claude/claude_desktop_config.json en macOS o %APPDATA%\Claude\claude_desktop_config.json en Windows.

Documentación de MCP de Claude Desktop

Cursor

Añade esto a ~/.cursor/mcp.json en macOS/Linux o %USERPROFILE%\.cursor\mcp.json en Windows:

{
  "mcpServers": {
    "google-forms": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-google-forms@latest"]
    }
  }
}

Documentación de MCP de Cursor

VS Code

Ejecuta MCP: Abrir configuración de usuario y añade:

{
  "servers": {
    "google-forms": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-google-forms@latest"]
    }
  }
}

Compruébalo con MCP: Listar servidores.

Documentación de MCP de VS Code

Qué puedes pedirle que haga

Inspeccionar una encuesta y sus respuestas

  • Muestra las preguntas de este formulario, la configuración de respuestas y el enlace para los encuestados.
  • ¿Cuántas respuestas han llegado desde el lunes? Resume los comentarios de texto libre.
  • Muestra una respuesta por ID.

Crear y mejorar un formulario

  • Crea un formulario RSVP con nombre, preferencia de comida y fecha de llegada.
  • Añade una pregunta obligatoria de calificación, lista desplegable, fecha, hora, opción múltiple o texto.
  • Reordena una pregunta o actualiza un título, descripción, modo de examen o recopilación de correos electrónicos.

Publicar y conectar notificaciones

  • Publica un formulario preparado y muestra su URL para encuestados.
  • Deja de aceptar nuevas respuestas sin eliminar el formulario.
  • Crea, renueva o elimina una vigilancia de Cloud Pub/Sub para nuevas respuestas.

Cómo cambia un formulario

  1. create_form crea un formulario, que comienza sin publicar por defecto.
  2. Las preguntas son elementos, identificados por su posición en el formulario.
  3. Publicar hace que un formulario esté disponible para los encuestados; cerrar la recopilación de respuestas lo deja publicado pero detiene nuevas respuestas.
  4. Las respuestas son un registro separado de solo lectura. La API no puede enviar, editar ni eliminar la respuesta de un encuestado.

Las preguntas de carga de archivos no se pueden crear a través de la API de Forms, aunque los elementos de carga de archivos existentes se pueden leer. Los formularios heredados creados antes del modelo de publicación de Google pueden no admitir la configuración de publicación.

Qué puede cambiar

OperaciónQué sucedeLímite de confirmación
Leer un formulario y sus respuestasLee la estructura del formulario y las respuestasSin cambios
Crear un formularioAñade un formulario sin publicarCambia Google Forms
Añadir o mover una preguntaCambia los elementos del formularioCambia un formulario
Actualizar información, configuración o un elemento del formularioCambia el título, la configuración o una pregunta seleccionadaCambia un formulario
Publicar, despublicar, abrir o cerrar respuestasCambia quién puede usar el formularioCambia la disponibilidad pública de un formulario
Eliminar un elementoElimina una pregunta seleccionadaDestructivo
Gestionar una vigilancia de Pub/SubCrea, renueva o elimina la entrega de notificacionesPotencialmente destructivo
Solicitud de API sin procesarPuede llamar a métodos de la API sin una herramienta dedicadaPotencialmente destructivo

El cliente de IA controla los mensajes de confirmación. El servidor marca las herramientas de lectura, escritura y destructivas para que el cliente pueda distinguir una inspección de un cambio en vivo.

Obtener acceso

Google Forms requiere OAuth 2.0; una clave de API no es suficiente. Hay dos formas de acceder, y la primera no necesita archivos de configuración.

Conectar desde el chat (recomendado)

Di "conectar Google Forms" y el asistente ejecutará el flujo contigo:

  1. setup_instructions imprime la lista de verificación: crea o selecciona un proyecto de Google Cloud, habilita Google Forms API, configura la pantalla de consentimiento y crea un cliente OAuth de Aplicación de escritorio.
  2. Descarga el JSON de ese cliente ("Descargar JSON") y dale al asistente su ruta — set_client lo almacena solo para el propietario. El secreto nunca pasa por la conversación.
  3. start_login devuelve un enlace de consentimiento de Google. Ábrelo en esta máquina y aprueba; el código vuelve a un listener de un solo uso en 127.0.0.1 (PKCE), nunca a través del chat.
  4. finish_login intercambia el código y guarda los tokens en ~/.config/mcp-google-forms/credentials.json (modo 0600).

Los tokens se releen en cada llamada, por lo que la conexión funciona de inmediato — sin reiniciar la aplicación de IA. auth_status muestra lo que está conectado, logout revoca y elimina.

Variables de entorno (CI, instalaciones desatendidas)

  1. Crea o selecciona un proyecto de Google Cloud y habilita Google Forms API.

  2. Configura la pantalla de consentimiento de OAuth y crea un cliente OAuth de Aplicación de escritorio.

  3. Autoriza la cuenta de Google que posee o puede editar los formularios. El OAuth 2.0 Playground puede obtener el token de actualización cuando Usar tus propias credenciales OAuth está habilitado.

  4. Solicita ambos ámbitos:

    https://www.googleapis.com/auth/forms.body
    https://www.googleapis.com/auth/forms.responses.readonly
    

Los tokens de actualización de OAuth en modo de prueba pueden caducar después de siete días. Publica la aplicación OAuth, o usa una aplicación Interna en un dominio de Workspace, cuando necesites acceso de larga duración. Trata el secreto del cliente y el token de actualización como contraseñas.

Configuración

Cada variable es opcional — sin ninguna de ellas el servidor se conecta desde el chat.

VariableRequeridaDescripción
GOOGLE_FORMS_CLIENT_IDNo*ID del cliente OAuth.
GOOGLE_FORMS_CLIENT_SECRETNo*Secreto del cliente OAuth.
GOOGLE_FORMS_REFRESH_TOKENNo*Token de actualización de OAuth.
GOOGLE_FORMS_ACCESS_TOKENNo*Alternativa de corta duración al trío OAuth.
GOOGLE_FORMS_OAUTH_PORTNoPuerto de loopback fijo para el inicio de sesión en el chat; útil con reenvío de puertos SSH.
GOOGLE_FORMS_API_BASENoAnulación de la URL base de la API de Google Forms.
GOOGLE_FORMS_TIMEOUT_MSNoTiempo de espera por solicitud; predeterminado 60000 ms.
GOOGLE_FORMS_MAX_RETRIESNoReintentos de errores temporales; predeterminado 3.

* Proporciona el trío OAuth o un token de acceso.

Datos, límites y trabajo en segundo plano

  • Las solicitudes van a Google Forms. El servidor local actualiza los tokens OAuth de Google y llama a la API de Forms. Su telemetría anónima contiene un ID de instalación, versión del paquete, cliente de IA y versiones de plataforma, y nombres de herramientas — nunca tokens OAuth, datos de formularios, argumentos de herramientas o indicaciones. Establece ASKADS_TELEMETRY=0 para optar por no participar.
  • Google aplica cuotas por minuto. Los límites documentados son 975 lecturas por proyecto, 450 llamadas list_responses y 375 escrituras. En 429, el servidor usa retroceso; las lecturas también se reintentan después de errores de red y 5xx, mientras que las escrituras no se reproducen después de una falla incierta.
  • No hay sondeo en segundo plano. El servidor solo se ejecuta cuando se le llama. Las vigilancias de Pub/Sub pueden notificar a tu propia infraestructura sobre nuevas respuestas; si tu aplicación de IA admite tareas programadas, también puede verificar respuestas periódicamente.

Documentación técnica

Soporte

¿Encontraste un error o necesitas un escenario? Crea un problema o escribe en Telegram.


Две Моны дают пять

¡Llegaste al final!