Skip to main content
Glama

mcp-server-google-forms

npm MCP Registry DOI

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-forms

Quer o passo a passo detalhado, escrito para quem não programa? Siga o guia abaixo. 👇


Guia completo para quem não programa

Pré-requisitos

  1. Node.js 18 ou mais novo. É o programa que faz o servidor rodar; os comandos npm e npx vêm junto com ele. Para conferir, abra o terminal (veja abaixo) e digite node --version. Se aparecer v18… ou maior, está pronto. Se não, baixe a versão LTS em nodejs.org e instale (é só avançar/próximo).

  2. O Claude Code instalado — é por ele que você conversa com o servidor (code.claude.com/docs).

  3. 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 X e aperte Enter.

Passo 1 — Autorize com a sua conta Google

  1. Rode o comando de autorização:

    npx -p mcp-server-google-forms mcp-server-google-forms-token

    O navegador abre sozinho na tela de login do Google.

  2. 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-forms

Passo 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_formadd_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 o set_publish cobre 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).

  1. Clone e instale:

    git clone https://github.com/claude-book/mcp-server-google-forms.git
    cd mcp-server-google-forms
    npm install
  2. Autorize: rode npm run token e aprove no navegador.

  3. 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

create_form

Cria um formulário e devolve o ID e os links. Por padrão o Google o cria já publicado; use unpublished=true para rascunho. A resposta informa o estado real.

build_form

Cria o formulário inteiro numa única operação: título, descrição, modo quiz e todas as perguntas.

set_publish

Publica ou despublica o formulário (libera ou bloqueia respostas).

get_form

Mostra a lista de itens com as posições e a estrutura completa.

add_question

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).

update_form_info

Altera o título e/ou a descrição de um formulário existente.

update_question

Edita uma pergunta existente (enunciado, obrigatoriedade, alternativas, pontos, gabarito) sem apagar e recriar — preserva o vínculo com respostas já recebidas.

set_quiz

Liga ou desliga o modo quiz (com notas). Obrigatório antes de usar points.

add_section

Insere uma quebra de seção (nova página) na posição indicada.

add_text_item

Insere um bloco de texto explicativo (sem campo de resposta) na posição indicada.

delete_question

Remove a pergunta na posição indicada (recusa apagar o que não for pergunta).

move_question

Move um item de uma posição para outra.

list_responses

Lista as respostas, incluindo perguntas de upload de arquivo. Em páginas (padrão 50), com pageSize/pageToken.

verify_answer_keys

Confere o gabarito de um quiz contra uma lista esperada (auditoria pós-criação).

auth_status

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.

  1. 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).

  2. Baixe o JSON na hora da criação — o Google não permite baixá-lo depois (se perder, crie outro cliente).

  3. Coloque o client_secret*.json em ~/.config/mcp-server-google-forms/ (Windows: C:\Users\SeuNome\.config\mcp-server-google-forms\) — ou em credentials/, na instalação por clone.

  4. 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:

  1. Na pasta definida pela variável de ambiente GOOGLE_FORMS_MCP_DIR, se houver;

  2. Em credentials/ dentro do projeto, se a pasta existir (instalação por clone);

  3. 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

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

MIT

Available Tools

