Google Forms MCP について
Google Forms MCPは、AIアプリからGoogle Formsを作成・管理し、回答を確認して送信通知を設定するMCPサーバーです。フォームは未公開状態で作成され、回答の読み取りはできますが、送信や編集はできません。
主な機能
- 01フォーム構成と回答の確認
- 02フォーム作成と質問の管理
- 03フォーム公開と回答受付の制御
- 04Pub/Subウォッチの設定
- 05回答の読み取り専用操作
活用シーン
- 01フォームの質問と回答設定の確認
- 02アンケートの自由記述回答の要約
- 03必須の評価質問の追加
- 04新しい回答の通知設定
MCP 対応
フォーム、質問、回答、公開、Pub/Subウォッチ用ツールを通じて、Google Forms APIの機能をMCPクライアントに公開します。会話から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 フォームを作成、管理できます。アンケートを作成し、質問を選び、準備ができたら公開して、回答を読み取り、新しい回答の通知を利用できます。
Google アカウントを使って Google Forms API と連携します。下書きフォームと公開済みフォームを区別し、すべてのフォーム操作が可能であるかのように見せることなく、Forms API の制限を明示します。
- 19 個のツール。 フォームの構造や回答を確認し、フォームや質問を作成・編集し、公開を管理して、Pub/Sub の監視を設定できます。
- 会話から接続できます。 「Google Forms に接続して」と伝えると、サーバーが OAuth クライアントの設定を案内し、PKCE を使って
127.0.0.1への Google のリダイレクトを受け取り、トークンをサーバー内に保持します。設定ファイルも再起動も不要です。 - 意図的に公開します。 API 経由で作成したフォームは未公開の状態で始まるため、公開するまでは回答を収集できません。
- 回答はそのまま保持されます。 API では回答を読み取れますが、作成や編集はできません。サーバーには回答を送信するツールはありません。
- 最小限の Google スコープ。 広範な Drive アクセスを使わず、
forms.bodyとforms.responses.readonlyを使用します。
まずは読み取り専用の質問から始めましょう。
顧客フィードバックフォームの昨日の回答を表示し、自由記述の回答を要約してください。
サーバーに接続する · ユースケースを見る · 技術ドキュメントを開く
1 分で動作を確認
あなた: 顧客フィードバックフォームの質問と回答設定を表示してください。
アシスタント: フォーム、項目、公開状態、回答を受け付けているかどうかを表示します。何も変更しません。
あなた: 最初の質問の後に、「ご利用体験はいかがでしたか?」という必須の 1~5 段階評価の質問を追加する準備をしてください。
アシスタント: 対象のフォーム、位置、追加予定の質問を表示し、追加する前に確認を求めます。
あなた: 確定。
アシスタント: フォームに質問を追加します。別途依頼されない限り、フォームを公開したり、受付を終了したりすることはありません。
目次
クイックスタート
Node.js 20 以降と Google アカウントが必要です。インストール時に認証情報は不要です。サーバーは会話中に接続します。
- AI アプリにサーバーを追加します。
- 「connect 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 を指定して回答を 1 件表示する。
フォームを作成、改善する
- 氏名、食事の希望、到着日を尋ねる出欠確認フォームを作成する。
- 必須の評価、ドロップダウン、日付、時刻、選択肢、またはテキストの質問を追加する。
- 質問の順序を変更するか、タイトル、説明、クイズモード、またはメール収集の設定を更新する。
公開して通知を連携する
- 作成済みのフォームを公開し、回答者用 URL を表示する。
- フォームを削除せずに、新しい回答の受付を停止する。
- 新しい回答の通知を受け取る Cloud Pub/Sub のウォッチを作成、更新、または削除する。
フォームの仕組み
create_formは フォーム を作成します。フォームはデフォルトで未公開の状態です。- 質問は アイテム であり、フォーム内での位置によって識別されます。
- フォームを公開すると回答者が利用できるようになります。回答の受付を終了しても公開状態は維持されますが、新しい回答は受け付けなくなります。
- 回答は読み取り専用の別個の記録です。API では、回答者の回答を送信、編集、削除できません。
ファイルアップロードの質問は Forms API から作成できませんが、既存のファイルアップロード項目は読み取れます。Google の公開モデル導入前に作成された古いフォームでは、公開設定に対応していない場合があります。
変更内容
| 操作 | 内容 | 確認の境界 |
|---|---|---|
| フォームと回答を読み取る | フォームの構成と送信内容を読み取ります | 変更なし |
| フォームを作成する | 未公開のフォームを追加します | Google Forms を変更します |
| 質問を追加または移動する | フォーム項目を変更します | フォームを変更します |
| フォーム情報、設定、または項目を更新する | タイトル、設定、または選択した質問を変更します | フォームを変更します |
| 回答を公開、非公開、開始、または締め切る | フォームを利用できるユーザーを変更します | フォームの公開状況を変更します |
| 項目を削除する | 選択した質問を削除します | 破壊的な操作 |
| Pub/Sub ウォッチを管理する | 通知配信を作成、更新、または削除します | 破壊的な操作となる可能性があります |
| 生の API リクエスト | 専用ツールを使わずに API メソッドを呼び出せます | 破壊的な操作となる可能性があります |
確認プロンプトは AI クライアントが制御します。サーバーは読み取り、書き込み、破壊的なツールにそれぞれ印を付け、クライアントが調査と実際の変更を区別できるようにします。
アクセス権の取得
Google Forms では OAuth 2.0 が必要です。API キーだけでは利用できません。アクセス方法は 2 つあり、1 つ目は設定ファイルが不要です。
チャットから接続する(推奨)
「connect 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 アカウントを認証します。OAuth 2.0 Playground では、Use your own OAuth credentials を有効にすると、リフレッシュトークンを取得できます。
-
次の両方のスコープをリクエストします。
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 の 3 つの認証情報に代わる、有効期間の短いトークン。 |
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 の 3 つの認証情報、またはアクセストークンのいずれかを指定してください。
データ、制限、バックグラウンド処理
- リクエストは Google Forms に送信されます。 ローカルサーバーが Google OAuth トークンを更新し、Forms API を呼び出します。匿名テレメトリに含まれるのは、インストール ID、パッケージのバージョン、AI クライアントとプラットフォームのバージョン、ツール名です。OAuth トークン、フォームデータ、ツールの引数、プロンプトは含まれません。オプトアウトするには、
ASKADS_TELEMETRY=0を設定してください。 - Google には分単位の割り当て制限があります。 公開されている上限は、プロジェクトあたりの読み取りが 975 回、
list_responsesの呼び出しが 450 回、書き込みが 375 回です。429が発生すると、サーバーはバックオフを行います。読み取りではネットワークエラーと5xxエラーの後にも再試行しますが、不確定な失敗後に書き込みを再実行することはありません。 - バックグラウンドでのポーリングはありません。 サーバーは呼び出されたときだけ実行されます。Pub/Sub の監視を使うと、新しい回答について独自のインフラストラクチャに通知できます。AI アプリがスケジュールタスクに対応している場合は、回答を定期的に確認することもできます。
技術ドキュメント
- MCP 機能カタログ — すべてのツールをタスク別に解説しています。
- すべてのツールと入力
- 開発ドキュメント
- 公開ドキュメント
- Google Forms API リファレンス
サポート
バグを見つけた場合や、シナリオの追加が必要な場合は、issue を作成するか、Telegram でご連絡ください。
最後までご覧いただき、ありがとうございます!
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。