apps-script-mcp-server
apps-script-mcp-server
Claude が Google Apps Script(.gs、.html、appsscript.json)のコードを直接スクリプトプロジェクトに読み書きできるようにする MCP サーバーです。もう手動で Apps Script エディタにコードをコピペする必要はありません。
Kwara 疾病監視システム(KWARAB ダッシュボード) 向けに構築されていますが、編集権限のある任意の Apps Script プロジェクトで動作します。
できること
ツール | 説明 |
| 正しいプロジェクトを指していることを確認する |
| すべて(または 1 つ)のファイルの現在のソースを読み取る |
| 1 つのファイルのコードをプッシュ/上書きする(主な「.gs コード投稿ツール」) |
| ファイルセット全体をアトミックに置き換える |
| 保存されたバージョン履歴を表示する |
| 現在のコードを新しいバージョンとしてスナップショットする |
| 既存のウェブアプリ/デプロイ情報を表示する |
事前に知っておくべき重要な制限事項: apps_script_update_file / apps_script_update_content でコードをプッシュすると、編集可能なプロジェクトが更新されます。これはスクリプトエディタで入力して保存するのと同じです。すでにデプロイされているもの(例:公開中のウェブアプリ URL、特定のデプロイバージョンにバインドされたトリガー)は自動的には更新されません。変更を公開するには、バージョンを作成し(apps_script_create_version)、その後 Apps Script エディタから再デプロイしてください。このサーバーはデプロイ公開には意図的に触れません。これはより重大な操作であり、最初の数回は手動で行う価値があるためです。
Related MCP server: mcp-google-reader
1. 初回の Google Cloud 設定(最初に行うこと)
Apps Script API が有効で OAuth クライアントが設定された Google Cloud プロジェクトが必要です。これには約 5 分かかります。
Google Cloud プロジェクトを作成または選択する https://console.cloud.google.com/projectcreate にアクセスし、プロジェクトを作成します(名前は何でも構いません。例:「kwarab-apps-script-mcp」)。すでに他の Kwara/Ekiti 作業で使用している GCP プロジェクトがある場合は、それを再利用できます。
プロジェクトで Apps Script API を有効にする https://console.cloud.google.com/apis/library/script.googleapis.com にアクセスし、プロジェクトを選択して、「有効にする」 をクリックします。
OAuth 同意画面を構成する https://console.cloud.google.com/apis/credentials/consent にアクセスします
ユーザータイプ:外部(Google Workspace 組織の場合は内部でも問題ありません)
アプリ名(例:「Apps Script MCP」)、サポート連絡先として自分のメールアドレスを入力します
スコープ:ここではスコープの追加をスキップできます。サーバーが直接要求します
テストユーザー:自分の Google アカウントのメールアドレスを追加します(アプリが「テスト」ステータスの間は必須です。個人/内部利用では問題ありません)
OAuth クライアントを作成する https://console.cloud.google.com/apis/credentials にアクセスします
「認証情報を作成」→「OAuth クライアント ID」 をクリックします
アプリケーションの種類:デスクトップアプリ
任意の名前を付けます(例:「Apps Script MCP Desktop」)
「作成」 をクリックし、次に 「JSON をダウンロード」 をクリックします
ダウンロードしたファイル をこのプロジェクトのルートフォルダ(この README と同じフォルダ)に
credentials.jsonとして保存します。このファイルはコミットしたり共有したりしないでください。これは OAuth クライアントを識別するものです(個人アカウントではありませんが、それでも非公開にしてください)。自分の Google アカウントで Apps Script API を有効にする これは手順 2 とは別です(手順 2 はプロジェクトに対して API を有効にします。こちらはスクリプトを所有/編集するGoogle アカウントに対して有効にします)。https://script.google.com/home/usersettings にアクセスし、「Google Apps Script API」 をオンにします。
2. インストールと認可
npm install
npm run build
npm run authorizenpm run authorize を実行するとブラウザが開き、Kwara 疾病監視 Apps Script プロジェクトにアクセスできる Google アカウントでサインインし、アクセスを承認するよう求められます。承認後、リフレッシュトークンがこのフォルダの token.json に保存されます。これは一度だけ行えば十分です(アクセスを取り消したり、Google アカウントを切り替えた場合は再実行してください)。
ブラウザが自動的に開かない場合: ターミナルに URL が表示されます。それをブラウザにコピー&ペーストし、承認すると、スクリプトが待機している localhost にリダイレクトされます。ターミナルに成功が表示されます。
3. Claude に接続する
オプション A:ローカル(stdio)— Claude Code / Claude Desktop
MCP 設定(例:claude_desktop_config.json または Claude Code の MCP 設定)に以下を追加します:
{
"mcpServers": {
"apps-script": {
"command": "node",
"args": ["/absolute/path/to/apps-script-mcp-server/dist/index.js"]
}
}
}追加後、Claude Desktop / Claude Code を再起動します。接続された MCP サーバーの中に apps-script が表示され、apps_script_update_file などのツールが利用可能になります。
オプション B:リモート(HTTP)、例:Render でホスト
サーバーはスタンドアロンの HTTP サービスとしても実行できます。TRANSPORT=http を設定してください。これはこのリポジトリの render.yaml で自動的に構成されます。以下の Render へのデプロイ を参照してください。
リモートサーバーは URL を知っている誰でもアクセスできます。そのため、/mcp へのすべてのリクエストには、設定した MCP_SERVER_TOKEN 環境変数と一致するベアラートークンを含める必要があります:
Authorization: Bearer <your MCP_SERVER_TOKEN value>Claude のリモート MCP コネクタ設定で、サーバー URL(https://<your-service>.onrender.com/mcp)を追加し、そのヘッダーを設定します。/healthz は意図的に認証なしにしているため、Render のヘルスチェックが到達できます。
Render へのデプロイ
このリポジトリには render.yaml ブループリントが含まれているため、Render はほとんどの設定が事前に入力された状態でサービスを作成できます。
Render ダッシュボードで:New → Blueprint、まだの場合は GitHub アカウントを接続し、このリポジトリを選択します。Render が
render.yamlを読み取ります。Render は
sync: falseとマークされた環境変数を要求します:MCP_SERVER_TOKEN— 長いランダムな文字列を作成します(例:openssl rand -hex 32)。これは Claude がベアラートークンとして送信する必要があるものです。GOOGLE_OAUTH_CLIENT_ID、GOOGLE_OAUTH_CLIENT_SECRET、GOOGLE_OAUTH_REFRESH_TOKEN— これらは最初にローカルで生成し(上記の手順 1~2、npm run authorizeを含む)、生成されたtoken.jsonを開いてclient_id、client_secret、refresh_tokenを Render の環境変数フィールドにコピーします。Render はブラウザを取得しないため、このヘッドレスクレデンシャルパスがローカルのnpm run authorizeステップを置き換えます。
デプロイします。稼働後、MCP エンドポイントは
https://<your-service>.onrender.com/mcpになります。無料プランでは、Render は非アクティブ後にサービスを停止します。アイドル後の最初のリクエストは、再起動中に遅くなります(コールドスタート)。
4. 使用方法
Kwara 疾病監視 Apps Script プロジェクトのスクリプト ID が必要です。https://script.google.com でプロジェクトを開き、URL から ID をコピーします:
https://script.google.com/home/projects/<THIS_IS_THE_SCRIPT_ID>/edit(Apps Script が KWARAB Google シートにバインドされている場合、スタンドアロンではなく、シートを開いて → 拡張機能 → Apps Script で同じエディタと URL にアクセスできます。)
その後、この MCP サーバーが接続された Claude の会話で、次のように指示できます:
「スクリプト
<scriptId>の現在のCode.gsを表示して」「
Code.gsのsendAlertEmail関数を更新して、DSNO スーパーバイザーも CC に追加して」「この新しい
Utils.gsファイルを次のヘルパー関数と一緒にプッシュして:...」「'Add AFP EPID auto-compose logic' という名前の新しいバージョンを作成して」
セキュリティに関する注意
credentials.jsonとtoken.jsonはどちらも、編集可能な Apps Script プロジェクトへのアクセスを許可します。バージョン管理から除外し(.gitignoreが含まれています)、共有しないでください。要求される OAuth スコープ(
script.projects、script.deployments)には、スクリプトプロジェクトのコンテンツの読み書きとデプロイの検査に必要な範囲を超える Gmail、シート、ドライブへのアクセスは含まれません。いつでもアクセスを取り消すには:https://myaccount.google.com/permissions → 上記手順 4 で設定した OAuth クライアント名を見つける → アクセスを削除。その後
token.jsonを削除します。
トラブルシューティング
エラー | 修正方法 |
「Not authorized yet」 |
|
403 権限拒否 | 承認に使用したアカウントで script.google.com/home/usersettings で Apps Script API が有効になっていることを確認する |
404 スクリプトが見つからない | スクリプト ID を再確認する。承認したアカウントがそのプロジェクトに対して少なくとも編集アクセス権を持っていることを確認する |
authorize 中にブラウザが開かない | 表示された URL を手動でブラウザにコピーする |
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
MCP server for RiverScript, an AI transcription platform - fetches transcripts shared via a link.
An MCP server that gives your AI access to the source code and docs of all public github repos
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server for Claude Code CLI that integrates with Google Workspace, enabling management of Docs, Sheets, Drive, Gmail, Calendar, and Apps Script.7 npm3MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that reads Google Docs and Google Sheets content for AI assistants like Claude.8 npm1MIT
- AlicenseNot gradedqualityCmaintenanceA local MCP server that lets Claude read and write Google Sheets through the Google Sheets API v4, using OAuth2 authentication with your own Google account.9 npm1MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that gives Claude Code write access to a personal Google account — Gmail, Drive, Calendar, Sheets, and YouTube — backed by a self-owned Google Cloud OAuth client.1,261 npmMIT