15 tools
add_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesTipo da pergunta
indexNoPosição do novo item (0 = primeiro; as posições contam todos os itens). Se omitido, entra no final.
titleYesEnunciado da pergunta
formIdYesID do formulário
pointsNoPontos da pergunta no quiz (exige modo quiz ativo; ex.: 1)
optionsNoAlternativas (para multiple_choice/checkboxes/dropdown)
requiredNoSe a resposta é obrigatória
scaleMaxNo(linear_scale) Fim da escala: 2 a 10 (padrão 5)
scaleMinNo(linear_scale) Início da escala: 0 ou 1 (padrão 1)
isDurationNo(time) true = duração (horas e minutos); false = hora do dia (padrão)
ratingIconNo(rating) Ícone da avaliação (padrão star)
includeTimeNo(date) Pedir também a hora (padrão: não)
includeYearNo(date) Pedir o ano (padrão: sim)
ratingLevelsNo(rating) Quantidade de níveis: 3 a 10 (padrão 5)
scaleMaxLabelNo(linear_scale) Rótulo do fim, ex.: 'Concordo totalmente'
scaleMinLabelNo(linear_scale) Rótulo do início, ex.: 'Discordo totalmente'
correctAnswersNoResposta(s) correta(s) para quiz, batendo com as 'options'

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of disclosure. It discloses the quiz mode requirement for points and the positional behavior via 'index'. However, it does not mention side effects like index shifting of existing questions, permissions, or error behavior, which are relevant for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two sentences that front-load the main action and then provide necessary context (types and quiz mode caveat). Every sentence serves a purpose with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 17 parameters and no output schema, the description is relatively short but leverages rich per-parameter schema descriptions. It provides critical context about quiz mode and positioning, which complements the schema. It could mention return values or prerequisites like form existence, but the schema covers parameter details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents parameters. The description adds the quiz mode prerequisite for points, but this is already noted in the schema ('exige modo quiz ativo'). Thus, the description adds minimal semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'Acrescenta uma pergunta a um formulário' (adds a question to a form). It further clarifies positioning ('no final, ou na posição indicada por index') and enumerates question types, effectively distinguishing this from siblings like update_question, delete_question, and move_question.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: adding a question at the end or at a specific index, and it gives a specific prerequisite ('use set_quiz antes') for using points. However, it does not explicitly state when not to use this tool or mention alternative tools by name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoPosição do novo item (0 = primeiro; contam todos os itens). Se omitido, entra no final.
titleYesTítulo da seção
formIdYesID do formulário
descriptionNoTexto exibido abaixo do título da seção (opcional)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose useful behavioral context: the section break creates a new page and respondents advance via a 'Next' button, and positions count all items. However, it does not mention return values, error handling, or mutation specifics beyond 'insere', leaving some gaps for a write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and every clause adds value. It includes a behavioral note and a practical tip, with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and no annotations, the description covers the main functionality, the indexing rule, and a verification tip. It does not describe the return value or error scenarios, but the simplicity of an insert operation and the presence of get_form as a check make this reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description repeats the index semantics ('As posições contam todos os itens') but this is already in the schema property description. It does not add new parameter meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Insere uma quebra de seção (nova página) no formulário' (inserts a section break/new page). It distinguishes from sibling tools like add_question and add_text_item by specifying 'section break' (quebra de seção) and explains respondent behavior with the 'Próxima' button.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use the tool (to add a section break/page). It also provides a workflow hint: 'confira com get_form' (check with get_form) to verify positions. However, it does not explicitly state when not to use it or name alternative tools, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoPosição do novo item (0 = primeiro; contam todos os itens). Se omitido, entra no final.
titleYesTítulo do bloco
formIdYesID do formulário
descriptionNoTexto do bloco (opcional)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It discloses the insert is static, has no answer field, and that indices count all items — valuable context. However, it doesn't mention side effects, permission requirements, or the response format for this mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the verb, and contains zero filler. Every sentence earns its place by adding the core purpose and a key behavioral nuance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple insertion tool with a well-documented schema, the description provides adequate operational context, including a verification hint. It would benefit from noting return value or error behavior, but is largely complete given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description's note about positions counting all items is already present in the schema's index description, so it adds no additional semantic value beyond what is structured.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Insere' (inserts) and clearly identifies the resource as a 'bloco de texto estático' (static text block), distinguishing it from siblings via 'sem campo de resposta' (without an answer field). It clearly states what the tool does and how it differs from question/section tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains that the block goes 'entre as perguntas' (between questions) and that positions count all items, advising to check with get_form. This gives clear placement and verification context, though it doesn't explicitly name alternative tools or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It transparently states 'sem alterar nada' (without changing anything), marking it as read-only, and enumerates the checks performed. However, it does not disclose potential network calls, rate limits, or the exact output format, leaving some ambiguity about what the agent will receive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The first sentence defines scope and non-destructive behavior; the second gives a concrete use case, making it efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple diagnostic tool with no parameters and no output schema, the description explains purpose, non-mutation, and when to use it. The lack of return format details is a minor gap, but the stated checks and usage guidance are sufficient for an agent to decide when and how to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the input schema is complete and the description adds context about the checks performed (file existence, completeness, token acceptance), going beyond the empty schema. Per the rubric, 0 params warrants a baseline of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Verifica a configuração de acesso ao Google' (checks Google access configuration) and lists three specific checks: credential file existence, completeness, and refresh token acceptance. It clearly distinguishes itself from sibling tools, which all handle form/question operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit usage trigger: 'Use quando alguma ferramenta falhar por autenticação' (use when any tool fails due to authentication). It lacks explicit alternatives or exclusions, but the stated scenario is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTítulo do formulário, visível para quem responde
isQuizNotrue para criar já em modo quiz (obrigatório se alguma pergunta tiver 'points')
questionsYesPerguntas, na ordem em que devem aparecer no formulário
descriptionNoDescrição exibida no topo do formulário (opcional)
unpublishedNotrue para criar como rascunho (ninguém responde até set_publish). Padrão: publicado.
documentTitleNoNome do arquivo no Drive (opcional)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and it discloses a critical behavioral trait: by default, the form is already published, and users must set unpublished=true to create a draft. This is a significant side effect beyond parameter definitions. It does not cover permissions, rate limits, or error cases, but the key publish-state behavior is well highlighted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences: the first states purpose, the second gives a direct usage recommendation, and the third highlights a critical default behavior. Every sentence earns its place with no redundancy or filler, front-loading the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, nested questions) and lack of output schema, the description covers the main operational aspects: what it creates, order preservation, and publication default. It does not mention the response format or failure modes, but the schema covers parameter details, making this reasonably complete for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing solid parameter docs. The description adds value by clarifying the 'unpublished' parameter's impact (default published vs draft) and stressing that questions appear 'in the given order', which maps to the questions array. This meaningfully enhances the schema's baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates an entire form in one operation, listing the included components (title, description, quiz mode, all questions in order). It explicitly distinguishes from siblings by advising to prefer this over chaining create_form and multiple add_question calls, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage guidance by recommending this tool over chaining create_form + add_question, which directly addresses when to use it. It also mentions the unpublished parameter for draft creation, offering context on how to control publication. However, it does not mention when not to use it (e.g., for incremental updates or large forms beyond limits), so it misses some exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTítulo do formulário, visível para quem responde
unpublishedNotrue para criar como rascunho (ninguém responde até set_publish). Padrão: publicado.
documentTitleNoNome do arquivo no Drive (opcional)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It explains the default publication behavior, the draft option, and the fact that the response reports the actual publication state. This adds valuable insight beyond the basic creation action, though it does not cover permissions or error scenarios.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences with no filler. It front-loads the primary action and efficiently adds key behavioral details, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately explains the return values (ID, edit link, response link) and the publication state. The tool is simple (3 params, no nested objects), and the description covers the essential aspects without leaving critical gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers all three parameters with clear descriptions (100% coverage). The description adds only slight value by restating the default publication behavior for the unpublished parameter, but it is largely redundant with the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the core action: 'Cria um novo Google Form vazio' (creates a new empty Google Form) and specifies the returned resources (ID, edit link, response link). This distinguishes it from sibling tools that add or modify content within a form, such as add_question or update_form_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives implicit usage context by explaining the unpublished parameter and the default published state, but it does not explicitly compare with alternatives like build_form or say when NOT to use this tool. It lacks direct references to sibling tools or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesPosição do item (começa em 0; veja as posições com get_form)
formIdYesID do formulário

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses key behavior: positions count all items (not just questions), starting at 0, and that the tool refuses to delete non-question items. This goes beyond the basic action but doesn't mention irreversibility or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the main action, and efficient in conveying constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers core action, indexing caveat, and safety restriction, which is adequate for a simple two-parameter deletion tool. It lacks explicit error behavior for invalid indices but is otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both formId and index; the tool description's indexing note is partially redundant with the schema's index description. It adds no new parameter-specific details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool removes a question at a specified position, using a specific verb ('Remover') and resource ('pergunta'). It also differentiates from siblings by specifying that only questions are affected, not other form items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It advises checking with get_form before deletion to confirm positions, and explicitly states the tool refuses to delete non-question items, giving a clear when-not. However, it doesn't name specific alternative tools for deleting other item types.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNotrue para incluir também o JSON completo da API (saída bem maior; só quando o resumo não bastar)
formIdYesID do formulário

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden. It discloses a key behavioral trait: raw=true includes the complete API JSON and produces much larger output ('saída bem maior; só quando o resumo não bastar'), adding context beyond the schema. It also clarifies the output structure (general data + item list), which is useful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the primary purpose, and includes necessary details about raw and sibling-tool usage without any wasted words. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with 2 parameters and no output schema, the description covers the essential parts: what it returns (structure, items, positions) and the raw option. It also connects to sibling tools. It could explicitly state it's a read-only operation, but the verb 'Mostra' implies it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds some context linking the output positions to sibling tools, but it doesn't add significant meaning about the parameters themselves beyond what the schema already states. The raw parameter is already well described in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Mostra a estrutura de um formulário: dados gerais e a lista de itens com as posições' (shows the form structure: general data and item list with positions). It uses a specific verb ('Mostra' / shows) and a resource ('formulário'), and differentiates from siblings by mentioning its output is used in add_question, delete_question, and move_question.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context by saying the positions are to be used in sibling mutation tools (add_question, delete_question, move_question), implying when to use this tool. It also explains the optional raw=true for full JSON, but it doesn't explicitly exclude alternative tools like list_responses for response data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
formIdYesID do formulário
pageSizeNoQuantas respostas trazer por página (padrão 50)
pageTokenNoToken da página seguinte, devolvido pela chamada anterior

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses pagination behavior (default 50, pageToken forwarding) and the response format transformation. However, it doesn't explicitly state the operation is non-destructive or mention auth/error behavior, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the core purpose and add pagination details without wordiness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description adequately explains pagination and the nature of the returned data (with question text). It falls short of describing the full response structure or error handling, but is sufficient for a read-oriented tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description reiterates the default page size (already in schema) and pageToken usage. It adds no new parameter-level information beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists form responses and specifies a key transformation (question text replaces internal code). This distinguishes it from sibling tools, which focus on form editing/creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides contextual usage: lists responses with pagination. Doesn't explicitly name alternatives or when not to use, but the read-only nature contrasts with sibling editing tools. Implied usage is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesNova posição desejada
fromYesPosição atual do item
formIdYesID do formulário

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It adds important details not in the schema: positions count ALL items and are 0-based. However, it does not explain side effects like shifting of other items or the nature of the response, leaving some behavioral aspects implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with a parenthetical caveat, front-loading the action and giving essential positional context. Every word earns its place, with no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter reorder tool with no output schema, the description covers the core action, position semantics, and a practical prerequisite. It could mention impact on other items or return behavior, but given the tool's simplicity and the guidance to use get_form, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% parameter descriptions, so the baseline is 3. The description adds meaning by clarifying that 'from' and 'to' refer to positions counting all items from 0, which is not fully specified in the schema descriptions. This extra context enhances parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool moves an item from one position to another, with a specific verb and resource. It distinguishes from siblings like delete_question and update_question by focusing on reordering. The title 'Reordenar pergunta' reinforces this purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear prerequisite by advising to check with get_form before moving, which is valuable context for using the tool correctly. It does not explicitly exclude alternatives or mention when not to use, but since no other sibling tool does reordering, the usage context is sufficiently implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
formIdYesID do formulário
publishedYestrue para publicar (visível e aceitando respostas), false para despublicar

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility. It discloses the behavior (publish/unpublish) and adds that unpublished forms do not accept responses, explaining the practical consequence. It does not cover potential side effects or permissions, but for a simple toggle this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states the core functionality, the second provides essential context about initial state. No unnecessary words or repetition, perfectly front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two parameters and a clear toggle behavior, the description is complete. It explains the starting state, the effect on response acceptance, and the expected use case. There is no output schema, and none is needed for this state-change operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers both parameters with clear descriptions: formId is the form ID, published explains true makes it visible and accepting responses, false unpublishes. The description adds the context that forms start unpublished, which reinforces the meaning of the 'published' parameter but doesn't introduce new syntax or format details beyond the schema's high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the primary action: 'Publica ou despublica um formulário' (publishes or unpublishes a form), using a specific verb and resource. It distinguishes itself from sibling tools that deal with questions, sections, or responses by explicitly mentioning the publish/unpublish toggle.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides useful context: forms created via API start unpublished and do not accept responses until published, implying this tool should be used after form creation to enable responses. It gives a clear 'when to use' signal, though it does not explicitly exclude alternatives or mention when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_quizModo quizA

