CodexだけでGoogleスプレッドシートを操作する方法
MCP接続とPythonコード実行の2流儀
Codexならではの2つのアプローチを、設定例・プロンプト例つきで解説します。
OpenAI CodexからGoogleスプレッドシートを操作したい——そう考えたとき、選択肢は大きく2つあります。MCPサーバーを経由する方法と、Codexにコードを書かせて直接Google Sheets APIを叩かせる方法です。
Codexは元々「自律的にコードを書いて実行するエージェント」であるため、後者のコード実行アプローチが驚くほど自然に機能します。本記事ではCodexに特化して、両方の設定方法とプロンプト例を具体的に解説します。
2つのアプローチの違い
アプローチA:MCPサーバー経由
- 設定ファイルに接続情報を書くだけでツールが使えるようになる
- コードを書かずに自然言語だけでシートを操作できる
- 既製のMCPサーバー(Composioなど)を使えばすぐに始められる
「毎回コードを書かせるのは面倒。ノーコードで完結させたい」という場合に向いています。
アプローチB:Pythonコード実行
- Codexにgspreadライブラリを使ったPythonコードを書かせて実行する
- 複雑な集計・条件分岐・他システムとの連携もコード次第で自由自在
- MCPサーバーの追加設定が不要(サービスアカウントの認証情報だけでよい)
「集計ロジックが複雑」「他の処理と組み合わせたい」という場合に向いています。Codexは元来コードを書いて実行するエージェントなので、この方法との相性が非常に良いです。
アプローチA:MCPサーバー経由で接続する
Codexの設定ファイル(~/.codex/config.toml)に、MCPサーバーの接続情報を追記します。プロジェクト単位で設定したい場合は.codex/config.tomlに書くこともできます(信頼済みプロジェクトのみ)。
config.toml(Composio経由のGoogle Sheets MCPサーバーの例)
[mcp_servers.composio]
url = "https://connect.composio.dev/mcp"
http_headers = { "x-consumer-api-key" = "ck_*******" }
APIキーはComposioのダッシュボード(dashboard.composio.dev)で発行できます。設定後はcodex mcpコマンドでサーバーの追加・管理ができ、/mcpコマンドで現在有効になっているMCPサーバーを確認できます。
動作確認
/mcp
# 有効なMCPサーバーの一覧が表示される
MCP経由でのプロンプト例
プロンプト例
「売上管理」というスプレッドシートを開いて、
A列の商品名ごとにB列の売上を集計した新しいシートを作成してください。
MCPサーバーが構造化された安全なアクセスを提供するため、新規シート作成・データ更新・グラフ生成といった操作を自然言語だけで指示できます。
アプローチB:Pythonコードで直接操作する
MCPサーバーを介さず、Codexにサービスアカウント認証を使ったPythonコードを書かせて実行させる方法です。
STEP 1:Google Cloudでサービスアカウントを作成
Google Developers Consoleでプロジェクトを作成し、Google Drive APIとGoogle Sheets APIを有効化します。サービスアカウントを作成し、認証情報(JSONキー)をダウンロードします。
STEP 2:操作したいシートをサービスアカウントと共有
サービスアカウントは通常のGoogleアカウントとは別物のため、デフォルトではどのシートにもアクセスできません。対象のスプレッドシートを、サービスアカウントのメールアドレス(xxx@xxx.iam.gserviceaccount.com形式)と共有しておく必要があります。
STEP 3:Codexにコードを書かせて実行させる
認証情報のパスを伝えた上で、やりたいことを指示するだけです。
プロンプト例
google_credentials.json を使ってgspreadでGoogleスプレッドシートに接続し、
「売上管理」というシートのA1セルから、
2024年の売上データを読み込んで月別に集計してください。
結果は同じスプレッドシートの新しいシート「月次集計」に書き込んでください。
裏側では、Codexが次のようなコードを自動生成して実行します。
Codexが生成するコード例
import gspread
gc = gspread.service_account(filename="google_credentials.json")
sh = gc.open("売上管理")
worksheet = sh.sheet1
data = worksheet.get_all_records()
# 月別集計処理...
new_sheet = sh.add_worksheet(title="月次集計", rows=20, cols=5)
new_sheet.update([[1, 2], [3, 4]], "A1")
コード実行アプローチの強み
複雑な集計ロジック・条件分岐・他のPythonライブラリとの組み合わせ(グラフ描画・外部APIとの連携など)が自由自在です。MCPサーバーが対応していない細かい要望も、Codexがその場でコードを書いて対応してくれます。
どちらを選ぶべきか
| 状況 | おすすめ |
|---|---|
| シンプルな読み書き・定型作業が中心 | アプローチA(MCP) |
| 複雑な集計・分析・他システム連携が必要 | アプローチB(コード実行) |
| 非エンジニアが自然言語だけで完結させたい | アプローチA(MCP) |
| 柔軟性・拡張性を重視したい | アプローチB(コード実行) |
| すでにサービスアカウントの認証情報がある | アプローチB(コード実行) |
両方を組み合わせるのも実用的
普段の簡単な確認・更新はMCP経由、複雑な分析タスクが出てきたときだけコード実行に切り替える、という併用も可能です。Codexの設定ファイルにMCPサーバーを登録しておきつつ、必要な時だけ「Pythonでこういう処理をして」と明示的に指示すれば、その場でコード実行に切り替わります。
セキュリティ上の注意点
- 認証情報(JSONキー)をスプレッドシート自体に書き込まない:うっかりセルに貼り付けてしまうと、共有設定次第で第三者に漏洩するリスクがあります
- サービスアカウントの権限は必要最小限にする:編集権限が必要なシートだけ共有し、それ以外は共有しない
- 認証情報のJSONファイルはバージョン管理に含めない:
.gitignoreに追加し、リポジトリへのコミットを防ぐ
よくある質問
Q. MCPとコード実行、両方試すべきですか?
A. まずはどちらか片方で十分です。定型的な読み書きが中心ならMCP、集計や分析など複雑な処理が多いならコード実行から始めてみてください。物足りなくなったらもう一方を追加すればよいでしょう。
Q. サービスアカウントとは何ですか?
A. 人間ではなくプログラムが使うことを想定した特殊なGoogleアカウントです。通常のGoogleアカウントのようにログインするのではなく、JSON形式の認証情報ファイルを使ってプログラムから直接認証します。
Q. Composio以外のMCPサーバーは使えますか?
A. 使えます。Google Sheets向けのMCPサーバーは複数存在するため、料金体系や機能を比較して選んでください。設定方法は基本的にconfig.tomlへの接続情報追記という同じ形式です。
Q. Claude Codeでも同じ方法は使えますか?
A. gspreadを使ったPythonコード実行のアプローチは、コードを書いて実行できるエージェントであれば基本的に同じ考え方で応用できます。MCP設定の書き方はツールによって異なるため、Claude Code向けの設定は別記事を参考にしてください。
まとめ
本記事のポイント
- CodexでGoogleスプレッドシートを操作するにはMCPサーバー経由とPythonコード直接実行の2つのアプローチがある
- MCPは
config.tomlへの接続情報追記だけで完結し、ノーコードで自然言語操作ができる - コード実行アプローチはサービスアカウント認証+gspreadで、複雑な集計・他システム連携にも柔軟に対応できる
- Codexは元来コードを書くエージェントのため、コード実行アプローチとの相性が特に良い
「とりあえず動かしてみたい」ならMCP、「複雑な処理をやらせたい」ならコード実行から始めてみてください。どちらも設定さえ済ませれば、あとは日本語で頼むだけで動きます。
※本記事の情報は2026年7月時点のものです。Codexの仕様は変更される可能性があります。

