Prerequisites
- A Google account with Google Forms and Drive access
- A Google Workspace connection in AgentRuntime (OAuth via the Google account card on Connections)
- project_contributor access in your workspace
Connect in AgentRuntime
Connect Google
On Connections, use the Google account card and complete OAuth. See Google Workspace setup and Connections.
Enable Forms
On your Google connection, enable the Forms service so the account exposes Forms and Drive API scopes.
Add google-form MCP instance
Go to MCP, click Add instance for google-form. Open Instance config, wire your Google connection, and set the profile active.
What you can build
- NPS follow-up — Schedule →
list_new_responsessince last run → LLM sentiment tag → google-sheets append row → gmail alert for detractors. - Event registration intake — Webhook from Pub/Sub watch →
get_response→create_taskin google-tasks for ops → confirmation via gmail. - Quarterly survey clone — Cron →
copy_formfrom master template →rename_formwith quarter label →share_formwith department leads. - Application triage —
list_responseswith filter → score answers in LLM step → human_task for borderline candidates → update google-sheets tracker.
Tools
Forms
| Tool | Description |
|---|---|
create_form | Create a Google Form with initial title metadata. |
update_form | Apply a Google Forms batchUpdate request to a form. |
get_form | Get a Google Form, including info, items, settings, and revision ID. |
list_forms | List Google Forms in the authenticated user’s Drive. |
copy_form | Copy a Google Form through the Drive API, with optional rename or parent folder. |
rename_form | Rename the Drive file that backs a Google Form. |
delete_form | Permanently delete a Google Form through the Drive API. |
move_form | Move a Google Form to a different Drive folder. |
Responses
| Tool | Description |
|---|---|
list_responses | List submitted responses for a form, with optional filtering and pagination. |
list_new_responses | List form responses submitted after an RFC3339 timestamp. |
get_response | Get a specific submitted response for a form by response ID. |
Permissions
| Tool | Description |
|---|---|
share_form | Share a Google Form by creating a Drive permission. |
list_form_permissions | List Drive permissions on a Google Form. |
revoke_form_permission | Remove a Drive permission from a Google Form by permission ID. |
Watches
| Tool | Description |
|---|---|
create_watch | Create a Pub/Sub watch for form response or schema changes. |
delete_watch | Delete a Pub/Sub watch by watch ID. |
list_watches | List active Pub/Sub watches on a form. |
renew_watch | Renew a Pub/Sub watch before it expires. |
Example
Poll new survey responses since the last workflow run:Troubleshooting
| Issue | Fix |
|---|---|
| Reconnect prompt on Google connection | Re-authorize OAuth; Forms and Drive scopes may have been revoked |
update_form concurrency error | Pass the current revision_id from get_form as write-control fields |
| Watch stopped firing | Pub/Sub watches expire after seven days — schedule renew_watch or recreate with create_watch |
Empty list_new_responses | Confirm since_time is RFC3339 and earlier than submission timestamps |