mcpField
G
Google Forms MCP

Google Forms MCP

本地服务
github.com生产力04 周前更新

关于 Google Forms MCP

Google Forms MCP 是供 AI 应用创建和管理 Google Forms、查看答复及配置提交通知的 MCP 服务。表单默认未发布;服务可读取答复,但不能提交或编辑答复。

主要功能

  1. 01查看表单结构和答复
  2. 02创建表单并管理问题
  3. 03发布表单或控制答复收集
  4. 04配置 Pub/Sub 监视
  5. 05读取答复但不修改

适用场景

  1. 01检查表单问题和答复设置
  2. 02总结问卷中的自由文本答复
  3. 03添加必填评分问题
  4. 04为新提交设置通知

MCP 相关

通过工具向 MCP 客户端开放 Google Forms API 能力,涵盖表单、问题、答复、发布和 Pub/Sub 监视。可通过对话启动 OAuth 授权。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"a1-x-tech-mcp-google-forms": {
"command": "npx",
"args": [
"-y",
"mcp-google-forms"
],
"env": {
"GOOGLE_FORMS_CLIENT_ID": "<GOOGLE_FORMS_CLIENT_ID>",
"GOOGLE_FORMS_CLIENT_SECRET": "<GOOGLE_FORMS_CLIENT_SECRET>",
"GOOGLE_FORMS_REFRESH_TOKEN": "<GOOGLE_FORMS_REFRESH_TOKEN>",
"GOOGLE_FORMS_ACCESS_TOKEN": "<GOOGLE_FORMS_ACCESS_TOKEN>",
"GOOGLE_FORMS_OAUTH_PORT": "<GOOGLE_FORMS_OAUTH_PORT>",
"GOOGLE_FORMS_API_BASE": "<GOOGLE_FORMS_API_BASE>",
"GOOGLE_FORMS_TIMEOUT_MS": "<GOOGLE_FORMS_TIMEOUT_MS>",
"GOOGLE_FORMS_MAX_RETRIES": "<GOOGLE_FORMS_MAX_RETRIES>"
}
}
}
}
启动命令npx -y mcp-google-forms
需要配置的环境变量
GOOGLE_FORMS_CLIENT_IDGoogle OAuth2 client id (refresh-token flow).
GOOGLE_FORMS_CLIENT_SECRET密钥Google OAuth2 client secret (refresh-token flow). Treat it as a secret.
GOOGLE_FORMS_REFRESH_TOKEN密钥Google OAuth2 refresh token, exchanged for access tokens automatically. Treat it as a secret.
GOOGLE_FORMS_ACCESS_TOKEN密钥Static OAuth2 access token (~1h lifetime) — alternative to the refresh-token trio, mostly for testing.
GOOGLE_FORMS_OAUTH_PORT密钥Fixed port for the loopback listener of the in-chat login (127.0.0.1 + PKCE). Set it when the client runs over SSH port forwarding; otherwise a free port is picked per login.
GOOGLE_FORMS_API_BASEAPI root override.
GOOGLE_FORMS_TIMEOUT_MSPer-request timeout in milliseconds.
GOOGLE_FORMS_MAX_RETRIESRetries on transient errors (429 always; 5xx/network for reads).

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-google-forms1.2.0

工具

19

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

A1 Google Forms MCP

英语 | 俄语

npm Glama CI License: MIT

A1 Google Forms MCP 让 AI 应用能用自然语言创建和管理 Google Forms。创建问卷、选择问题、准备就绪后发布、读取回答,并通过通知接收新提交。

它使用 Google Forms API 和你的 Google 账号进行交互。它会区分草稿表单和已发布表单,并明确说明 Forms API 的限制,而不是暗示所有表单操作都可实现。

  • 19 个工具。 查看表单结构和回答、创建和编辑表单及问题、管理发布状态并配置 Pub/Sub 监听。
  • 在对话中完成连接。 说“连接 Google Forms”:服务会引导你配置 OAuth 客户端,通过 PKCE 在 127.0.0.1 接收 Google 的重定向,并自行保管令牌——无需配置文件,也无需重启。
  • 按需发布。 通过 API 创建的表单初始为未发布状态,因此在发布之前无法收集回答。
  • 回答保持原样。 API 可以读取回答,但无法创建或编辑回答;服务没有提交答案的工具。
  • 仅需最少的 Google 权限范围。 使用 forms.body 和 forms.responses.readonly,不需要广泛的 Drive 访问权限。

