Google Apps Script MCP について
Google Apps Script MCPは、AIアプリから自然言語でGoogle Apps Scriptのプロジェクトを管理するサービスです。編集可能なHEADと不変バージョンを区別し、APIの制約も明示します。
主な機能
- 01単独またはバインド型プロジェクトの作成
- 02コードファイルの読み取りと更新
- 03不変バージョンのスナップショット作成
- 04デプロイ管理とバージョン切り替え
- 05関数実行と実行履歴の確認
- 06実行メトリクスの確認
活用シーン
- 01スクリプトファイルと最近の失敗の確認
- 02他のファイルを保ち指定ファイルだけ編集
- 03バージョンのデプロイや以前の版への復帰
- 04関数を実行して結果を確認
MCP 対応
MCP サーバーとして、Google Apps Scriptのプロジェクト、コード、バージョン、デプロイ、実行履歴、メトリクスを扱うツールをMCPクライアントに提供します。Google Apps Script APIとOAuthでGoogleアカウントにアクセスします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y mcp-google-apps-scriptGOOGLE_APPS_SCRIPT_CLIENT_IDGoogle OAuth2 client id (refresh-token flow).GOOGLE_APPS_SCRIPT_CLIENT_SECRETシークレットGoogle OAuth2 client secret (refresh-token flow). Treat it as a secret.GOOGLE_APPS_SCRIPT_REFRESH_TOKENシークレットGoogle OAuth2 refresh token, exchanged for access tokens automatically. Treat it as a secret.GOOGLE_APPS_SCRIPT_ACCESS_TOKENシークレットStatic OAuth2 access token (~1h lifetime) — alternative to the refresh-token trio, mostly for testing.GOOGLE_APPS_SCRIPT_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_APPS_SCRIPT_API_BASEAPI root override.GOOGLE_APPS_SCRIPT_TIMEOUT_MSPer-request timeout in milliseconds.GOOGLE_APPS_SCRIPT_MAX_RETRIESRetries on transient errors (429 always; 5xx/network for reads).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
18掲載時のツール一覧 · 今日に更新
このツールにパラメーターはありません。
詳細
Google Apps Script MCP
日本語 | Русский
A1 Google Apps Script MCP を使うと、AI アプリが平易な言葉で Google Apps Script の作成や操作を行えます。スクリプトプロジェクトの作成、コードの閲覧と編集、バージョンのスナップショット作成、デプロイの管理、関数の実行、実行履歴の確認ができます。
Google アカウントを使って Google Apps Script API を利用します。編集可能な HEAD コードと変更不可能なバージョンを区別し、すべてのスクリプト作業が可能であるかのように示すのではなく、Apps Script API の制限を明示します。
- 19 個のツール。 スタンドアロンプロジェクトとバインドプロジェクトの作成、コードファイルの閲覧と更新、変更不可能なバージョンのスナップショット作成、デプロイの管理、関数の実行、実行履歴とメトリクスの確認ができます。
- 会話から接続できます。 「Google Apps Script に接続して」と伝えると、サーバーが OAuth クライアントの設定を案内し、PKCE を使って
127.0.0.1で Google からのリダイレクトを受け取り、トークンを保持します。設定ファイルも再起動も必要ありません。 - バージョンは変更できません。 バージョンは HEAD のスナップショットであり、編集も削除もできません。デプロイはバージョンを参照するため、URL を変更せずにリリースやロールバックができます。
- マニフェストは常に保持されます。 マージモードでは
appsscriptマニフェストと、指定していないすべてのファイルが保持されます。置換モードでは、マニフェストのないファイルセットをネットワーク通信の前に拒否します。 - scriptId を保持してください。 API ではプロジェクトを一覧表示できず、削除もできません。
create_projectが返すscriptIdだけがプロジェクトを参照する手段です。 - Google のスコープは最小限です。 各操作で独自のスコープ(
script.projects、script.deployments、script.processes、script.metrics)が指定されます。タスクに必要なものだけをリクエストしてください。
読み取り専用の質問から始めましょう。
レポートスクリプトのファイルと、今週失敗した関数を表示してください。
サーバーに接続 · ユースケースを見る · 技術ドキュメントを開く
1 分で動作を確認
あなた: レポートスクリプトのコードと最近の実行履歴を表示してください。
アシスタント: すべてのファイルとそのソース、実行履歴を表示します。どの関数がいつ実行され、どれが失敗したかを確認できます。変更はありません。
あなた: Utils ファイルに
formatDateヘルパーを追加して、ほかはそのままにしてください。アシスタント: 提案するソースを表示し、マージモードではほかのファイルが変更されないことを確認したうえで、書き込み前に確認を求めます。
あなた: 確認します。
アシスタント: ファイルを HEAD に書き込みます。別途依頼しない限り、バージョンの作成、再デプロイ、実行は行いません。
目次
クイックスタート
Node.js 20+ と Google アカウントが必要です。インストール時に認証情報は必要ありません。サーバーは会話中に接続します。
- AI アプリにサーバーを追加します。
- 「connect Google Apps Script」と伝えます。アシスタントが、設定ファイルを編集せずにOAuth クライアントの作成とアクセスの承認を案内します。
- 上記の読み取り専用の質問をします。
Codex
アプリから設定する場合: Settings → MCP servers を開き、Add server を選択して、STDIO を選びます。コマンド npx -y mcp-google-apps-script@latest と環境変数 GOOGLE_APPS_SCRIPT_CLIENT_ID、GOOGLE_APPS_SCRIPT_CLIENT_SECRET、GOOGLE_APPS_SCRIPT_REFRESH_TOKEN を入力し、Save、Restart の順に選択します。
コマンドラインから設定する場合:
codex mcp add google-apps-script \
-- npx -y mcp-google-apps-script@latest
codex mcp list
Claude Code
claude mcp add \
--transport stdio --scope user google-apps-script \
-- npx -y mcp-google-apps-script@latest
claude mcp list
Claude Desktop
現在の公式な設定手順は Settings → Extensions です。カスタムのデスクトップ拡張機能を追加するには、Advanced settings → Extension Developer → Install Extension… を開き、.mcpb ファイルを選択して、表示される手順に従います。
このリポジトリでは現在、npm の stdio パッケージを公開しており、.mcpb バンドルは含まれていません。ローカル設定にまだ対応している Claude Desktop ビルドでは、代わりに次の JSON stdio 設定を使用してください。
{
"mcpServers": {
"google-apps-script": {
"command": "npx",
"args": ["-y", "mcp-google-apps-script@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-apps-script": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-google-apps-script@latest"]
}
}
}
VS Code
MCP: Open User Configuration を実行して、次の内容を追加します。
{
"servers": {
"google-apps-script": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-google-apps-script@latest"]
}
}
}
MCP: List Servers を実行して確認します。
できること
プロジェクトと実行履歴を確認する
- このスクリプトのファイルを表示し、各関数の役割を説明してください。
- 今週失敗した関数はどれですか?
sendDigestの実行履歴を表示してください。 - 過去 7 日間に、このスクリプトで発生したユーザー数、実行回数、失敗回数はいくつですか?
コードを作成し、発展させる
- スタンドアロンのプロジェクト、または Doc、Sheet、Slides、Form にバインドされたスクリプトを作成してください。
- 他のファイルには手を加えず、1 つのファイルにヘルパー関数を追加してください。
- リファクタリングの前に、説明を付けて現在のコードをバージョンとしてスナップショットしてください。
デプロイ、実行、ロールバックする
- バージョン 4 をデプロイし、エントリーポイント(ウェブアプリの URL または API 実行可能な設定)を表示してください。
sendDigestを実行して結果を表示してください。スクリプトが例外をスローした場合は、スタックトレースを表示してください。- URL を変更せずに、デプロイ先をバージョン 3 に戻してください。
プロジェクトの変更方法
create_projectは、単独のプロジェクト、または Doc、Sheet、Slides、Form に紐付いたプロジェクトを作成します。API ではプロジェクトを一覧表示できないため、返されたscriptIdは必ず保存してください。- コードは HEAD にあり、拡張子を付けずにファイル名で指定します。
update_project_contentはデフォルトでマージします。指定したファイルを追加または更新し、それ以外はそのまま保持します。全体の置き換えを明示した場合に限り、ファイル一式を置き換えます。appsscriptマニフェストは削除できません。 create_versionは HEAD の不変バージョンを作成します。編集も削除もできず、番号が減ることはありません。- デプロイメントは、バージョンをウェブアプリまたは API 実行可能ファイルとして公開します。デプロイメントを更新すると、URL を変えずに参照先のバージョンが切り替わります。自動作成された
@HEADデプロイメントは削除できません。
API ではプロジェクトも削除できません。削除するにはその Drive ファイルを削除する必要がありますが、このサーバーでは対応していません。run_function の実行には、API 実行可能デプロイメント、スクリプトと同じ Cloud プロジェクトの OAuth クライアント、そしてトークンに含まれるスクリプト独自のスコープが必要です。Apps Script は、実行開始から 6 分後にすべての実行を停止します。実行履歴で確認できるのはステータスと実行時間のみで、エラーメッセージは表示されません。エラーは Cloud Logging で確認するか、関数を再実行して確認してください。
変更できる内容
| 操作 | 内容 | 確認が必要な境界 |
|---|---|---|
| プロジェクト、そのコード、バージョン、実行履歴、指標を読み取る | データを読み取ります | 変更なし |
| プロジェクトを作成する | 単独または紐付けられたスクリプトプロジェクトを追加します | Google Apps Script を変更 |
| プロジェクトのファイルを更新する | HEAD のコードを上書きします。置き換えモードではファイル一式を入れ替えます | プロジェクトを変更 |
| バージョンを作成する | 削除できない不変のスナップショットを追加します | プロジェクトを変更 |
| デプロイメントを作成または更新する | 公開中の URL または API エンドポイントから提供される内容を変更します | プロジェクトの公開中の動作を変更 |
| デプロイメントを削除する | デプロイメントの URL を永久に使用できなくします | 破壊的操作 |
| 関数を実行する | 実際の副作用を伴うコードを実行します | 破壊的操作 |
| 生の API リクエスト | 専用ツールなしで API メソッドを呼び出せます | 破壊的な操作になる可能性あり |
確認プロンプトは AI クライアントが制御します。サーバーは読み取り、書き込み、破壊的操作を行うツールにそれぞれ印を付けるため、クライアントは確認のみの操作と実際の変更を区別できます。
アクセスの取得
Google Apps Script では OAuth 2.0 が必要です。API キーだけでは利用できません。利用を開始する方法は 2 つあり、1 つ目は設定ファイルを必要としません。
チャットから接続する(推奨)
「connect Google Apps Script」と伝えると、アシスタントが一緒に接続手順を進めます。
setup_instructionsでチェックリストが表示されます。Google Cloud プロジェクトの作成または選択、Apps Script API の有効化、同意画面の設定、Desktop app OAuth クライアントの作成を行います。- そのクライアントの JSON(「Download JSON」)をダウンロードし、アシスタントにそのパスを伝えます。
set_clientがファイルを所有者のみアクセス可能な状態で保存します。シークレットが会話を経由することはありません。 start_loginから Google の同意リンクが返されます。このマシンでリンクを開いて承認してください。コードはチャットを経由せず、127.0.0.1上のワンショットリスナー(PKCE)に返されます。finish_loginがコードを交換し、トークンを~/.config/mcp-google-apps-script/credentials.json(モード 0600)に保存します。また、実際の Apps Script API 呼び出しでトークンを検証するため、API がまだ無効になっている場合もその場で検出できます。
呼び出しのたびにトークンが再読み込みされるため、AI アプリを再起動しなくても、接続はすぐに有効になります。auth_status で接続状況を確認でき、logout で認証を取り消して認証情報を削除できます。
環境変数(CI、無人インストール)
-
Google Cloud プロジェクトを作成または選択し、Google Apps Script API を有効にします。
-
script.google.com/home/usersettings でアカウントごとの切り替えをオンにします。オンにしないと、すべての呼び出しが
403で失敗します。 -
OAuth 同意画面を設定し、Desktop app OAuth クライアントを作成します。
-
スクリプトを所有する Google アカウントを承認します。OAuth 2.0 Playground では、Use your own OAuth credentials を有効にすると、リフレッシュトークンを取得できます。
-
使用するツールに必要なスコープをリクエストします。
https://www.googleapis.com/auth/script.projects https://www.googleapis.com/auth/script.deployments https://www.googleapis.com/auth/script.processes https://www.googleapis.com/auth/script.metrics閲覧のみの場合は、最初の2つを読み取り専用の
script.projects.readonlyとscript.deployments.readonlyに置き換えます。list_processesとget_project_metricsには引き続きscript.processesとscript.metricsが必要で、これらにはより限定的な形式はありません。run_functionにはこれらのスコープは不要です。代わりに、トークンには対象スクリプト自体が使用するすべてのスコープが含まれている必要があり、OAuth クライアントはスクリプトと同じ Cloud プロジェクトに属している必要があります。
テストモードの OAuth リフレッシュトークンは、7日後に期限切れになることがあります。長期間アクセスする必要がある場合は、OAuth アプリを公開するか、Workspace ドメインで Internal アプリを使用してください。クライアントシークレットとリフレッシュトークンはパスワードとして扱ってください。
setup_instructions ツールは同じチェックリストを返すため、認証情報を設定する前でも使用できます。
設定
すべての変数は省略可能です。何も設定しなくても、サーバーはチャットから接続します。
| 変数 | 必須 | 説明 |
|---|---|---|
GOOGLE_APPS_SCRIPT_CLIENT_ID | いいえ* | OAuth クライアント ID。 |
GOOGLE_APPS_SCRIPT_CLIENT_SECRET | いいえ* | OAuth クライアントシークレット。 |
GOOGLE_APPS_SCRIPT_REFRESH_TOKEN | いいえ* | OAuth リフレッシュトークン。 |
GOOGLE_APPS_SCRIPT_ACCESS_TOKEN | いいえ* | OAuth の3つの値に代わる、短期間有効なトークン。 |
GOOGLE_APPS_SCRIPT_OAUTH_PORT | いいえ | チャット内ログイン用の固定ループバックポート。SSH ポートフォワーディング経由で使用する場合に便利です。 |
GOOGLE_APPS_SCRIPT_API_BASE | いいえ | Google Apps Script API のベース URL の上書き値。 |
GOOGLE_APPS_SCRIPT_TIMEOUT_MS | いいえ | リクエストごとのタイムアウト。デフォルトは 60000 ミリ秒です。 |
GOOGLE_APPS_SCRIPT_MAX_RETRIES | いいえ | 一時的なエラーの再試行回数。デフォルトは 3 です。 |
* OAuth の3つの値、またはアクセストークンのいずれかを指定してください。
データ、制限、バックグラウンド処理
- リクエストは Google Apps Script に送信されます。 ローカルサーバーは Google OAuth トークンを更新し、Apps Script API を呼び出します。匿名のテレメトリには、インストール ID、パッケージのバージョン、AI クライアントとプラットフォームのバージョン、ツール名が含まれます。OAuth トークン、スクリプトのソース、ツールの引数、プロンプトは含まれません。オプトアウトするには、
ASKADS_TELEMETRY=0を設定します。 - 書き込みを確認せずに再実行することはありません。
429の場合、サーバーはバックオフを使用します。ネットワークエラーや5xxエラーの後も読み取りは再試行しますが、失敗が不確かな場合、書き込みは再実行されません。create_versionを重複すると変更できないバージョンが積み重なり、run_functionを重複すると副作用が2回実行されるためです。結果が不確かな失敗の後は、再送信するのではなく、list_versionsまたは実行履歴を確認してください。 - バックグラウンドでのポーリングはありません。 サーバーは呼び出されたときのみ動作し、関数は実行を依頼されたときのみ実行されます。スクリプトは Google 側で独自の Apps Script トリガーを維持します。AI アプリがスケジュールタスクに対応している場合は、実行履歴を定期的に確認することもできます。
技術ドキュメント
- MCP 機能カタログ — 各ツールのタスク別ページ。
- すべてのツールと入力
- 開発ドキュメント
- 公開ドキュメント
- Google Apps Script API リファレンス
サポート
バグを見つけた場合やシナリオが必要な場合は、イシューを作成するか、Telegramに書き込んでください。
最後まで読んでいただき、ありがとうございます!
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。