概要
インストール
コンテンツ詳細
代替品
MCPサーバーとは?
MCPサーバーは、Model Context Protocol (MCP)を通じてAIモデル(Geminiなど)とやり取りするツールです。AIモデルが外部サービスやAPIを呼び出し、複雑なタスクを実行できるようにします。MCPサーバーの使い方は?
Google Apps ScriptプロジェクトをWebアプリとしてデプロイし、Gemini CLIをこのサーバーに接続するように設定することで、ユーザーは簡単にGeminiにGoogle Workspaceサービス(Gmail、Drive、Calendarなど)を呼び出させることができます。適用シナリオ
日常のタスクの自動化に適しており、カレンダーイベントの管理、メールの送信、ドキュメントやファイルの処理などが挙げられます。AIを利用して生産性を向上させたい開発者や一般ユーザーに適しています。主な機能
使い方
使用例
よくある質問
関連リソース
インストール
{
"theme": "Default",
"selectedAuthType": "###",
"mcpServers": {
"gas_web_apps": {
"command": "npx",
"args": [
"mcp-remote",
"https://script.google.com/macros/s/###/exec?accessKey=sample"
],
"env": {}
}
}
}🚀 Gemini CLIとMCPサーバー:Google Apps Scriptで可能性を拡大
Gemini CLIは、低コードプラットフォームであるGoogle Apps Script (GAS) で構築されたMCPサーバーが、無限の可能性を提供することを確認しました。GAS用のスニペットを作成している場合、これらをMCPサーバーとして使用することで、新たな方法で再活性化および活用することができます。Gemini CLIや他のMCPクライアントは、これを達成するのに役立ちます。
🚀 クイックスタート
概要
Gemini CLIは、GoogleのGeminiモデルとやり取りするための強力なコマンドラインインターフェースを提供します。Model Context Protocol (MCP) を活用することで、CLIにカスタムツールを拡張することができます。本レポートでは、Gemini CLIとGoogle Apps Script Web Appsを使用して構築されたMCPサーバーの統合について探ります。この組み合わせがGoogle Workspace API (Gmail、Drive、Calendarなど) の認証を簡素化し、GeminiがGoogleエコシステム内で直接複雑な多段階タスクを実行できるようにする方法を示します。セットアップ手順と、この統合が自動化と生産性向上に大きな可能性を開くいくつかの実用的な例を提供します。
導入
最近、私は「Google Apps ScriptのWeb Appsで構築されたMCPサーバーを備えたGemini CLI」というタイトルのレポートを公開しました (参照)。この初期レポートでは、Google Apps Script Web Appsを使用して開発されたModel Context Protocol (MCP) サーバーが、Gemini CLI と統合できることを強調しました。
Google Apps Scriptを使用する主な利点の1つは、Google API、特にGoogle Workspace内のAPIに対するシームレスな認証を提供できることです。これにより、Google Workspaceサービスとやり取りするアプリケーションを構築する際の開発オーバーヘッドが大幅に削減されます。
この基盤に基づいて、本レポートでは、Gemini CLIとGoogle Apps Script Web Appsで動作するMCPサーバーを組み合わせたときの拡張された可能性を探ります。この強力な組み合わせがさまざまなツールやサービスの統合を容易にし、Googleエコシステム内で生産性と自動化を向上させる無限の潜在的なアプリケーションを開く方法について詳しく説明します。
現在のツール
現在 (2025年7月17日)、ToolsForMCPServer からMCPサーバー用の以下の41のツールが提供されています。
| ツール名 | 説明 |
|---|---|
get_exchange_rate(currency_date, currency_from, currency_to) |
指定された日付の2つの通貨間の現在の為替レートを取得します。 |
get_current_weather(latitude, longitude, timezone) |
指定された緯度、経度、タイムゾーンの現在の天気を取得します。 |
get_specific_date_weather(date, latitude, longitude, timezone) |
指定された日付、緯度、経度、タイムゾーンの天気を取得します。 |
get_current_date_time(timezone) |
指定されたタイムゾーンの現在の日付と時刻を返します。 |
search_schedule_on_Google_Calendar(end, start, search) |
指定された日付範囲内のGoogle Calendarのスケジュールとイベントを検索します。オプションで検索文字列を指定できます。 |
create_schedule_to_Google_Calendar(description, endDatetime, startDatetime, title) |
指定されたタイトル、説明、開始日時、終了日時でGoogle Calendarにイベント (スケジュール) を作成します。 |
get_values_from_google_docs(documentId, documentUrl, markdown, tabId, tabIndex, tabName) |
Google Docsからテキストコンテンツを取得します。オプションでMarkdown形式で、特定のタブから取得できます。 |
put_values_into_google_docs(documentId, documentUrl, index, tabId, tabIndex, tabName, text) |
Google Docsに指定されたインデックスまたは末尾に、特定のタブにテキストを追加または挿入します。 |
get_google_doc_object_using_docs_api(documentId) |
Docs APIを使用してGoogle Docsオブジェクトを取得します。 |
manage_google_docs_using_docs_api(documentId, requests) |
Docs APIを使用してGoogle Docsを管理します。 |
search_file_in_google_drive(query) |
検索クエリを使用してGoogle Drive内のファイルを検索します。 |
get_file_from_google_drive(filename) |
ファイル名でGoogle Driveからファイルをダウンロードし、Base64エンコードされたデータを返します。 |
put_file_to_google_drive(base64Data, filename, mimeType) |
Base64エンコードされたデータを指定されたファイル名とMIMEタイプでGoogle Driveにファイルとしてアップロードします。 |
create_file_to_google_drive(filename, mimeType) |
指定されたファイル名とMIMEタイプでGoogle Driveに空のファイルを作成します。 |
rename_files_on_google_drive(fileList) |
Google Drive内のファイルをファイルIDと新しい名前を使用して名前を変更します。 |
move_files_on_google_drive(fileList) |
ソースと宛先のIDを使用して、Google Drive内のファイルとフォルダを別のフォルダに移動します。 |
convert_mimetype_of_file_on_google_drive(dstMimeType, fileIds) |
Google Drive内のファイルのMIMEタイプを変換します。 |
change_permission_of_file_on_google_drive |
Google Drive内の特定のファイルまたはフォルダのアクセス許可を指定されたユーザーに変更するために使用します。 |
generate_survey_with_google_forms(itemList, title) |
指定されたタイトルと質問のリストを使用してGoogle Formsでアンケートを生成します。 |
generate_quiz_with_google_forms(itemList, title) |
指定されたタイトルと質問のリスト (正解を含む) を使用してGoogle Formsでクイズを生成します。 |
get_massages_by_time_from_Gmail(after, excludedMessageIds) |
指定された時間以降に受信したGmailメッセージを取得します。オプションで特定のメッセージIDを除外できます。 |
get_massages_by_search_from_Gmail(query, excludedMessageIds) |
検索クエリを使用してGmailメッセージを取得します。オプションで特定のメッセージIDを除外できます。 |
get_attachment_files_from_Gmail(messageId) |
Gmailメッセージから添付ファイルを取得し、そのGoogle DriveファイルIDを返します。 |
add_label_to_Gmail(obj) |
指定されたGmailスレッドにラベルを追加します。 |
auto_reply_draft_creation_Gmail(obj) |
指定されたメッセージに対する自動返信ドラフトメールをGmailで作成します。オプションで添付ファイルを含めることができます。 |
auto_new_draft_creation_Gmail(obj) |
指定された宛先、タイトル、本文、およびオプションの添付ファイルを持つ新しい自動ドラフトメールをGmailで作成します。 |
send_mails_Gmail(draftIds) |
Gmailで以前に作成されたドラフトメールを送信します。 |
remove_mails_Gmail(messageIds) |
指定されたGmailメッセージを削除します。 |
get_values_from_google_sheets(range, sheetId, sheetIndex, sheetName, spreadsheetId, spreadsheetUrl) |
指定された範囲またはシートからGoogle Sheetsの値を取得します。 |
put_values_to_google_sheets(range, sheetId, sheetIndex, sheetName, spreadsheetId, spreadsheetUrl, values) |
指定された範囲またはシートの最後の行にGoogle Sheetsに値を入力します。 |
search_values_from_google_sheets(spreadsheetId, spreadsheetUrl, searchText) |
正規表現を使用してGoogle Spreadsheet内のすべてのセルを検索します。 |
get_google_sheet_object_using_sheets_api(spreadsheetId) |
Sheets APIを使用してGoogle Sheetsオブジェクトを取得します。 |
manage_google_sheets_using_sheets_api(spreadsheetId, requests) |
Sheets APIを使用してGoogle Sheetsを管理します。 |
generate_presentation_with_google_slides(name, presentationTime, text, title) |
指定されたタイトル、講演者名、プレゼンテーション時間、および説明を使用してGoogle Slidesでプレゼンテーションを作成および生成します。 |
get_google_slides_object_using_slides_api(presentationId) |
Slides APIを使用してGoogle Slidesオブジェクトを取得します。 |
manage_google_slides_using_slides_api(presentationId, requests) |
Slides APIを使用してGoogle Slidesを管理します。 |
generate_description_on_google_drive(fileId) |
Google Drive内のファイルの説明を生成し、設定します。 |
generate_image_on_google_drive(prompt) |
プロンプトから画像を生成し、Google Driveにファイルとして保存します。 |
summarize_file_on_google_drive(fileId, prompt) |
指定されたプロンプトに基づいてGoogle Drive内のファイルを要約します。 |
generate_roadmap_to_google_sheets(description, exportPDF, goal, sheetId, sheetIndex, sheetName, spreadsheetId, spreadsheetUrl) |
Google Sheetsにロードマップを生成し、オプションでPDFとしてエクスポートできます。 |
description_web_site(urls) |
URLを使用してWebサイトを説明します。 |
使用方法
このセクションでは、Google Apps Scriptを使用してMCPサーバーをデプロイし、Gemini CLIをそれを使用するように構成する方法を詳しく説明します。
MCPサーバーの準備
1. Google Apps Scriptプロジェクトの作成
まず、新しいスタンドアロンのGoogle Apps Scriptプロジェクトを作成します。スタンドアロンプロジェクトは特定のGoogleシート、ドキュメント、またはフォームにバインドされていないため、汎用的なWebサービスを作成するのに最適です。script.google.com にアクセスして作成できます。参照
2. ライブラリのインストール
MCPサーバーの構築を簡素化するために、事前に構築されたGoogle Apps Scriptライブラリを使用します。これらは複雑なMCP処理ロジックをカプセル化し、すぐに使用できるツールを提供し、メインスクリプトをクリーンに保ちます。
このサンプルでは、2つのGoogle Apps Scriptライブラリを使用します。
- MCPApp:MCPサーバーのライフサイクルと通信プロトコルを管理します。
- ToolsForMCPServer:Google Workspaceサービス (Gmail、Drive、Calendarなど) とやり取りするための一連の事前構築されたツールを提供します。
ライブラリプロジェクトキーとインストール
- 作成したばかりのプロジェクトのスクリプトエディタを開きます。
- MCPAppのインストール:
- インストールガイド
- プロジェクトキー:
1TlX_L9COAriBlAYvrMLiRFQ5WVf1n0jChB6zHamq2TNwuSbVlI5sBUzh - 識別子:
MCPApp - リポジトリ: https://github.com/tanaikech/MCPApp
- ToolsForMCPServerのインストール:
- インストールガイド
- プロジェクトキー:
1lnE7UL1jQgPDbTB9yjhiwZM0SaS9MObhzvWUWb_t8FisO6A3bLepvM2j - 識別子:
ToolsForMCPServer - リポジトリ: https://github.com/tanaikech/ToolsForMCPServer
3. スクリプト
以下のスクリプトをスクリプトエディタにコピーして貼り付け (既存のコードを置き換え)、プロジェクトを保存してください。
これはこのライブラリを使用する基本的なスクリプトです。
const apiKey = "###"; // Gemini APIのAPIキー
/**
* この関数は、MCPクライアントがWeb Appsにアクセスしたときに自動的に実行されます。
*/
const doPost = e => main(e);
function main(eventObject) {
const m = ToolsForMCPServer;
m.apiKey = apiKey;
const object = { eventObject, items: m.getTools() };
return new MCPApp
.mcpApp({ accessKey: "sample" })
.setServices({ lock: LockService.getScriptLock() })
.server(object);
}
⚠️ 重要提示
- 以下のツールを使用する場合は、スクリプト内の
apiKey行のコメントを解除し、Gemini APIの有効なAPIキーを提供する必要があります。
- generate_roadmap_to_google_sheets: Google Sheetsにロードマップを作成します。
- generate_description_on_google_drive: Google Drive内のファイルの説明を生成し、設定します。
- generate_image_on_google_drive: プロンプトから画像を生成し、Google Driveに保存します。
- summarize_file_on_google_drive: Google Driveに保存されているファイルを要約します。
- description_web_site: URLを指定してWebサイトの説明を提供します。
- Drive APIに関連するエラーが発生した場合は、Advanced Google servicesでDrive APIを有効にしてください。
- APIのバッチ更新メソッドを使用してDocs、Sheets、およびSlidesを管理する場合は、Advanced Google servicesでDocs API、Sheets API、およびSlides APIを有効にしてください。
すべてのツールを表示
このスクリプトを実行すると、このライブラリ内のすべてのツールがJSONオブジェクトとして表示されます。
function showAlltools() {
const res = ToolsForMCPServer.getToolList();
console.log(res);
}
ツールをフィルタリング
特定のツールを使用したい場合は、以下のスクリプトも使用できます。
このスクリプトは get_exchange_rate ツールのみを使用します。
function main(eventObject) {
const enables = ["get_exchange_rate"];
const m = ToolsForMCPServer;
m.apiKey = apiKey;
const object = { eventObject, items: m.getTools({ enables }) };
return new MCPApp
.mcpApp({ accessKey: "sample" })
.setServices({ lock: LockService.getScriptLock() })
.server(object);
}
このスクリプトは get_exchange_rate ツールを除くすべてのツールを使用します。
function main(eventObject) {
const disables = ["get_exchange_rate"];
const m = ToolsForMCPServer;
m.apiKey = apiKey;
const object = { eventObject, items: m.getTools({ disables }) };
return new MCPApp
.mcpApp({ accessKey: "sample" })
.setServices({ lock: LockService.getScriptLock() })
.server(object);
}
4. Web Appsのデプロイ
Gemini CLIが私たちのスクリプトと通信できるようにするには、それをWeb Appとしてデプロイする必要があります。これにより、MCPサーバーのエンドポイントとして機能する一意のURLが作成されます。
詳細情報は公式ドキュメントを参照してください。
スクリプトエディタでWeb Appをデプロイするには、以下の手順に従ってください。
- スクリプトエディタの右上で、「Deploy」 -> 「New deployment」をクリックします。
- 「Select type」 -> 「Web App」をクリックします。
- 「Deployment configuration」の下のフィールドにWeb Appの説明を入力します。
- 「Execute as」に「Me」を選択します。これは、スクリプトがあなたの権限で実行され、あなたのGoogleサービスにアクセスできるようにするために重要です。
- 「Who has access」に「Anyone」を選択します。これにより、URLがインターネットから呼び出せるようになります。アクセスは推測できないURLとスクリプト内で定義された
accessKeyによって制御されます。 - 「Deploy」をクリックします。
- 必要なスコープの承認後、「Web app URL」をコピーします。これは
https://script.google.com/macros/s/###/execのような形式になります。これがあなたのMCPサーバーのエンドポイントです。
⚠️ 重要提示
Apps Scriptコードを変更した場合は、変更を公開するために新しいデプロイバージョンを作成する必要があります。「Deploy」 > 「Manage deployments」をクリックし、アクティブなデプロイを選択し、鉛筆アイコンをクリックし、「Version」ドロップダウンから「New version」を選択します。詳細情報はこちら
Gemini CLIの準備
1. Gemini CLIのインストール
公式ドキュメントに従って、システムにGemini CLIをインストールしてください。参照
2. settings.json の編集
Gemini CLIを新しいApps Scriptサーバーに接続するには、その設定ファイルを編集する必要があります。このファイルは通常、macOS/Linuxでは ~/.gemini/settings.json、Windowsでは %USERPROFILE%\.gemini\settings.json にあります。
以下に示すように mcpServers 構成ブロックを追加します。
https://script.google.com/macros/s/###/execを先ほどコピーしたWeb App URLに置き換えます。accessKeyクエリパラメータがGoogle Apps Script内で定義したaccessKey(sampleの場合) と一致することを確認します。
{
"theme": "Default",
"selectedAuthType": "###",
"mcpServers": {
"gas_web_apps": {
"command": "npx",
"args": [
"mcp-remote",
"https://script.google.com/macros/s/###/exec?accessKey=sample"
],
"env": {}
}
}
}
"gas_web_apps":サーバーのローカル識別子。"command"と"args":これらはGemini CLIにmcp-remoteツールを呼び出す方法を指示します。このツールはWeb App URLとの通信を処理します。
mcp-remote をまだインストールしていない場合は、インストールしてください。参照
3. ファイルコンテンツの転送 (2025年7月9日追加)
最近、私は「Google Apps Scriptで構築されたMCPサーバーを備えたGemini CLIを使用したファイルコンテンツの処理」というタイトルのレポートを公開しました 参照。このレポートでは、Gemini CLIとGoogle Drive間のファイルコンテンツの転送には、プロンプトにBase64データを直接埋め込むよりも、バックグラウンドでDrive APIを使用する方が効果的であると結論付けました。したがって、この効果的な転送を容易にするために、CLIツールである ggsrun を使用します。
3.1. ggsrun のセットアップガイド
この方法を使用するには、まず ggsrun をセットアップする必要があります。
ggsrunのダウンロード:ggsrunのリリースページ から最新のリリースを取得します。メインリポジトリはこちらです。- Google Cloudプロジェクトの作成:Google Cloud Platform Resource Manager にアクセスし、「CREATE PROJECT」をクリックします。
- Drive APIの有効化:新しいプロジェクトで、「APIs & Services > Enabled APIs & Services」に移動します。「Drive API」を検索して有効にします。
- 認証情報の作成:「APIs & Services > Credentials」に移動します。
- OAuthクライアントIDの構成:「Create credentials」をクリックし、「OAuth client ID」を選択し、「Web Application」を選択します。
- リダイレクトURIの設定:「Authorized redirect URIs」の下に
http://localhost:8080を追加します。 - 認証情報の作成とダウンロード:「Create」をクリックし、「Download JSON」をクリックします。重要: ダウンロードしたファイルを
client_secret.jsonに改名し、作業ディレクトリに配置してください。 ggsrunの認証:- 8-1.
client_secret.jsonが含まれるディレクトリでターミナルを開きます。 - 8-2.
ggsrun authコマンドを実行します。 - 8-3. ターミナルに表示されるURLをコピーし、ブラウザに貼り付け、要求されたスコープを承認します。
- 8-4. ブラウザのアドレスバーから認証コードをコピーし、ターミナルに貼り付けます。
- 8-1.
セットアップを確認するには、ggsrun di を実行してGoogle Driveの情報を表示します。
3.2. ggsrun 用のGemini CLIの構成
Gemini CLIが ggsrun を使用できるようにするには、GEMINI.md ファイルに以下のツール定義を追加します。このファイルは通常、macOS/Linuxでは ~/.gemini/GEMINI.md、Windowsでは %USERPROFILE%\.gemini\GEMINI.md にあります。
# ggsrunを使用したローカルPCとGoogle Drive間のファイルコンテンツの転送
* GitHubリポジトリ: [https://github.com/tanaikech/ggsrun](https://github.com/tanaikech/ggsrun)
* ファイル名でGoogle Driveからファイルをダウンロードするには、このコマンドを使用します。
```bash
ggsrun d -f [filename]
- ファイルIDでGoogle Driveからファイルをダウンロードするには、このコマンドを使用します。
ggsrun d -i [fileId] - ローカルPCからGoogle Driveのルートディレクトリにファイルをアップロードするには、このコマンドを使用します。
ggsrun u -f "[filename1],[filename2],,," - ローカルPCからGoogle Driveの特定のディレクトリにファイルをアップロードするには、このコマンドを使用します。
ggsrun u -p [folderId] -f "[filename1],[filename2],,," - Google Drive上のファイルとフォルダを検索するには、このコマンドを使用します。
ggsrun sf -q "[Drive API v3の検索クエリ ([https://developers.google.com/workspace/drive/api/guides/search-shareddrives](https://developers.google.com/workspace/drive/api/guides/search-shareddrives))]" - Google Drive上のファイルとフォルダを検索するには、このコマンドを使用します。
ggsrun ls -s [filename]
### サンプルのプロンプトと回答
以下の例は、Gemini CLIがGoogle Apps Script MCPサーバーを使用してさまざまなGoogleサービスとやり取りする方法を示しています。
#### 接続されたMCPサーバーの確認
このコマンドは、構成されたすべてのMCPサーバーとそれらが提供するツールをリストします。
**プロンプト**
```text
> /mcp
設定が正しい場合、以下の結果が返されます。 回答
ℹ 構成されたMCPサーバー:
🟢 gas_web_apps - 準備完了 (41のツール)
- get_exchange_rate
- get_current_weather
- get_specific_date_weather
- get_current_date_time
- search_schedule_on_Google_Calendar
- create_schedule_to_Google_Calendar
- get_values_from_google_docs
- put_values_into_google_docs
- get_google_doc_object_using_docs_api
- manage_google_docs_using_docs_api
- search_file_in_google_drive
- get_file_from_google_drive
- put_file_to_google_drive
- create_file_to_google_drive
- rename_files_on_google_drive
- move_files_on_google_drive
- convert_mimetype_of_file_on_google_drive
- change_permission_of_file_on_google_drive
- generate_survey_with_google_forms
- generate_quiz_with_google_forms
- get_massages_by_time_from_Gmail
- get_massages_by_search_from_Gmail
- get_attachment_files_from_Gmail
- add_label_to_Gmail
- auto_reply_draft_creation_Gmail
- auto_new_draft_creation_Gmail
- send_mails_Gmail
- remove_mails_Gmail
- get_values_from_google_sheets
- put_values_to_google_sheets
- search_values_from_google_sheets
- get_google_sheet_object_using_sheets_api
- manage_google_sheets_using_sheets_api
- generate_presentation_with_google_slides
- get_google_slides_object_using_slides_api
- manage_google_slides_using_slides_api
- generate_description_on_google_drive
- generate_image_on_google_drive
- summarize_file_on_google_drive
- generate_roadmap_to_google_sheets
- description_web_site
Google Drive内のファイルを検索する
プロンプト
Google Driveから「sample file」というファイル名のファイルを検索してください。
回答
✔ search_file_in_google_drive (gas_web_apps MCPサーバー) {"query":"name = 'sample file'"}
✦ Google Drive上で「sample file」という名前のファイルを見つけました。これはGoogleシートで、以下がそのリンクです。
https://docs.google.com/spreadsheets/d/###/edit?usp=drivesdk
説明
Geminiは要求を解釈し、gas_web_apps MCPサーバーから search_file_in_google_drive ツールを選択しました。適切なGoogle Drive検索クエリ (name = 'sample file') を構築し、Google Apps Scriptを介して検索を実行し、ファイルメタデータを返しました。
Google Calendarからスケジュールを表示する
プロンプト
今日のスケジュールを教えてください。
回答
✔ search_schedule_on_Google_Calendar (gas_web_apps MCPサーバー) {"start":"2025-07-03","end":"2025-07-03"}
✦ 2025年7月3日の今日、あなたには2つのイベントがあります。
- 12:00 PM - 1:00 PM: 「sample event 1」 (ランチ) 品川駅で。
- 7:00 PM - 8:00 PM: 「sample event 2」 (ディナー) 大阪駅で。
説明
モデルは search_schedule_on_Google_Calendar ツールを使用し、「今日」の正しい開始日と終了日を自動的に決定しました。MCPサーバーはGoogle Calendarからイベントを取得し、Geminiは結果を要約しました。
今日のメールを表示する
プロンプト
今日、tanaike@hotmail.comからのメールを教えてください。
回答
✔ get_messages_by_search_from_Gmail (gas_web_apps MCPサーバー) {"query":"from:tanaike@hotmail.com after:2025/07/03"}
✦ 今日、tanaike@hotmail.comからのメールは以下の通りです。
1. 差出人: Tanaike Kanshi <tanaike@hotmail.com>
件名: sample mail 2
本文: これは2番目のサンプルメールです。
2. 差出人: Tanaike Kanshi <tanaike@hotmail.com>
件名: sample mail 1
本文: これは1番目のサンプルメールです。
説明
Geminiは get_messages_by_search_from_Gmail ツールを利用し、プロンプトの制約を満たす適切なGmail検索クエリ (from:tanaike@hotmail.com after:2025/07/03) を作成しました。
メールを送信する
プロンプト
友人のTanaikeからお土産をもらいました。彼に感謝するメールを作成してください。Tanaikeのメールアドレスはtanaike@hotmail.comです。
回答
✔ auto_new_draft_creation_Gmail (gas_web_apps MCPサーバー) {"obj":[{"body":"Dear Tanaike,\n\nThank you so much for the wonder…
ドラフトメールが正常に作成されました。ドラフトIDは「r-###」です。
✔ send_mails_Gmail (gas_web_apps MCPサーバー) {"draftIds":["r-###"]}
「お土産に感謝します!」というメッセージが正常に送信されました。
✦ すでにTanaikeにお土産に感謝するメールを送信しました。
以下のメールが自動的にtanaike@hotmail.comに送信されました。
Dear Tanaike,
Thank you so much for the wonderful souvenir! I really appreciate your
thoughtfulness.
Best regards,
Kanshi Tanaike
説明
このプロンプトには2つのステップが必要でした。まず、Geminiは auto_new_draft_creation_Gmail を使用してメールコンテンツを生成し、MCPサーバーを介してGmail内にドラフトを作成しました。次に、すぐに send_mails_Gmail ツールを使用し、最初のステップのドラフトIDを渡してメールを送信しました。
天気を確認し、Google Calendarにスケジュールを作成する
この例は、Web検索と複数のMCPツールを含む複雑なオーケストレーションを示しています。このプロンプトはこの参照にあるものと似ています。参照 プロンプト
明日の12時に品川駅周辺の天気状況を確認し、100米ドルを日本円に両替してください。この条件下で、取得した場所と日にちに、1時間外でランチを楽しむことができますか?最後に、それをGoogle Calendarにスケジュールとして作成してください。
回答
✔ GoogleSearch ウェブで「品川駅の緯度と経度」を検索しています。
「品川駅の緯度と経度」の検索結果が返されました。
✔ get_current_date_time (gas_web_apps MCPサーバー) {"timezone":"Asia/Tokyo"}
現在の日付と時刻は「2025-07-03 11:04:42」です。タイムゾーンは「Asia/Tokyo」です。
✔ get_exchange_rate (gas_web_apps MCPサーバー) {"currency_from":"USD","currency_to":"JPY"}
APIからの生データは {"amount":1.0,"base":"USD","date":"2025-07-02","rates":{"JPY":144.15}} です。詳細な結果は以下の通りです。最新の「USD」から「JPY」への通貨レートは144.15です。
✔ get_current_weather (gas_web_apps MCPサーバー) {"date":"2025-07-04 12:00","longitude":139.73917,"latitude":35.62861,"timezo…
主に晴れ、一部曇り、そして曇り
✦ 明日の12時に品川駅周辺の天気は、主に晴れ、一部曇り、そして曇りになる見込みです。100米ドルの為替レートは14415日本円 (1 USD = 144.15 JPY) です。
天気状況を考えると、外でランチを楽しむのは楽しいかもしれませんが、曇る可能性もあります。
✔ create_schedule_to_Google_Calendar (gas_web_apps MCPサーバー) {"description":"品川駅でのランチ。天気: 主に晴れ、一部曇り、そして曇り。為替レート: 1 USD = 144.15 JPY。…
イベントが作成されました。開始: 2025-07-04 12:00:00、終了: 2025-07-04 13:00:00、タイトル: 品川駅での屋外ランチ、説明: 品川駅でのランチ。天気: 主に晴れ、一部曇り、そして曇り。為替レート: 1 USD = 144.15 JPY。
✦ 2025年7月4日の明日、12:00 PMから1:00 PMまでの品川駅での屋外ランチのスケジュールがGoogle Calendarに作成されました。説明には天気予報 (主に晴れ、一部曇り、そして曇り) と為替レート (1 USD = 144.15 JPY) が含まれています。
以下のイベントが自動的にGoogle Calendarに作成されました。
日付: 2025年7月4日、12:00 PMから1:00 PMまで
タイトル: 品川駅での屋外ランチ
説明: 品川駅でのランチ。天気: 主に晴れ、一部曇り、そして曇り。為替レート: 1 USD = 144.15 JPY。
説明
これには複雑な一連のアクションが含まれていました。
- Geminiは標準の
GoogleSearchを使用して品川駅の緯度と経度を見つけました。 get_current_date_timeMCPツールを使用して日付を確立しました。get_exchange_rateを使用してUSDからJPYへの換算レートを見つけました。get_current_weatherを使用し、ステップ1で見つけた座標と日付/時刻を入力しました。- Geminiはこの情報を合成して、ランチを楽しむかどうかの定性的な質問に答えました。
- 最後に、
create_schedule_to_Google_Calendarを使用し、取得した天気と為替レート情報をイベント説明に埋め込みました。
既存のGoogleドキュメント (またはスプレッドシート) にテキストを追加する
プロンプト
「sample document 20250703」というドキュメントに以下のテキストを追加してください。
<Text>
sample text 1
sample text 2
sample text 3
sample text 4
sample text 5
</Text>
回答
✔ search_file_in_google_drive (gas_web_apps MCPサーバー) {"query":"sample document 20250703"}
"isError": true
✔ search_file_in_google_drive (gas_web_apps MCPサーバー) {"query":"name = 'sample document 20250703'"}
1つのファイルが見つかりました。
✔ put_values_into_google_docs (gas_web_apps MCPサーバー) {"text":"sample text 1\nsample text 2\nsample text 3\nsample text 4\…
テキストがGoogle Docsに正常に追加されました。
✦ テキストが「sample document 20250703」というドキュメントに正常に追加されました。
説明
この例は、Geminiがツールを使用する際に自己修正する能力を示しています。
- 最初に、Geminiは無効なクエリ形式 (
{"query":"sample document 20250703"}) を使用してGoogle Driveを検索しようとしました。MCPサーバーはエラーを返しました ("isError": true)。 - Geminiは失敗を認識し、
search_file_in_google_driveツールを自動的に再試行し、今度は有効なDrive APIクエリ形式 ({"query":"name = 'sample document 20250703'"}) を使用しました。 - ファイルが見つかったら、
put_values_into_google_docsを使用して提供されたテキストを追加しました。
新しいGoogleドキュメントを作成し、テキストを追加する
プロンプト
新しいGoogleドキュメントを作成し、以下のテキストをGoogleドキュメントに入力してください。
<Text>
sample text 1
sample text 2
sample text 3
sample text 4
sample text 5
</Text>
回答
✔ create_file_to_google_drive (gas_web_apps MCPサーバー) {"mimeType":"application/vnd.google-apps.document","filename":"New D…
ルートフォルダにファイルが作成されました。ファイルのURLは「https://docs.google.com/document/d/###/edit?usp=drivesdk」です。
✔ put_values_into_google_docs (gas_web_apps MCPサーバー) {"documentId":"###","text":…
テキストがGoogle Docsに正常に追加されました。
✦ 「New Document 2025-07-03」という名前の新しいGoogleドキュメントを作成し、指定されたテキストを入力しました。
説明
これには2つの連続したツールが必要でした。まず、create_file_to_google_drive を使用して新しいドキュメントを作成しました。Geminiは自動的に関連するファイル名 ("New Document 2025-07-03") を割り当てました。次に、put_values_into_google_docs を使用して、新しく作成されたドキュメントIDにテキストを挿入しました。
プレゼンテーションを生成する
このアイデアとサポートするスクリプトは、「自動化されたGoogleスライドプレゼンテーションのためのGeminiとGoogle Apps Scriptの統合」に基づいています。参照 プロンプト
3分間のプレゼンテーションを作成してください。タイトルは「味噌汁の作り方」にします。私の名前はTanaikeです。プレゼンテーションの目的は、美味しい味噌汁の作り方を説明することです。
回答
✔ generate_presentation_with_google_slides (gas_web_apps MCPサーバー) {"name":"Tanaike","text":"このプレゼンテーションでは、…
プレゼンテーションが正常に作成されました。URLは「https://docs.google.com/open?id=###」です。
✦ 「味噌汁の作り方」というプレゼンテーションが作成されました。以下のURLからアクセスできます。
https://docs.google.com/open?id=###
以下のプレゼンテーションが自動的にGoogleスライドで生成されました。
説明
Gemini CLIは要求パラメータをMCPサーバー上の generate_presentation_with_google_slides ツールに渡しました。Google Apps Script内のこの特定のツールは内部的にGemini APIを使用し (セットアップで言及したAPIキーが必要)、スライドコンテンツと構造を生成し、次にSlidesサービスを使用してプレゼンテーションを作成します。
Google Formsを使用してアンケートを生成し、URLをメールで送信する
このアイデアとスクリプトは、「自動化された質問と回答のためのGeminiとGoogle Apps Scriptの組み合わせ: 新しい学習アプローチ」から適応されています。参照 プロンプト
好きな日本食に関するアンケートを実施したいです。あなたの使命は以下の通りです。
* Google Formsを使用してアンケートを生成してください。
* Google Formsの公開URLを含むメールをtanaike@hotmail.comに送信してください。
* メールの件名は「あなたの好きな日本食に関するアンケートの依頼」にしてください。
* 件名からメールの本文を作成してください。
回答
✔ generate_survey_with_google_forms (gas_web_apps MCPサーバー) {"title":"Favorite Japanese Foods Survey","itemList":[{"requir…
アンケートがGoogle Formsとして正常に生成されました。フォームの編集URLと公開URLはそれぞれ「https://docs.google.com/forms/d/###/edit」と「https://docs.google.com/forms/d/e/#####/viewform」です。
✔ auto_new_draft_creation_Gmail (gas_web_apps MCPサーバー) {"obj":[{"body":"あなたの好きな日本食に関するアンケートの依頼…
ドラフトメールが正常に作成されました。ドラフトIDは「r###」です。
✔ send_mails_Gmail (gas_web_apps MCPサーバー) {"draftIds":["r###"]}
「あなたの好きな日本食に関するアンケートの依頼」というメッセージが正常に送信されました。
✦ アンケートを正常に生成し、Google Formsの公開URLを含むメールをtanaike@hotmail.comに送信しました。
以下のアンケートが自動的にGoogle Formsで生成されました。
そして、以下のメールが tanaike@hotmail.com に送信されました。
メールタイトル:
あなたの好きな日本食に関するアンケートの依頼
メール本文:
あなたの好きな日本食に関するアンケートの依頼
こちらがアンケートのリンクです。https://docs.google.com/forms/d/e/#####/viewform
説明
これにはFormsとGmailを統合する3つのステップが必要でした。
generate_survey_with_google_formsがフォームを作成し、公開URLを返しました。auto_new_draft_creation_Gmailがメールドラフトを作成し、ステップ1のURLを組み込みました。send_mails_Gmailがドラフトメールを送信しました。
Google Formsを使用してクイズを生成する
このアイデアとスクリプトは、「自動化された質問と回答のためのGeminiとGoogle Apps Scriptの組み合わせ: 新しい学習アプローチ」から適応されています。参照 プロンプト
初心者向けのGoogle Apps Script学習用の複数選択式クイズの質問と回答を5つ提案してください。これらの質問を使用してGoogle Formsでクイズを生成してください。各質問の選択肢の数は5つです。クイズのタイトルは「Google Apps Scriptの学習」です。
回答
✔ generate_quiz_with_google_forms (gas_web_apps MCPサーバー) {"title":"Learning Google Apps Script","itemList":[{"required":t…
クイズがGoogle Formsとして正常に生成されました。フォームの編集URLと公開URLはそれぞれ「https://docs.google.com/forms/d/###/edit」と「https://docs.google.com/forms/d/e/#####/viewform」です。
✦ 「Learning Google Apps Script」というクイズがGoogle Formsで生成されました。
* 編集URL: https://docs.google.com/forms/d/###/edit
* 公開URL: https://docs.google.com/forms/d/e/#####/viewform
以下のクイズが自動的にGoogle Formsで生成されました。
説明
Geminiはプロンプトの要件に基づいて必要な質問、選択肢、および正解を生成し、次にこのデータを generate_quiz_with_google_forms ツールに必要なパラメータに構造化し、Googleフォームを作成しました。
以下のサンプルは2025年7月9日に追加されました。
Google Driveから画像をダウンロードする
この例では、ggsrun CLIツールを使用してGoogle Driveから画像ファイルをダウンロードします。
プロンプト
ggsrunを使用してGoogle Driveから「sample.png」というファイルをダウンロードしてください。
回答
✔ Shell ggsrun d -f sample.png (Google Driveから「sample.png」をダウンロードする。)
{"id":"###","name":"sample.png",,,
✦ 「sample.png」というファイルがダウンロードされました。
説明
このプロンプトが実行されると、ggsrun CLIツールを使用してGoogle Driveから sample.png ファイルがダウンロードされます。
ウェブサイトから画像ファイルをダウンロードし、Google Driveにアップロードする
この例では、シェルコマンドを使用してウェブサイトから画像ファイルをダウンロードし、ggsrun CLIツールを使用してGoogle Driveにアップロードします。
プロンプト
画像 https://www.gstatic.com/marketing-cms/assets/images/7e/a4/253561a944f4a8f5e6dec4f5f26f/gemini.webp=s96-fcrop64=1,00000000ffffffff-rw は公式ブランドリソースセンターのGeminiアイコンです。参照
「https://www.gstatic.com/marketing-cms/assets/images/7e/a4/253561a944f4a8f5e6dec4f5f26f/gemini.webp=s96-fcrop64=1,00000000ffffffff-rw」というURLから画像をダウンロードし、ggsrunを使用してGoogle Driveにアップロードしてください。
回答
✔ Shell wget -O /home/adsam/temp/workspace/gemini.webp "https://www.gstatic.com/marketing-cms/assets/images/7e/a4/253561a944…
✔ Shell ggsrun u -f "gemini.webp" (ダウンロードした画像をggsrunを使用してGoogle Driveにアップロードする。)
Error: Extension of '.webp' cannot be uploaded.
✔ Shell convert /home/adsam/temp/workspace/gemini.webp /home/adsam/temp/workspace/gemini.png (ダウンロードした.webp画像を変換する...)
✔ Shell ggsrun u -f "gemini.png" (変換した.png画像をggsrunを使用してGoogle Driveにアップロードする。)
{"upload_file_name":["gemini.png"],"uploaded_files":[{"id":"###","name":"gemini.png","mimeType":"image/png",,,
✦ 画像がURLから正常にダウンロードされ、PNG形式に変換され、Google Driveにアップロードされました。
説明
このプロンプトが実行されると、以下のステップが実行されます。
wgetを使用して画像ファイルがダウンロードされます。ggsrunで.webpファイルをアップロードしようと
代替品