从只读问题开始:

显示客户反馈表单昨天收到的回答,并总结自由文本回答。

连接服务 · 探索使用场景 · 查看技术文档


一分钟了解它的工作方式

你: 显示客户反馈表单的问题和回答设置。

助手: 显示表单、其中的项目、是否已发布以及是否接受回答。不会进行任何更改。

你: 在第一个问题之后,准备添加一个名为“How was your experience?”的必填 1–5 评分问题。

助手: 显示目标表单、位置和拟添加的问题,然后在添加之前请求确认。

你: 确认。

助手: 将问题添加到表单中。除非你另行提出要求,否则不会发布或关闭表单。

目录

快速开始

你需要 Node.js 20+ 和一个 Google 账号。安装时无需凭据——服务会在对话期间连接。

  1. 将服务添加到你的 AI 应用。
  2. 说“连接 Google Forms”:助手会引导你创建 OAuth 客户端并批准访问权限,无需编辑配置文件。
  3. 提出上面的只读问题。
Codex

在应用中: 打开 Settings → MCP servers,选择 Add server,选择 STDIO,输入命令 npx -y mcp-google-forms@latest 和环境变量 GOOGLE_FORMS_CLIENT_ID、GOOGLE_FORMS_CLIENT_SECRET、GOOGLE_FORMS_REFRESH_TOKEN,然后选择 Save 和 Restart。

通过命令行:

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

Codex MCP 文档

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

Claude Code MCP 文档

Claude Desktop

目前的官方方式是 Settings → Extensions。要安装自定义桌面扩展,请打开 Advanced settings → Extension Developer → Install Extension…,选择 .mcpb 文件并按照提示操作。

此存储库目前发布的是 npm stdio 包,不包含 .mcpb 捆绑包。对于仍支持本地配置的 Claude Desktop 版本,可使用以下 JSON stdio 配置作为备用方案:

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

在这些版本中,macOS 上将其保存到 ~/Library/Application Support/Claude/claude_desktop_config.json,Windows 上保存到 %APPDATA%\Claude\claude_desktop_config.json。

Claude Desktop MCP 文档

Cursor

在 macOS/Linux 上将以下内容添加到 ~/.cursor/mcp.json,或在 Windows 上添加到 %USERPROFILE%\.cursor\mcp.json:

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

Cursor MCP 文档

VS Code

运行 MCP: Open User Configuration 并添加:

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

使用 MCP: List Servers 检查。

VS Code MCP 文档

你可以让它做什么

查看问卷及其答案
  • 显示此表单的问题、回复设置和填写者链接。
  • 自周一以来收到了多少条答复?总结自由文本反馈。
  • 按 ID 显示一条答复。
创建和改进表单
  • 创建一个 RSVP 表单,包含姓名、餐食偏好和到达日期。
  • 添加必填的评分、下拉菜单、日期、时间、选项或文本问题。
  • 重新排序问题,或更新标题、说明、测验模式或电子邮件收集设置。
发布并连接通知
  • 发布准备好的表单并显示填写者 URL。
  • 停止接受新答复,但不删除表单。
  • 创建、续订或移除用于接收新提交通知的 Cloud Pub/Sub 监听。

表单如何变化

  1. create_form 会创建一个表单,默认处于未发布状态。
  2. 问题是条目,根据其在表单中的位置标识。
  3. 发布后,填写者即可访问表单;关闭答复收集功能后,表单仍处于已发布状态,但会停止接收新提交。
  4. 答复是单独的只读记录。API 无法提交、编辑或删除填写者的答复。

无法通过 Forms API 创建文件上传问题,但可以读取现有的文件上传条目。在 Google 发布模型推出前创建的旧版表单可能不支持发布设置。

可以执行的操作

操作发生的情况确认边界
读取表单及其回复读取表单结构和提交内容不会更改
创建表单添加一个未发布的表单更改 Google Forms
添加或移动问题更改表单项更改表单
更新表单信息、设置或某个表单项更改标题、设置或选定的问题更改表单
发布、取消发布、开放或关闭回复更改可使用表单的人员更改表单的公开状态
删除表单项移除选定的问题具有破坏性
管理 Pub/Sub 监控创建、续订或删除通知传递可能具有破坏性
原始 API 请求无需专用工具即可调用 API 方法可能具有破坏性

