mcp-server-google-forms
Allows creating, editing, and publishing Google Forms, including managing questions, sections, quizzes, and responses.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-google-forms Create a survey about remote work and share the link to collect responses"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-server-google-forms
Servidor MCP local que permite ao Claude Code criar, editar e publicar Google Forms — apresentado aos usuários como "Forms IA (MCP)", um app verificado pelo Google. Código de exemplo do livro sobre Claude Code.
✅ Ficou fácil: você não precisa criar nada no Google Cloud nem baixar arquivos de credenciais. É instalar, entrar com a sua conta Google (tela limpa, sem avisos) e usar. Há também uma versão em página, com cards — talvez mais confortável de ler.
Índice
Related MCP server: Google Workspace MCP Server
Início rápido
Tem Node.js 18+, o Claude Code e uma conta Google? Então são dois comandos:
# 1. Autorize com o Google (o navegador abre; app verificado, sem avisos)
npx -p mcp-server-google-forms mcp-server-google-forms-token
# 2. Registre no Claude Code
claude mcp add google-forms -- npx mcp-server-google-formsQuer o passo a passo detalhado, escrito para quem não programa? Siga o guia abaixo. 👇
Guia completo para quem não programa
Pré-requisitos
Node.js 18 ou mais novo. É o programa que faz o servidor rodar; os comandos
npmenpxvêm junto com ele. Para conferir, abra o terminal (veja abaixo) e digitenode --version. Se aparecerv18…ou maior, está pronto. Se não, baixe a versão LTS em nodejs.org e instale (é só avançar/próximo).O Claude Code instalado — é por ele que você conversa com o servidor (code.claude.com/docs).
Uma conta Google (a mesma em que os formulários vão aparecer).
Como abrir o terminal (é onde você cola os comandos):
Windows: menu Iniciar → digite PowerShell → abra o Windows PowerShell.
Mac: aperte
Cmd + Espaço, digite Terminal e dê Enter.Linux: procure por Terminal no menu de aplicativos (ou
Ctrl + Alt + T).
💡 Neste guia, "rode o comando X" significa sempre: abra o terminal, cole o
Xe aperte Enter.
Passo 1 — Autorize com a sua conta Google
Rode o comando de autorização:
npx -p mcp-server-google-forms mcp-server-google-forms-tokenO navegador abre sozinho na tela de login do Google.
Entre com a sua conta e permita o acesso. A tela mostra o app Forms IA (MCP) — verificado pelo Google, sem avisos de segurança. Confira as permissões (criar/editar formulários e ler respostas) e clique em Continuar/Permitir. No terminal aparece "Pronto. refreshToken salvo…" — deu certo.
Passo 2 — Registre no Claude Code
claude mcp add google-forms -- npx mcp-server-google-formsPasso 3 — Peça ao Claude
Pronto! Abra o Claude Code e peça em português, por exemplo:
"Crie um quiz de 5 perguntas sobre fotossíntese, valendo 2 pontos cada, e me dê o link para compartilhar."
Fluxo típico: build_form (ou create_form → add_question) → compartilhar o link de resposta → list_responses.
Sobre publicação: verificamos na prática (10/07/2026) que a API cria formulários já publicados por padrão, ao contrário do que a documentação do Google sugeria. Por isso as ferramentas de criação aceitam
unpublished=true(criar como rascunho) e informam o estado real devolvido pela API — e oset_publishcobre os dois sentidos.
Usar em outro computador
É só repetir os Passos 1 e 2 na máquina nova — sem arquivos, sem configuração. Atalho para quem não quer refazer
o login: copie a pasta ~/.config/mcp-server-google-forms/ (no Windows, C:\Users\SeuNome\.config\mcp-server-google-forms\)
do computador antigo para o mesmo lugar no novo — o config.json dentro dela guarda a sua autorização.
O caminho começa com um ponto (.config) e, por isso, a pasta não aparece por padrão no Explorer (Windows)
nem no Finder (Mac). Isso é intencional: programas guardam suas configurações em pastas agrupadas em ~/.config
(o ~ representa a sua pasta de usuário), fora da vista, para não poluir os seus documentos. "Oculta" não significa
"protegida" — a pasta é sua e pode ser aberta a qualquer momento: cole o caminho na barra de endereço do Explorer,
ou use Cmd + Shift + G no Finder. É ali que o servidor guarda a sua autorização (config.json).
Clone e instale:
git clone https://github.com/claude-book/mcp-server-google-forms.git cd mcp-server-google-forms npm installAutorize: rode
npm run tokene aprove no navegador.Registre no Claude Code (rodando na raiz do projeto):
claude mcp add google-forms -- node "$(pwd)/src/server.js"
Ferramentas (15)
Ferramenta | O que faz |
| Cria um formulário e devolve o ID e os links. Por padrão o Google o cria já publicado; use |
| Cria o formulário inteiro numa única operação: título, descrição, modo quiz e todas as perguntas. |
| Publica ou despublica o formulário (libera ou bloqueia respostas). |
| Mostra a lista de itens com as posições e a estrutura completa. |
| Acrescenta uma pergunta (no final ou numa posição). Nove tipos: texto curto/longo, escolha única, caixas de seleção, lista suspensa, escala linear, data, hora/duração e avaliação (estrelas, corações ou joinhas). |
| Altera o título e/ou a descrição de um formulário existente. |
| Edita uma pergunta existente (enunciado, obrigatoriedade, alternativas, pontos, gabarito) sem apagar e recriar — preserva o vínculo com respostas já recebidas. |
| Liga ou desliga o modo quiz (com notas). Obrigatório antes de usar |
| Insere uma quebra de seção (nova página) na posição indicada. |
| Insere um bloco de texto explicativo (sem campo de resposta) na posição indicada. |
| Remove a pergunta na posição indicada (recusa apagar o que não for pergunta). |
| Move um item de uma posição para outra. |
| Lista as respostas, incluindo perguntas de upload de arquivo. Em páginas (padrão 50), com |
| Confere o gabarito de um quiz contra uma lista esperada (auditoria pós-criação). |
| Diagnóstico das credenciais: arquivo presente, campos completos e teste real com o Google. |
Solução de problemas
"Credenciais expiradas ou revogadas" — rode o comando de autorização de novo (Passo 1) e refaça o login; o servidor recarrega as credenciais sozinho, sem precisar reiniciar.
O navegador não abriu na autorização? — o terminal também imprime a URL; copie e cole no navegador.
Usa o seu próprio projeto do Google Cloud? Os problemas específicos desse caso estão na seção abaixo.
Para um diagnóstico rápido, peça ao Claude para rodar a ferramenta auth_status: ela testa as credenciais direto com o Google.
Usar o próprio projeto do Google Cloud (avançado)
Por padrão, a autorização usa a credencial embutida do app Forms IA (MCP), verificado pelo Google — e a sua
autorização e os seus dados continuam só na sua conta e na sua máquina (detalhes em src/default-client.js).
Se preferir usar um projeto seu (por exemplo, para ter as suas próprias cotas), o app respeita: um
client_secret*.json na pasta de credenciais tem prioridade sobre a credencial embutida.
Em console.cloud.google.com: crie um projeto → ative a Google Forms API → configure a Tela de permissão OAuth (tipo Externo) → adicione-se como usuário de teste (sem isso, a autorização falha com "acesso negado") → crie a credencial (ID do cliente OAuth, tipo App para computador).
Baixe o JSON na hora da criação — o Google não permite baixá-lo depois (se perder, crie outro cliente).
Coloque o
client_secret*.jsonem~/.config/mcp-server-google-forms/(Windows:C:\Users\SeuNome\.config\mcp-server-google-forms\) — ou emcredentials/, na instalação por clone.Rode o comando de autorização; o terminal confirma: "Usando o seu projeto próprio do Google Cloud".
Avisos que só aparecem no projeto próprio:
"O Google não verificou este app" — normal (o app é seu); clique em Avançado → Acessar … (não seguro).
"Acesso negado" /
access_denied— você não se adicionou como usuário de teste; volte à Tela de permissão.Expiração de 7 dias — em modo Testing, o Google expira a autorização a cada 7 dias; publique o app (Tela de permissão OAuth → Publicar app) para resolver. Para uso pessoal não é preciso passar pela verificação.
Referência técnica
src/server.js → o servidor MCP
src/default-client.js → credencial OAuth padrão (app verificado; pública por design)
src/credentials-dir.js → resolução da pasta de credenciais
scripts/get-token.js → autorização OAuth (rodar uma vez)
credentials/ → segredos locais (config.json e, opcionalmente, client_secret*.json) — fora do git
docs/ → site do projeto (GitHub Pages)O servidor e o script de autorização procuram as credenciais nesta ordem:
Na pasta definida pela variável de ambiente
GOOGLE_FORMS_MCP_DIR, se houver;Em
credentials/dentro do projeto, se a pasta existir (instalação por clone);Em
~/.config/mcp-server-google-forms/(instalação via npm/npx).
Na autorização, um client_secret*.json presente na pasta tem prioridade; sem ele, usa-se a credencial embutida
do app verificado (src/default-client.js).
O que é secreto de verdade é o config.json (guarda o seu refresh token) — ele nunca sai da sua máquina e a pasta
credentials/ do clone está no .gitignore. A credencial embutida (src/default-client.js) é de um cliente OAuth
do tipo Desktop, que o Google trata como não-secreta (modelo rclone/gcloud): a segurança do fluxo vem do
consentimento do usuário no navegador, não do sigilo desse valor.
Documentação
Página do projeto — apresentação, política de privacidade e termos de uso.
Página do app no domínio do autor — home, privacidade e termos do Forms IA (MCP).
Revisão de código — problemas conhecidos, gravidade, status das correções e histórico de alterações com as razões de cada mudança.
Estudo de MCPs similares — comparação com 7 servidores MCP para Google Forms do GitHub, melhorias adotadas e anti-padrões a evitar.
Versão em HTML — o mesmo relatório em formato amigável para não-programadores (abra no navegador).
Citação
Este software tem DOI permanente (arquivado no Zenodo a cada release; metadados em CITATION.cff):
Alvarenga da Silva, H. (2026). mcp-server-google-forms: servidor MCP para Google Forms. Zenodo. https://doi.org/10.5281/zenodo.21296975
Licença
Available Tools
15 toolsadd_questionAdicionar perguntaA
Acrescenta uma pergunta a um formulário (no final, ou na posição indicada por 'index'). Tipos: texto curto/longo, escolha (única, múltipla, lista), escala linear, data, hora e avaliação. Para valer pontos ('points'), o formulário precisa estar em modo quiz — use set_quiz antes.
Inputs: type (required), title (required), formId (required), index, +13 more.
add_sectionAdicionar seçãoA
Insere uma quebra de seção (nova página) no formulário: quem responde avança de seção com o botão 'Próxima'. As posições contam todos os itens — confira com get_form.
Inputs: title (required), formId (required), index, description.
add_text_itemAdicionar bloco de textoA
Insere um bloco de texto estático (título + texto explicativo) entre as perguntas — sem campo de resposta. As posições contam todos os itens — confira com get_form.
Inputs: title (required), formId (required), index, description.
auth_statusDiagnóstico das credenciaisA
Verifica a configuração de acesso ao Google sem alterar nada: se o arquivo de credenciais existe, se está completo e se o Google aceita o refresh token. Use quando alguma ferramenta falhar por autenticação.
Inputs: no named parameters.
build_formCriar formulário completoA
Cria um formulário inteiro numa única operação: título, descrição, modo quiz e todas as perguntas na ordem dada. Prefira esta ferramenta a encadear create_form + várias add_question. Por padrão o Google cria o formulário JÁ PUBLICADO; use unpublished=true para criá-lo como rascunho.
Inputs: title (required), questions (required), isQuiz, description, +2 more.
create_formCriar formulárioA
Cria um novo Google Form vazio e retorna o ID, o link de edição e o link de respostas. Por padrão o Google cria o formulário JÁ PUBLICADO; use unpublished=true para criá-lo como rascunho. A resposta informa o estado real de publicação.
Inputs: title (required), unpublished, documentTitle.
delete_questionApagar perguntaA
Remove a pergunta na posição indicada. As posições contam TODOS os itens (0 = primeiro) — confira antes com get_form. Recusa apagar itens que não sejam perguntas.
Inputs: index (required), formId (required).
get_formVer formulárioA
Mostra a estrutura de um formulário: dados gerais e a lista de itens com as posições (use-as em add_question, delete_question e move_question). Com raw=true, inclui também o JSON completo da API.
Inputs: formId (required), raw.
list_responsesLer respostasA
Lista as respostas de um formulário, já com o enunciado de cada pergunta no lugar do código interno. Vem em páginas (padrão: 50 por vez); se houver mais, a saída traz o pageToken da página seguinte.
Inputs: formId (required), pageSize, pageToken.
move_questionReordenar perguntaA
Move um item de uma posição para outra. As posições contam TODOS os itens (0 = primeiro) — confira antes com get_form.
Inputs: to (required), from (required), formId (required).
set_publishPublicar formulárioA
Publica ou despublica um formulário. Formulários criados via API nascem despublicados e não aceitam respostas até serem publicados.
Inputs: formId (required), published (required).
set_quizModo quizA
Liga ou desliga o modo quiz (com notas) de um formulário.
Inputs: formId (required), isQuiz (required).
update_form_infoEditar título/descrição do formulárioA
Altera o título e/ou a descrição de um formulário existente (o que aparece no topo para quem responde). O nome do arquivo no Drive (documentTitle) não pode ser alterado pela API depois da criação.
Inputs: formId (required), title, description.
update_questionEditar perguntaA
Altera uma pergunta existente na posição indicada: enunciado, obrigatoriedade, alternativas, pontos e gabarito — sem apagar e recriar, preservando o vínculo com respostas já recebidas. Confira a posição com get_form.
Inputs: index (required), formId (required), title, points, +3 more.
verify_answer_keysConferir gabaritoA
Confere o gabarito de um quiz comparando com o esperado: para cada posição, verifica a(s) resposta(s) correta(s) e, se informados, os pontos. Útil para auditar um quiz recém-montado antes de divulgar.
Inputs: formId (required), expected (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 15 tools
Each tool targets a distinct resource/action: questions (add/update/delete/move), form metadata (create/get/update info, build), settings (publish, quiz), responses (list), and auth (status). No two tools serve the same purpose, and descriptions clarify any minor overlaps.
Almost all tools follow a clear verb_noun pattern (e.g., create_form, list_responses, delete_question). The only exception is auth_status, which is a noun phrase, but its purpose is unambiguous and the overall convention is consistent.
15 tools is within the well-scoped range for a Google Forms server, covering the full lifecycle (create, read, update, delete questions, manage form settings, list responses). build_form is a convenience wrapper but earns its place.
The tool set covers core CRUD operations, quiz configuration, and response retrieval. Minor gaps include no direct way to delete a form or list all forms, but these are often handled outside the Forms API and are not critical for typical workflows.
Maintenance
Related MCP Connectors
Google Forms MCP: create forms and graded quizzes in your Google Drive, then summarize responses.
1Meta Ads and Google Ads MCP server: 250+ tools for Claude, ChatGPT, Cursor and Codex.
Google Ads MCP server: 17 tools for reporting, campaigns, keywords, assets. Writes preview first.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for reading, editing, and publishing Google Forms with the official Google Forms API. Enables AI agents to programmatically create, modify, and manage forms and responses.MIT
- AlicenseNot gradedqualityDmaintenanceA self-hosted MCP server providing Claude with authenticated access to Google Calendar, Gmail, Drive, Docs, Sheets, and Slides via 43 tools and secure OAuth2.1,807 npmMIT
- FlicenseNot gradedqualityBmaintenanceMCP server that integrates with multiple Google services, providing Claude with over 50 tools for managing tasks, contacts, calendar, Gmail, documents, spreadsheets, presentations, chat, and meetings.-
- AlicenseAqualityBmaintenanceAn MCP server for the Google Forms API that enables creating and editing forms, publishing them, reading responses, and setting up push notifications from AI clients using natural language.19809 npmMIT