Gemini CLIにカスタムツールまたは拡張機能を追加するために、主要なメカニズムは、Gemini CLIがサポートするモデルコンテキストプロトコル(MCP)とカスタムエクステンションを使用することです。以下は、Gemini CLIにカスタムツールまたは拡張機能を追加するための重要な側面と手順を備えた詳細なガイドです。
MCP経由のカスタムツールを使用してGemini CLIを拡張します
Gemini CLIは、モデルコンテキストプロトコル(MCP)を介して拡張できるように設計されています。 MCPは、外部サービスと機能(ツール)をGemini CLIに接続する標準化された方法として機能します。 MCPサーバーを構成することにより、Gemini CLIはこれらの外部ツールをAI駆動型のコマンドと推論ワークフローにシームレスに統合できます。
-MCPサーバーのセットアップ:
まず、Gemini CLI SettingsファイルにMCPサーバーを構成することから始めます。通常、「〜/.gemini/settings.json」で見つかります。このJSONファイルは、必要に応じて接続の詳細と認証を含む、接続するMCPサーバーを構成します。
- 既存またはカスタムMCPサーバーの使用:
GitHub、Gitlab、Firebase、データベース、メディア生成などの一般的なサービスとの多くの既存のMCPサーバーインターフェイス。真にカスタム機能のために、PythonやTypeScriptなどの言語で利用可能なMCP SDKを使用して、独自のMCPサーバーを作成できます。これにより、MCPサーバーとしてカスタムロジックまたはツールをホストすることができます。
- MCPサーバーの構成:
`settings.json`ファイルでは、MCPサーバーは、名前、サーバータイプ、接続コマンドまたはURL、認証用のトークン、および特殊なパラメーターで定義されています。構成されると、Gemini CLIはスタートアップ時にこれらのサーバーに接続します。
- ツールの発見と使用:
接続後、MCPサーバーはGemini CLIが自動的に発見するツールを公開します。これらのツールは、「/MCP」や「/MCP DESC」などのコマンドを使用してリストして説明できます。 AIエージェントは、それらを意思決定と実行フローにネイティブに統合し、手動介入なしにユーザープロンプトに基づいて必要に応じてツールを選択します。
Gemini CLI拡張機能の作成
MCPサーバーを超えて、Gemini CLIは拡張機能と呼ばれる高レベルの概念をサポートします。これは、Gemini CLI機能を拡張するためにMCPサーバー、コンテキストファイル、およびカスタムコマンドをバンドルします。
- 拡張場所:
拡張機能は、 `/.gemini/extensions/`または `/.gemini/extensions/`の2つの主要な場所に存在します。 GEMINI CLIは、スタートアップの両方の場所にあるすべての拡張機能をロードします。名前の競合が発生した場合、ワークスペース固有の拡張機能がホームディレクトリバージョンをオーバーライドします。
- 拡張構造:
各拡張子は、 "gemini-extension.json`という名前の構成ファイルを含む拡張機能(例えば、「my-extension」など)にちなんで名付けられたディレクトリです。このJSONには、メタデータとサーバーの構成が含まれます。
-gemini-extension.jsonコンテンツ:
このファイルの典型的なキーは次のとおりです。
- 「名前」:一意の拡張名。
- 「バージョン」:拡張バージョン。
- `mcpservers`:拡張機能によって構成されたMCPサーバーのマップ、たとえば、カスタムMCPサーバーを起動するコマンド。
- `ContextFileName`:オプション。拡張機能のワークスペースコンテキストとしてロードされたコンテキストファイルの名前は、デフォルトで `gemini.md`になります。
- 「excludetools」:除外するツールまたはツールコマンドを指定する配列、危険または望ましくない操作をブロックするのに役立ちます。
- 拡張機能のカスタムコマンド:
拡張機能は、拡張機能ディレクトリ内の `コマンド/`サブディレクトリ内に「.toml」コマンド定義ファイルを配置することにより、カスタムスラッシュコマンドを提供できます。これらのコマンドは、ユーザーまたはプロジェクト固有のコマンドと同様に定義されます。
- 動作のマージ:
Gemini CLIが開始すると、拡張機能がユーザーのメイン設定と組み込みツールと統合され、ワークスペースの設定が優先されることで競合を解決します。
TOMLファイルを使用してカスタムスラッシュコマンドを作成します
再利用可能なコマンド(ツール)を追加する柔軟な方法は、「.toml」ファイルをカスタムスラッシュコマンドとして使用することです。
- 位置:
Tomlコマンドファイルを `〜/.gemini/commands/`のグローバルコマンドの場合、またはProject-local `.gemini/commands/`ディレクトリに配置します。
-Toml形式:
これらのファイルは、コマンド、プロンプトテンプレートを定義し、「
- 使用法:
これらのコマンドは、「/mycommand」などのスラッシュコマンドを介してジェミニCLIに直接呼び出すことができ、スクリプト化されたワークフローや統合を簡単に有効にします。
###カスタムPythonスクリプトとシェルコマンドを実行します
-GeminiCLIはシェルコマンドとスクリプトの実行をサポートするため、MCPサーバーまたはカスタムコマンドワークフローの一部としてカスタムPythonスクリプトまたはその他のプログラムをトリガーできます。
- たとえば、Gemini CLI応答からPDFを生成するPythonスクリプトは、MCPサーバーにラップしたり、カスタムTOMLコマンドでシェルコマンドとして実行され、1コマンドの生成ワークフローを可能にしたりできます。
IDEと環境との統合
- Gemini CLI extensions can also enhance integration with IDEs like VS Code by sharing workspace context (files, cursor location, selections), enabling AI-driven code assistance workflows.
- 拡張機能とMCPサーバーは、テーラードワークフローをCLIまたはIDE環境に直接統合し、生産性とツールチェーンの柔軟性を向上させるのに役立ちます。
###カスタムツールまたは拡張機能を追加するプロセスの概要
1.カスタムツールの範囲を決定します。
単純なカスタムコマンド、スクリプト、または本格的な外部サービスであるかどうかを判断します。
2。単純なカスタムコマンドの場合:
スラッシュコマンドを定義する `.toml`ファイルを作成し、適切なコマンドフォルダーに配置します。
3。外部サービスまたは複雑なロジックの場合:
標準化されたAPIを介してツール機能を公開するMCP SDK(PythonやTypeScriptなどのサポート言語)を使用してMCPサーバーを開発します。
4。 `settings.json`または拡張子でMCPサーバーを構成します:
MCPサーバー構成エントリ(コマンドまたはURLを使用)をユーザー構成 `〜/.gemini/settings.json`または内側の内部に追加します。
5.オプションで拡張機能にバンドルします。
MCPサーバー、カスタムコマンド、およびコンテキストファイルを `.gemini/extensions/`の下の拡張ディレクトリ構造にパッケージ化します。
6。ジェミニCLIを開始または再起動:
Gemini CLIは、スタートアップですべての構成とMCPサーバーをロードし、カスタムツールを自動統合します。
7。ツールを使用して検証します。
`/mcp`や`/mcp desc`などのコマンドを使用して、ツールの可用性を確認し、カスタム追加と対話します。
###このアーキテクチャの利点
- モジュール性:ツールは個別のMCPサーバーとして実行され、開発が独立してスケーラブルになります。
- 動的統合:ハードコードなしでジェミニCLIワークフローにツールが自動的に表示されます。
- セキュリティと制御:拡張機能は、どのツールまたはシェルコマンドが許可されているかを制限し、誤用を防ぐことができます。
- 再利用性:エクステンションパッケージの完全なワークフロー、プロジェクトまたはチーム間で共有可能。
- コミュニティとエコシステム:多くのMCPサーバーと拡張機能が利用可能であるか、貢献することができ、Gemini CLI機能を急速に拡大します。
このアーキテクチャにより、ほぼすべての外部ツール、スクリプト、またはサービスをGemini CLIエコシステムに統合し、生産性とカスタマイズを強化できます。
***
この回答は、MCPサーバー、拡張パッケージ、カスタムコマンド、スクリプト統合など、Gemini CLIカスタムツールと拡張統合メカニズムの徹底的な説明を提供し、要求された長さと詳細を満たしています。必要に応じて、MCP SDKの使用に関する詳細または構成のサンプルを次に提供できます。
すべての情報は、2025年9月現在、権威あるジェミニCLI文書とコミュニティソースに基づいています。