Google Forms MCP server
{
"mcpServers": {
"a1-x-tech-google-forms": {
"command": "npx",
"args": [
"-y",
"mcp-google-forms@latest"
],
"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>"
}
}
}
}{
"mcpServers": {
"a1-x-tech-google-forms": {
"command": "npx",
"args": [
"-y",
"mcp-google-forms@latest"
],
"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>"
}
}
}
}{
"mcpServers": {
"a1-x-tech-google-forms": {
"command": "npx",
"args": [
"-y",
"mcp-google-forms@latest"
],
"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>"
}
}
}
}{
"servers": {
"a1-x-tech-google-forms": {
"command": "npx",
"args": [
"-y",
"mcp-google-forms@latest"
],
"env": {
"GOOGLE_FORMS_CLIENT_ID": "${input:google_forms_client_id}",
"GOOGLE_FORMS_CLIENT_SECRET": "${input:google_forms_client_secret}",
"GOOGLE_FORMS_REFRESH_TOKEN": "${input:google_forms_refresh_token}",
"GOOGLE_FORMS_ACCESS_TOKEN": "${input:google_forms_access_token}"
}
}
},
"inputs": [
{
"id": "google_forms_client_id",
"type": "promptString",
"description": "Google forms client id",
"password": true
},
{
"id": "google_forms_client_secret",
"type": "promptString",
"description": "Google forms client secret",
"password": true
},
{
"id": "google_forms_refresh_token",
"type": "promptString",
"description": "Google forms refresh token",
"password": true
},
{
"id": "google_forms_access_token",
"type": "promptString",
"description": "Google forms access token",
"password": true
}
]
}{
"mcpServers": {
"a1-x-tech-google-forms": {
"command": "npx",
"args": [
"-y",
"mcp-google-forms@latest"
],
"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>"
}
}
}
}file .mcp.json (in your project root)file claude_desktop_config.jsonfile ~/.cursor/mcp.jsonfile .vscode/mcp.jsonfile ~/.codeium/windsurf/mcp_config.jsoninstall npx -y mcp-google-formsversion 1.1.0
What it does
An MCP server for creating, managing, and reading Google Forms and their responses. It exposes 13 tools for form structure inspection, question editing, publishing control, and response monitoring through the Google Forms API. This is for developers building AI applications that need to programmatically work with Google Forms.
- Create a survey form with specific question types and publish it to collect responses from users.
- Retrieve and summarize responses from an existing Google Form to analyze feedback or survey data.
- Edit form structure and questions in a draft form before publishing it, with explicit confirmation steps to prevent unintended changes.
Tools this server exposes
| Tool | Does |
|---|---|
| get_form | Retrieve the structure and metadata of a Google Form, including items, response settings, and publication state. |
| create_form | Create a new unpublished Google Form with an initial title and optional description. |
| update_form | Update form properties such as title, description, or response settings. |
| get_form_responses | Read responses submitted to a published Google Form. |
| batch_update_form | Make multiple structural changes to a form in a single operation. |
| create_item | Add a new question or section to a form at a specified position. |
| update_item | Modify an existing form question or section. |
| delete_item | Remove a question or section from a form. |
| create_choice_question | Create a multiple-choice, dropdown, or checkbox question for a form. |
| create_text_question | Create a short-answer or paragraph text question for a form. |
| create_rating_question | Create a rating scale question for a form. |
| publish_form | Publish a draft form so it can collect responses. |
| watch_form | Configure a Pub/Sub watch to receive notifications when new responses are submitted to a form. |
Before you enable it
An MCP server runs with whatever access you give it. Start with a development account rather than production, and check which tools the server exposes before you let an agent call them unattended.