AI 客户端控制确认提示。服务会标记读取、写入和具有破坏性的工具,让客户端能够区分检查操作与实际更改。

获取访问权限

Google Forms 需要 OAuth 2.0;仅有 API 密钥并不足够。有两种接入方式,第一种无需配置文件。

从聊天中连接(推荐)

只需说“连接 Google Forms”,助手就会带你完成整个流程:

  1. setup_instructions 会打印检查清单:创建或选择 Google Cloud 项目、启用 Google Forms API、配置授权同意屏幕,并创建 Desktop app OAuth 客户端。
  2. 下载该客户端的 JSON(“Download JSON”),并将其路径提供给助手——set_client 会以仅所有者可访问的权限保存该文件。密钥绝不会经过对话。
  3. start_login 会返回 Google 授权链接。在此设备上打开链接并批准;验证码会返回到 127.0.0.1 上的一次性监听器(PKCE),不会经过聊天。
  4. finish_login 会交换验证码,并将令牌保存到 ~/.config/mcp-google-forms/credentials.json(模式为 0600)。

每次调用时都会重新读取令牌,因此连接会立即生效——无需重启 AI 应用。auth_status 会显示当前连接状态,logout 会撤销并删除令牌。

环境变量(CI、无人值守安装)
  1. 创建或选择 Google Cloud 项目,并启用 Google Forms API。

  2. 配置 OAuth 授权同意屏幕,并创建 Desktop app OAuth 客户端。

  3. 授权拥有表单或有权编辑表单的 Google 账号。启用 Use your own OAuth credentials 后,可通过 OAuth 2.0 Playground 获取刷新令牌。

  4. 请求以下两个范围:

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

测试模式下的 OAuth 刷新令牌可能会在 7 天后过期。若需要长期访问,请发布 OAuth 应用,或在 Workspace 网域中使用 Internal 应用。请将客户端密钥和刷新令牌视为密码妥善保管。

配置

所有变量均为可选项——即使不设置任何变量,服务也会从聊天中连接。

变量必需说明
GOOGLE_FORMS_CLIENT_ID否*OAuth 客户端 ID。
GOOGLE_FORMS_CLIENT_SECRET否*OAuth 客户端密钥。
GOOGLE_FORMS_REFRESH_TOKEN否*OAuth 刷新令牌。
GOOGLE_FORMS_ACCESS_TOKEN否*OAuth 三项配置的短期替代方案。
GOOGLE_FORMS_OAUTH_PORT否聊天内登录使用的固定环回端口;通过 SSH 端口转发时很有用。
GOOGLE_FORMS_API_BASE否Google Forms API 基础 URL 覆盖值。
GOOGLE_FORMS_TIMEOUT_MS否每个请求的超时时间;默认值为 60000 ms。
GOOGLE_FORMS_MAX_RETRIES否临时错误的重试次数;默认值为 3。

* 请提供 OAuth 三项配置,或访问令牌。

数据、限制与后台工作

  • **请求会发送到 Google Forms。**本地服务会刷新 Google OAuth 令牌并调用 Forms API。匿名遥测数据包含安装 ID、软件包版本、AI 客户端和平台版本,以及工具名称——绝不包含 OAuth 令牌、表单数据、工具参数或提示词。设置 ASKADS_TELEMETRY=0 即可选择退出。
  • **Google 设有每分钟配额。**文档中规定的限制为每个项目 975 次读取、450 次 list_responses 调用和 375 次写入。遇到 429 时,服务会采用退避策略;读取操作还会在网络错误和 5xx 错误后重试,而写入操作在发生不确定故障后不会重放。
  • **服务不会在后台轮询。**服务仅在被调用时运行。Pub/Sub 监听器可以通知你自己的基础设施有新回复;如果你的 AI 应用支持定时任务,也可以定期检查回复。

技术文档

支持

发现 Bug 或有使用场景需求?提交问题或在 Telegram 上留言。


两位 Mona 击掌

你已读到最后!

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。