Liga ou desliga o modo quiz (com notas) de um formulário.

ParametersJSON Schema
NameRequiredDescriptionDefault
formIdYesID do formulário
isQuizYestrue para virar quiz, false para voltar a formulário comum

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does mention the tool can turn quiz mode on or off (implying reversibility) and that quiz mode includes grades ('com notas'), but it omits permission requirements, effects on existing responses or grading, and any validation behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that states the action and key qualifier ('with grades'). Every word contributes to understanding, with no filler or redundant repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple boolean setter with two fully described parameters, the description plus schema is largely complete. A slight deduction is made because there is no output schema or mention of the return value, and no explicit usage guidance relative to sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: both formId and isQuiz have descriptive schema text. The description does not add new parameter details, but the schema already fully explains the inputs, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action: 'Liga ou desliga o modo quiz (com notas) de um formulário' (turns on/off quiz mode with grades for a form). It names the resource (form) and the mode being toggled, distinguishing it from sibling tools like set_publish or update_form_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used when you need to enable or disable quiz mode on a form, but it does not explicitly state when to use it over alternatives or provide exclusion criteria. Sibling tool names (e.g., set_publish) suggest the distinction, but the description itself offers no direct guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoNovo título
formIdYesID do formulário
descriptionNoNova descrição

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses a key behavioral constraint: the Drive documentTitle cannot be changed after creation, which is not obvious from the schema. It also clarifies that the 'title' refers to the respondent-facing header, not the file name. However, it doesn't mention side effects, permissions, or error behavior, so it's not fully transparent, but it adds meaningful context beyond the structured data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tightly written in two sentences. The first sentence states the action and scope; the second adds a relevant constraint. No filler or repetition of the schema. It is front-loaded with the primary purpose and earn every word.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple metadata update tool with no output schema, the description is largely complete. It covers the main functionality and a critical limitation (documentTitle immutability). It does not mention prerequisites like form existence or permissions, but given the low complexity and the schema providing required fields, it is nearly complete. A slightly higher score would require more operational detail, but this is sufficient for straightforward use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters with basic descriptions ('Novo título', 'Nova descrição'), so the baseline is 3. The description adds value by clarifying that 'title' is distinct from the Drive file name (documentTitle), preventing a common confusion. This semantic clarification about the title parameter justifies a score above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to change the title and/or description of an existing form. It specifies the resource (form) and the exact fields affected, and distinguishes it from siblings like update_question or create_form by focusing on the form's top-level metadata. The parenthetical about what appears at the top for respondents removes ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given about when to use this tool versus alternatives. While it's implicitly clear that this is for editing title/description, there is no mention of prerequisites (e.g., needing to retrieve the form first), when partial updates are allowed, or when to prefer other tools like update_question or set_publish. The description lacks any 'when to use' or 'when not to use' context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesPosição do item (começa em 0; veja as posições com get_form)
titleNoNovo enunciado
formIdYesID do formulário
pointsNoNova pontuação (exige modo quiz)
optionsNoNovas alternativas — substituem TODAS as atuais (só para perguntas de escolha)
requiredNotrue = resposta obrigatória; false = opcional
correctAnswersNoNovo gabarito, batendo com as alternativas (exige modo quiz)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It discloses a key side effect (not deleting/recreating the question, thus preserving responses) and points to get_form for position lookup. However, it does not state whether only provided fields are updated, what failure modes exist, or what permissions are required, leaving gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact: one main sentence listing scope and side effects, plus a short actionable pointer to get_form. Every phrase adds value, including the 'sem apagar e recriar' preservation guarantee.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a fully described 7-parameter schema and the get_form reference, the description gives an agent enough to correctly select and invoke the tool. The main gap is the lack of partial-update semantics or return/error behavior, but these are partially inferable from the schema and less critical given no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptive comments, so the baseline is 3. The description maps high-level concepts (enunciado, obrigatoriedade, alternativas, pontos, gabarito) to fields but adds no semantic detail beyond the schema. The index guidance duplicates the schema's existing pointer to get_form.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with 'Altera uma pergunta existente na posição indicada', a specific verb+object+scope. It enumerates updatable attributes (enunciado, obrigatoriedade, alternativas, pontos, gabarito) and differentiates from destructive alternatives by noting it preserves the link to received responses. Sibling tools like delete_question, move_question, and add_question make the purpose clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells the agent to verify the target position with get_form ('Confira a posição com get_form') and gives a strong reason to use this tool instead of delete+recreate: it preserves the link to already received answers. It doesn't explicitly contrast with alternatives like move_question or update_form_info, but the guidance is practical and clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
formIdYesID do formulário (precisa estar em modo quiz)
expectedYesGabarito esperado, item a item

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It conveys non-mutating verification behavior through verbs like 'Confere' and 'auditar', implying a read-only check. However, it does not disclose the return format, potential error conditions, or explicitly guarantee that the form is not modified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exactly two sentences, front-loaded with the verb and resource. The first sentence explains what it does, the second provides usage context. Every word earns its place without filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple verification tool with 2 parameters, the description covers purpose and usage context well. It lacks return-value specification and explicit non-mutation disclosure, but given the simplicity and full schema coverage, it is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (both formId and expected have descriptions), so baseline is 3. The tool description adds context about comparing against expected answers and points, but it doesn't significantly enhance parameter understanding beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Confere' (checks) with the resource 'gabarito de um quiz', clearly stating the operation. It further explains it verifies correct answers and points per position, distinguishing it from sibling CRUD tools by emphasizing audit/verification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use the tool: 'Útil para auditar um quiz recém-montado antes de divulgar' (useful for auditing a recently assembled quiz before publishing). While it doesn't explicitly exclude alternatives or mention when not to use, the context is clear and specific.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 15 tool updatesv0.6.0
    • First observedadd_question
    • First observedadd_section
    • First observedadd_text_item
    • First observedauth_status
    • First observedbuild_form
    • First observedcreate_form
    • First observeddelete_question
    • First observedget_form
    • First observedlist_responses
    • First observedmove_question
    • First observedset_publish
    • First observedset_quiz
    • First observedupdate_form_info
    • First observedupdate_question
    • First observedverify_answer_keys

TDQS

A4.1/5.0
Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP 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
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP 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.
    -
  • A
    license
    A
    quality
    A
    maintenance
    An 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.
    13
    167
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/claude-book/mcp-server-google-forms'

If you have feedback or need assistance with the MCP directory API, please join our Discord server