MCPApp について
MCPApp は Google Apps Script(GAS)上で MCP サーバーとクライアントを構築するためのライブラリです。README には initialize、tools/list、prompts/list、tools/call メソッドを試す curl のサンプルが含まれています。GASADK との連携も紹介されています。
主な機能
- 01Google Apps Script で構築する MCP サーバー
- 02initialize、tools/list、prompts/list、tools/call に対応
- 03LockService による同時実行制御(任意)
- 04スプレッドシートへのログ記録
- 05BeforeTool と AfterTool のフックに対応
活用シーン
- 01Gemini CLI から呼び出す MCP サーバーを GAS で構築する
- 02GAS で MCP クライアントや MCP ネットワークを構築する
- 03デバッグのために MCP メッセージをシートに記録する
MCP 対応
MCPApp は Google Apps Script 上で MCP サーバー側を実装し、Gemini CLI などの MCP クライアントにツールやプロンプトを提供します。クライアントの構築にも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCPApp
🚀 特別なお知らせ:GASADK と統合されました!
MCPApp は完全にサポートされるようになり、GASADK(Google Apps Script Agent Development Kit)から直接利用できます。GASADK は、Google Apps Script で強力なマルチエージェントシステムを構築し、MCP ツールをシームレスに活用するための包括的なフレームワークです。
👉 開発をさらに進めるため、GitHub の GASADK をご覧ください!
概要
Model Context Protocol(MCP) は、AI アプリケーションが外部システムやデータソースにシームレスかつ安全に接続できるようにする、ユニバーサルアダプターとして機能する新たな標準です。MCP の主な目的は、AI モデルが複雑なタスクを実行するうえで不可欠な、コンテキストに応じた関連情報を要求して受け取るための標準化された方法を提供することです。
このリポジトリでは、次の 2 つの方向性を紹介します。
- Gemini CLI やその他の MCP クライアント向けに Google Apps Script で構築された MCP サーバー。
- Google Apps Script で構築された MCP ネットワーク。
MCP サーバーをテストするための curl コマンドの例
initialize
curl -L "<YOUR_MCP_SERVER_URL>" -d '{"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"sample-mcp-client","version":"0.0.0"}},"jsonrpc":"2.0","id":0}'
tools/list
curl -L "<YOUR_MCP_SERVER_URL>" -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
prompts/list
curl -L "<YOUR_MCP_SERVER_URL>" -d '{"jsonrpc":"2.0","id":1,"method":"prompts/list","params":{}}'
tools/call
curl -L "<YOUR_MCP_SERVER_URL>" -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"<TOOL_NAME>","arguments":{<ARGUMENTS_FOR_TOOL>}}}'
ライセンス
作者
更新履歴
-
v1.0.0(May 8, 2025)
- 初回リリースです。
-
v1.0.1(May 9, 2025)
- ログ記録に関するバグを修正しました。
-
v1.0.2(May 29, 2025)
- v1.0.2から、MCPAppをライブラリとして使用するためのLockServiceが提供されます。
-
v2.0.0(June 12, 2025)
- v2.0.0から、MCPクライアントとMCPサーバーの両方をGoogle Apps Scriptで構築できるようになりました。
-
v2.0.1(June 18, 2025)
- バグを修正しました。
-
v2.0.2(June 19, 2025)
- バグを修正しました。
-
v2.0.3(July 1, 2025)
- バグを修正しました。
-
v2.0.4(July 2, 2025)
- バグを修正しました。
-
v2.0.5(July 31, 2025)
- バグを修正しました。
-
v2.0.6(August 1, 2025)
prompts/getメソッドを更新しました。
-
v2.0.7(August 6, 2025)
- v2.0.7から、LockServiceを選択して有効または無効にできるようになりました。
- デフォルトでは、このライブラリはLockServiceを有効にして動作します。無効にするには、
return new MCPApp.mcpApp({ accessKey: "sample" })をreturn new MCPApp.mcpApp({ accessKey: "sample", lock: false })に変更するだけです。 - LockServiceを無効にした場合(
lock: false)、Gemini CLIなどのクライアントからの非同期リクエストの処理速度が向上する可能性があります。ただし、同時リクエストの最大数は30を超えてはなりません。このオプションは慎重に使用してください。
-
v2.0.8(August 6, 2025)
- バグを修正しました。
-
v2.0.10(May 9, 2026)
- MCPAppをリファクタリングしました。
-
v2.0.11(May 9, 2026)
- バグを修正しました。
-
v2.1.0(May 10, 2026)
- バグを修正しました。
-
v2.1.1(May 12, 2026)
- バグを修正しました。
-
v2.1.2(May 12, 2026)
- 修正しました。
-
v2.1.7(May 15, 2026)
- 複数のバグを修正しました。
-
v2.2.0(May 19, 2026)
- MCPサーバーを使用する際に、
const mcpServers = ["mcp-url-1", { "mcp-server-name": { "httpUrl": "https://mcp-url-2", "headers": { "key": "value" } } }]を使用できるようになりました。
- MCPサーバーを使用する際に、
-
v2.3.0(June 10, 2026)
- マルチチャネルのシートログ記録を追加しました。スプレッドシートIDを指定すると、ログは「MCP」シートに保存されます。指定しない場合は、「log」シートが使用されます。ヘッダー
["Date", "Method", "ID", "Direction", "Message"]は書式設定とともに自動作成され、LockServiceのロック下でスレッドセーフにシートが初期化されます。 - デバッグを簡単にするため、エラーメッセージの先頭に
[MCP Server Error]または[MCP Client Error]を付けるよう改善しました。
- マルチチャネルのシートログ記録を追加しました。スプレッドシートIDを指定すると、ログは「MCP」シートに保存されます。指定しない場合は、「log」シートが使用されます。ヘッダー
-
v2.4.0(June 24, 2026)
- デフォルトモデルを
models/gemini-3.1-flash-liteにアップグレードしました。 GasHookManagerとの互換性を統合し、MCPサーバー側でBeforeToolおよびAfterToolフックをサポートしました。
- デフォルトモデルを
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
