Claude-GAS-Bridge

# Claude-GAS-Bridge Node.js を用いて、[MCP (Model Context Protocol)](https://modelcontextprotocol.io/) クライアント(例: Claude Desktop)と GAS Interpreter(Google Apps Script 側)を接続するブリッジサーバーです。 `bridge.mjs` 内で [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk) の MCP サーバーを起動し、GAS のWebエンドポイントへ HTTP POST する機能を提供します。 ## 構成概要 ``` claude-gas-bridge/ ├─ bridge.mjs # メインのMCPサーバーコード ├─ package.json ├─ package-lock.json └─ ... (その他ファイル) ``` - `bridge.mjs` MCPサーバー本体。`execute-gas` というツールを定義し、クライアントから受け取ったGASスクリプトを指定の WebApp(Apps Script)エンドポイントへ転送します。 ツール呼び出し時、タイトル・スクリプト本文・APIキーを JSON で送信する形です。 ## 必要環境 - **Node.js 18 以上** `@modelcontextprotocol/sdk` が Node 18 以降を推奨しています - **GAS Interpreter のデプロイ済み** Google Apps Script で GAS Interpreter を正しくデプロイし、ウェブアプリのURLを取得しておく - (オプション)Claude Desktop 等、MCP クライアント ## セットアップ 1. **ソースを取得** ```bash git clone <このリポジトリのURL> cd claude-gas-bridge ``` 2. **依存パッケージをインストール** ```bash npm install ``` ※ Yarn でも可 3. **GASのデプロイURLを設定** `bridge.mjs` 内の `GAS_ENDPOINT` を、実際のApps ScriptのURLに書き換える。 例: ```js const GAS_ENDPOINT = "https://script.google.com/macros/s/AKfycbxxxxx/exec"; ``` 4. **Node.js でサーバー起動** ```bash node bridge.mjs ``` コンソールに `"Bridge server started (Stdio). Waiting for requests..."` と表示されたら待機状態となり、MCPクライアントからの呼び出しを受け付けます。 ## Claude Desktop との連携 (例) もし Claude Desktop で利用する場合、`claude_desktop_config.json` に以下のように設定します: ```jsonc { "mcpServers": { "gas-bridge": { "command": "node", "args": [ "/絶対パス/claude-gas-bridge/bridge.mjs" ] } } } ``` 1. Claude Desktop を再起動 2. チャット画面下部のツール一覧(ハンマーアイコン)で `execute-gas` が見えるはずです 3. 「ChatGPT を通じて GASスクリプトを実行したい」などの指示をすると、`bridge.mjs` がリクエストを受け、GAS Interpreterに転送します ## APIキーの管理について - GAS Interpreter 側が API キーを要求する場合は、ツール呼び出し時に `"apiKey": "..."` を指定するか、`bridge.mjs` 内部で環境変数を参照して埋め込むなど適宜調整してください。