CodexやClaudeでGoogleスプレッドシートを操作する方法:MCP・API・Webhook連携の実践例
CodexやClaudeを使うと、Googleスプレッドシートを「人が開いて入力する表」から「AIエージェントや外部ツールの処理結果を自動で反映する業務データベース」に近づけられます。ポイントは、Sheets API、MCP、Webhook、GASを用途に応じて使い分けることです。
この記事では、CodexやClaudeでGoogleスプレッドシートを操作する方法を、MCP・Google Sheets API・Webhook・Google Apps Scriptの4つの観点から、実務で使える形で解説します。
前提:本記事は2026年5月17日時点のGoogle公式ドキュメント、Google Apps Script公式ドキュメント、MCP公式情報をもとにしています。認証方式、API仕様、MCP対応状況は変わる可能性があるため、実装前に最新情報を確認してください。
CodexやClaudeでGoogleスプレッドシートは操作できる?
結論から言うと、できます。ただし、CodexやClaudeが何も設定せずに任意のGoogleスプレッドシートを直接操作できるわけではありません。AIからSheetsへ安全にアクセスするための連携手段が必要です。
主な方法は次の3つです。
| 方法 | 向いている人 | 得意なこと | 注意点 |
|---|---|---|---|
| Google Sheets API | 開発者 | 読み取り、追記、更新、検索、本番アプリ連携 | OAuthやサービスアカウントなど認証設定が必要 |
| MCP | AIエージェント活用者 | AIが必要に応じてシートを読み書きする | MCPサーバーの信頼性と権限管理が重要 |
| Webhook + GAS / Zapier / Make / n8n | ノーコード・業務自動化ユーザー | 外部ツールのイベントをシートへ反映 | 署名検証、重複登録、エラー時の再送設計が必要 |
迷ったら:まず試すならGASやMake、本番アプリならSheets API、CodexやClaudeに作業として任せたいならMCP、という選び方がわかりやすいです。
まず理解したい全体像
Googleスプレッドシート連携では、AI、外部ツール、Webhook、API、MCPの役割を分けて考えると整理しやすくなります。
| 要素 | 役割 | 例 |
|---|---|---|
| Codex / Claude | AIエージェントとして処理内容を考える、コードを書く、シートを読んで分析する | 問い合わせ分類、集計、改善案作成 |
| Google Sheets | 業務データを保存・共有する場所 | 問い合わせ一覧、処理ログ、注文管理、タスク管理 |
| Sheets API | プログラムからシートを読み書きする公式API | values.append、values.update、values.get |
| Webhook | 外部ツールでイベントが起きたら通知する | フォーム送信、決済完了、生成処理完了 |
| MCP | AIエージェントが外部ツールを使うための接続規格 | AIがSheetsを読み、必要に応じて行を更新する |
| GAS | Google側で動く簡易サーバー・自動化処理 | Webhook受信、行追加、通知、整形 |
つまり、外部ツールの処理結果をスプレッドシートに反映するには、「イベントを受け取る」「AIやコードで整形する」「Sheetsへ書き込む」という流れを作ります。
方法1:Google Sheets APIで操作する
Google Sheets APIは、Googleが公式に提供しているスプレッドシート操作用APIです。プログラムからセルの値を取得したり、行を追加したり、既存セルを更新したりできます。
開発者が本番アプリとして安定運用したい場合は、Sheets APIが最も正攻法です。Codexにコードを書かせる場合も、Sheets APIを使う構成は扱いやすいです。
Sheets APIでできること
- シートの値を読み取る
- 新しい行を追記する
- 特定セルや範囲を更新する
- 複数行をまとめて書き込む
- 処理結果やログを記録する
たとえば、外部ツールの処理結果を1行追加するなら、spreadsheets.values.append のようなAPIを使います。既存行を更新するなら、spreadsheets.values.update が候補になります。
Sheets APIが向いているケース
- Webアプリからシートへ安定して書き込みたい
- AI処理結果をログとして蓄積したい
- 認証や権限をきちんと管理したい
- Node.js、Python、GAS以外のバックエンドから操作したい
- 本番環境で運用したい
注意点
Sheets APIは便利ですが、OAuthやサービスアカウントなどの認証設定が必要です。個人のGoogleアカウントで使うのか、サーバーからサービスアカウントで書き込むのかで設計が変わります。
また、APIキーや認証情報をフロントエンドに直接置くのは避けるべきです。Vercel、Render、Cloudflare Workersなどのサーバー側環境変数で管理しましょう。
方法2:MCPでGoogleスプレッドシートを操作する
MCPを使うと、ClaudeやCodexのようなAIエージェントに「外部ツールとしてスプレッドシートを使わせる」構成を作れます。
たとえば、Google Sheetsを扱えるMCPサーバーを用意し、ClaudeやCodexから接続すると、AIがシート内容を読み取り、必要に応じて行の追加や更新を提案・実行できるようになります。
ここで重要なのは、MCPはGoogle Sheets APIの代替そのものではなく、AIが外部ツールを扱うための接続レイヤーだという点です。MCPサーバーの内部では、Google Sheets APIやGoogle Drive APIを使っている場合があります。
MCPが向いているケース
- AIにシートを読ませて分析させたい
- AIに「この行を更新して」「未処理だけ抽出して」と指示したい
- ClaudeやCodexから業務データを扱いたい
- 複数の外部ツールをAIエージェントからまとめて使いたい
- APIの細かい呼び出しをAI側に隠蔽したい
MCPでできる作業例
- 問い合わせ一覧を読み、カテゴリごとの件数を集計する
- 未対応行だけを抽出し、優先度を付ける
- 生成処理のステータスをシートから確認する
- 処理済みフラグを更新する
- シート内容をもとにメール文面やレポートを作る
注意:MCPサーバーに書き込み権限を与える場合は慎重に設計しましょう。対象スプレッドシートを限定する、読み取り専用から始める、重要操作には確認を挟む、といった対策が必要です。
方法3:WebhookやGASで外部ツールの処理結果をシートへ反映する
外部ツールの処理結果をGoogleスプレッドシートに反映するなら、WebhookとGoogle Apps Scriptの組み合わせが手軽です。
たとえば、フォーム送信、決済完了、画像生成完了、動画生成完了、GitHub issue作成などのイベントをWebhookで受け取り、GASでシートに追記できます。
Google Apps Scriptでは、Webアプリとして公開したスクリプトに対してHTTP POSTを受ける doPost(e) 関数を作れます。これをWebhook受信口として使うイメージです。
GASでWebhookを受けてSheetsに追記する例
function doPost(e) {
const sheet = SpreadsheetApp
.openById('SPREADSHEET_ID')
.getSheetByName('logs');
const body = JSON.parse(e.postData.contents);
sheet.appendRow([
new Date(),
body.source || '',
body.event_type || '',
body.status || '',
body.summary || ''
]);
return ContentService
.createTextOutput(JSON.stringify({ ok: true }))
.setMimeType(ContentService.MimeType.JSON);
}このようにしておくと、外部ツールから次のようなJSONを送るだけで、シートにログを残せます。
{
"source": "image-generator",
"event_type": "job.completed",
"status": "success",
"summary": "アイキャッチ画像の生成が完了しました"
}GAS/Webhookが向いているケース
- まず小さく自動化を試したい
- 外部ツールのイベントをシートに記録したい
- ノーコードツールからGoogle Sheetsへ書き込みたい
- 社内の簡易ログやタスク一覧を作りたい
- Google Workspace内で完結させたい
ただし、Webhook受信口を公開する場合は、認証・署名検証・トークンチェックなどを入れるべきです。誰でもPOSTできる状態にすると、迷惑データや偽データを書き込まれるリスクがあります。
実践例1:問い合わせ内容をAIで分類してスプレッドシートに記録する
最初の実践例として、問い合わせフォームの内容をAIで分類し、Googleスプレッドシートへ記録する流れを考えます。
- 問い合わせフォームに入力がある
- WebhookでサーバーやGASへ送信される
- AI APIで問い合わせ内容を分類・要約する
- 分類結果、要約、優先度、担当候補を作る
- Google Sheetsへ1行追加する
- 必要ならSlackやメールへ通知する
- 後からCodexやClaudeでシートを分析する
シートの列は、たとえば次のようにします。
| 列 | 内容 |
|---|---|
| received_at | 受信日時 |
| name | 問い合わせ者名 |
| message | 原文 |
| category | AI分類カテゴリ |
| summary | AI要約 |
| priority | 優先度 |
| status | 未対応、対応中、完了 |
この構成なら、問い合わせを受けた瞬間にシートへ整理され、あとからAIエージェントに「未対応で優先度が高いものを抽出して」と指示できます。
実践例2:外部ツールの処理結果をシートに反映する
次に、外部ツールの処理結果をシートに反映する例です。AI画像生成、動画生成、決済、GitHub issue、デプロイ結果などは、ステータス管理をシートで行うとわかりやすいです。
たとえば、画像生成ジョブを管理するシートなら、次のような列にします。
| 列 | 内容 |
|---|---|
| job_id | 外部ツール側のジョブID |
| title | 記事タイトルや依頼名 |
| prompt | 生成プロンプト |
| status | queued、running、completed、failed |
| output_url | 生成物のURL |
| updated_at | 最終更新日時 |
Webhookで「job.completed」が届いたら、job_idで該当行を探し、statusをcompletedに更新し、output_urlを入れます。新規行追加ではなく既存行更新をしたい場合は、Sheets APIの更新処理やGAS側の検索処理が必要になります。
どの方法を選ぶべきか
用途別に選ぶなら、次の表が目安です。
| 目的 | おすすめ | 理由 |
|---|---|---|
| 手軽に外部ツールの結果をシートへ記録したい | Webhook + GAS | Google内で完結しやすく、小さく始めやすい |
| 本番アプリから安定して読み書きしたい | Google Sheets API | 公式APIで、認証やエラー処理を設計しやすい |
| AIエージェントにシートを読ませて作業させたい | MCP | AIが外部ツールとしてシートを使える |
| 非エンジニアが自動化したい | Zapier / Make / n8n | ノーコードでWebhookやSheets連携を組みやすい |
| 複雑な処理やAI分類を入れたい | サーバー + Sheets API | AI API、DB、キュー、ログを組み合わせやすい |
セキュリティと運用の注意点
APIキーや認証情報をシートに書かない
OpenAI APIキー、Googleの認証情報、Webhookのシークレットなどをスプレッドシートに直接書くのは危険です。環境変数、Secret Manager、Apps Scriptのプロパティストアなどで管理しましょう。
サービスアカウントの権限を絞る
Sheets APIでサービスアカウントを使う場合、必要なスプレッドシートだけ共有するのが基本です。Google Drive全体に広い権限を与えるのは避けましょう。
Webhookの署名やトークンを検証する
Webhook受信URLは外部からアクセスされるため、送信元を検証する必要があります。署名検証が難しい場合でも、最低限、共有シークレットやトークンを使ったチェックを入れるべきです。
重複処理に備える
Webhookは同じイベントが複数回届くことがあります。event_idやjob_idを保存し、同じ通知を二重に反映しないようにします。
書き込みログを残す
誰が、いつ、どの行を、どの処理で更新したのかを追えるようにしておくと、誤更新や障害対応が楽になります。AIエージェントに書き込み権限を与える場合は特に重要です。
CodexやClaudeを使うときの実務的な考え方
CodexやClaudeを使う場合、「AIに全部任せる」のではなく、権限と役割を分けるのが現実的です。
- CodexにはSheets APIやGASのコードを書かせる
- Claudeにはシート内容の分析や分類ルールの設計をさせる
- MCPでは読み取り権限から始める
- 書き込みや削除は確認ステップを入れる
- 本番反映前にテスト用スプレッドシートで検証する
AIエージェントは作業を速くしてくれますが、シートは業務データの中心になることが多いため、誤更新を防ぐ設計が必要です。
関連して、MCPの記事一覧、Webhook関連記事、OpenAI Codexの記事一覧も参考になります。
まとめ:SheetsはAI自動化の入口として使いやすい
CodexやClaudeでGoogleスプレッドシートを操作するには、Sheets API、MCP、Webhook、GASなどの連携手段を使います。
外部ツールのイベントをシートに記録したいならWebhook + GAS、本番アプリから安定して操作したいならGoogle Sheets API、AIエージェントにシートを読ませて作業させたいならMCPが向いています。
Googleスプレッドシートは、業務担当者にも見やすく、AIや外部ツールともつなぎやすい便利な場所です。まずは小さなログ記録や問い合わせ分類から始めると、AI自動化の効果を実感しやすいです。

