关于 Google Forms MCP
Google Forms MCP 是供 AI 应用创建和管理 Google Forms、查看答复及配置提交通知的 MCP 服务。表单默认未发布;服务可读取答复,但不能提交或编辑答复。
主要功能
- 01查看表单结构和答复
- 02创建表单并管理问题
- 03发布表单或控制答复收集
- 04配置 Pub/Sub 监视
- 05读取答复但不修改
适用场景
- 01检查表单问题和答复设置
- 02总结问卷中的自由文本答复
- 03添加必填评分问题
- 04为新提交设置通知
MCP 相关
通过工具向 MCP 客户端开放 Google Forms API 能力,涵盖表单、问题、答复、发布和 Pub/Sub 监视。可通过对话启动 OAuth 授权。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y mcp-google-formsGOOGLE_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+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
19收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
Google Forms MCP
英语 | 俄语
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 账号。安装时无需凭据——服务会在对话期间连接。
- 将服务添加到你的 AI 应用。
- 说“连接 Google Forms”:助手会引导你创建 OAuth 客户端并批准访问权限,无需编辑配置文件。
- 提出上面的只读问题。
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
Claude Code
claude mcp add \
--transport stdio --scope user google-forms \
-- npx -y mcp-google-forms@latest
claude mcp list
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。
Cursor
在 macOS/Linux 上将以下内容添加到 ~/.cursor/mcp.json,或在 Windows 上添加到 %USERPROFILE%\.cursor\mcp.json:
{
"mcpServers": {
"google-forms": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-google-forms@latest"]
}
}
}
VS Code
运行 MCP: Open User Configuration 并添加:
{
"servers": {
"google-forms": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-google-forms@latest"]
}
}
}
使用 MCP: List Servers 检查。
你可以让它做什么
查看问卷及其答案
- 显示此表单的问题、回复设置和填写者链接。
- 自周一以来收到了多少条答复?总结自由文本反馈。
- 按 ID 显示一条答复。
创建和改进表单
- 创建一个 RSVP 表单,包含姓名、餐食偏好和到达日期。
- 添加必填的评分、下拉菜单、日期、时间、选项或文本问题。
- 重新排序问题,或更新标题、说明、测验模式或电子邮件收集设置。
发布并连接通知
- 发布准备好的表单并显示填写者 URL。
- 停止接受新答复,但不删除表单。
- 创建、续订或移除用于接收新提交通知的 Cloud Pub/Sub 监听。
表单如何变化
create_form会创建一个表单,默认处于未发布状态。- 问题是条目,根据其在表单中的位置标识。
- 发布后,填写者即可访问表单;关闭答复收集功能后,表单仍处于已发布状态,但会停止接收新提交。
- 答复是单独的只读记录。API 无法提交、编辑或删除填写者的答复。
无法通过 Forms API 创建文件上传问题,但可以读取现有的文件上传条目。在 Google 发布模型推出前创建的旧版表单可能不支持发布设置。
可以执行的操作
| 操作 | 发生的情况 | 确认边界 |
|---|---|---|
| 读取表单及其回复 | 读取表单结构和提交内容 | 不会更改 |
| 创建表单 | 添加一个未发布的表单 | 更改 Google Forms |
| 添加或移动问题 | 更改表单项 | 更改表单 |
| 更新表单信息、设置或某个表单项 | 更改标题、设置或选定的问题 | 更改表单 |
| 发布、取消发布、开放或关闭回复 | 更改可使用表单的人员 | 更改表单的公开状态 |
| 删除表单项 | 移除选定的问题 | 具有破坏性 |
| 管理 Pub/Sub 监控 | 创建、续订或删除通知传递 | 可能具有破坏性 |
| 原始 API 请求 | 无需专用工具即可调用 API 方法 | 可能具有破坏性 |
AI 客户端控制确认提示。服务会标记读取、写入和具有破坏性的工具,让客户端能够区分检查操作与实际更改。
获取访问权限
Google Forms 需要 OAuth 2.0;仅有 API 密钥并不足够。有两种接入方式,第一种无需配置文件。
从聊天中连接(推荐)
只需说“连接 Google Forms”,助手就会带你完成整个流程:
setup_instructions会打印检查清单:创建或选择 Google Cloud 项目、启用 Google Forms API、配置授权同意屏幕,并创建 Desktop app OAuth 客户端。- 下载该客户端的 JSON(“Download JSON”),并将其路径提供给助手——
set_client会以仅所有者可访问的权限保存该文件。密钥绝不会经过对话。 start_login会返回 Google 授权链接。在此设备上打开链接并批准;验证码会返回到127.0.0.1上的一次性监听器(PKCE),不会经过聊天。finish_login会交换验证码,并将令牌保存到~/.config/mcp-google-forms/credentials.json(模式为 0600)。
每次调用时都会重新读取令牌,因此连接会立即生效——无需重启 AI 应用。auth_status 会显示当前连接状态,logout 会撤销并删除令牌。
环境变量(CI、无人值守安装)
-
创建或选择 Google Cloud 项目,并启用 Google Forms API。
-
配置 OAuth 授权同意屏幕,并创建 Desktop app OAuth 客户端。
-
授权拥有表单或有权编辑表单的 Google 账号。启用 Use your own OAuth credentials 后,可通过 OAuth 2.0 Playground 获取刷新令牌。
-
请求以下两个范围:
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 应用支持定时任务,也可以定期检查回复。
技术文档
- MCP 功能目录 — 每种工具对应的任务说明页面。
- 所有工具及输入
- 开发文档
- 发布文档
- Google Forms API 参考
支持
发现 Bug 或有使用场景需求?提交问题或在 Telegram 上留言。
你已读到最后!
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。