1. はじめに
この Codelab では、Model Context Protocol(MCP)サーバーを構築してデプロイし、Gemini CLI の機能を拡張する方法を学びます。このチュートリアルでは、Go 開発用のカスタムツールを提供する Go ベースのサーバーである godoctor を構築します。これにより、Gemini CLI が汎用コーディング アシスタントから Go 開発の専門家へと変貌します。
この Codelab では、プロンプト駆動型のアプローチを使用します。あなたは技術リーダーとして、AI アシスタント(Gemini CLI 自体)にプロンプトを提供します。このチュートリアルの目標は、プロジェクトの要件を効果的なプロンプトに変換し、実装の詳細を AI に処理させる方法を学ぶことです。
このプロジェクトの中核となるのは、Model Context Protocol(MCP)です。MCP は、Gemini などの大規模言語モデル(LLM)が外部ツールやサービスと通信する方法を標準化するオープンソース プロトコルです。MCP は、AI が現実世界の情報にアクセスし、組み込みの知識を超えたアクションを実行できるようにするブリッジとして機能します。MCP サーバーを構築することで、Gemini CLI が検出して使用できるカスタム プラグインを作成し、新しいスキルを効果的に学習させることができます。
学習内容
- Gemini CLI をインストールして構成する方法
- ソフトウェア開発で AI アシスタントをガイドする効果的なプロンプトを作成する方法
- AI アシスタントにコンテキストとガイドラインを提供する方法
- Gemini CLI の機能を拡張するために MCP サーバーを作成して構成する方法
- Go アプリケーションをコンテナ化して Google Cloud Run にデプロイする方法
必要なもの
このワークショップは、Google Cloud Shell 内で完全に実行できます。Google Cloud Shell には、必要なすべての依存関係(gcloud CLI、Go、Docker、Gemini CLI)がプリインストールされています。
独自のマシンで作業する場合は、次のものが必要です。
- Node.js 20 以降
- 課金を有効にした Google Cloud プロジェクト
- Google Cloud SDK(gcloud CLI)がインストールされ、初期化されている
- システムにインストールされている Go 1.24 以降
- システムにインストールされている Docker
主なテクノロジー
使用するテクノロジーについて詳しくは、以下をご覧ください。
- Gemini CLI: 拡張する AI 搭載のコマンドライン インターフェース
- Model Context Protocol(MCP): Gemini CLI がカスタムツールと通信できるようにするオープンソース プロトコル
- MCP 用 Go SDK: MCP サーバーの実装に使用する Go ライブラリ
Codelab を成功させるためのヒント
AI アシスタントを活用したソフトウェア開発は、新しい開発手法です。スムーズかつ確実に移行するためのヒントをいくつかご紹介します。
- ESC キーを押すことを恐れないでください。AI が提案するアクションやコードが、ユーザーの意図と異なる場合があります。ESC キーを使用して提案されたアクションをキャンセルし、新しいプロンプトを入力して正しい方向に導きます。パートナー様がパイロットです。
- ツールの使用を促します。AI が迷っているように見える場合や、情報をでっち上げている場合は、利用可能なツールを使用するように促します。「Google 検索を使用して確認できますか?」や「read_file ツールを使用して現在のコードを理解してから変更してください」などのプロンプトは非常に効果的です。
- 手動による変更を避ける。AI にすべての作業を実行させてみてください。これが、練習するコアスキルです。ただし、手動で変更する必要がある場合は、後で AI にそのことを伝えてください。「README.md ファイルを手動で更新しました。「もう一度読んで知識を更新してください」と指示することで、AI がプロジェクトと同期された状態を維持できます。
- 一度オフにしてからオンにするのは試しましたか?まれに、AI がユーザーのコマンドに反して特定のパスを強制しようとすることがあります。これは、コンテキストの劣化(コンテキストの腐敗とも呼ばれます)が原因である可能性があります。この場合は、Gemini CLI コマンド「/compress」を使用してコンテキスト ノイズを減らすことができます。また、極端な場合は「/clear」コマンドを使用してセッション履歴全体をクリアできます。
2. 環境設定
セルフペース型の環境設定
- Google Cloud Console にログインして、プロジェクトを新規作成するか、既存のプロジェクトを再利用します。Gmail アカウントも Google Workspace アカウントもまだお持ちでない場合は、アカウントを作成してください。
- プロジェクト名は、このプロジェクトの参加者に表示される名称です。Google API では使用されない文字列です。いつでも更新できます。
- プロジェクト ID は、すべての Google Cloud プロジェクトにおいて一意でなければならず、不変です(設定後は変更できません)。Cloud コンソールでは一意の文字列が自動生成されます。通常は、この内容を意識する必要はありません。ほとんどの Codelab では、プロジェクト ID(通常は
PROJECT_ID
と識別されます)を参照する必要があります。生成された ID が好みではない場合は、ランダムに別の ID を生成できます。または、ご自身で試して、利用可能かどうかを確認することもできます。このステップ以降は変更できず、プロジェクトを通して同じ ID になります。 - なお、3 つ目の値として、一部の API が使用するプロジェクト番号があります。これら 3 つの値について詳しくは、こちらのドキュメントをご覧ください。
- 次に、Cloud のリソースや API を使用するために、Cloud コンソールで課金を有効にする必要があります。この Codelab の操作をすべて行って、費用が生じたとしても、少額です。このチュートリアルの終了後に請求が発生しないようにリソースをシャットダウンするには、作成したリソースを削除するか、プロジェクトを削除します。Google Cloud の新規ユーザーは、300 米ドル分の無料トライアル プログラムをご利用いただけます。
Cloud Shell を起動する
Google Cloud はノートパソコンからリモートで操作できますが、この Codelab では、Google Cloud Shell(Cloud 上で動作するコマンドライン環境)を使用します。
Google Cloud Console で、右上のツールバーにある Cloud Shell アイコンをクリックします。
プロビジョニングと環境への接続にはそれほど時間はかかりません。完了すると、次のように表示されます。
この仮想マシンには、必要な開発ツールがすべて用意されています。永続的なホーム ディレクトリが 5 GB 用意されており、Google Cloud で稼働します。そのため、ネットワークのパフォーマンスと認証機能が大幅に向上しています。この Codelab での作業はすべて、ブラウザ内から実行できます。インストールは不要です。
3. Gemini CLI を使ってみる
このセクションでは、Gemini CLI について学習します。環境へのインストール方法や構成方法についても説明します。
Gemini CLI とは何ですか?
Gemini CLI は、さまざまな開発タスクを支援する AI 搭載のコマンドライン インターフェースです。プロジェクトのコンテキストを理解し、質問に回答し、コードを生成し、外部ツールを使用して機能を拡張できます。
インストール
npm を使用して Gemini CLI をグローバルにインストールします。
npm install -g @google/gemini-cli
CLI がインストールされていることを確認するには、次のコマンドを実行します。
gemini --version
構成
Gemini CLI の動作は、構成ファイルと環境変数によって制御されます。主なファイルは次の 2 つです。
GEMINI.md
: このファイルは、AI に自然言語のガイドラインとコンテキストを提供します。CLI はこのファイルを読み取って、プロジェクトのコーディング標準と規約を理解します。.gemini/settings.json
: このファイルは、外部ツールへの接続方法など、CLI の構成を制御します。このファイルを使用して、このラボで構築する MCP サーバーを使用するように CLI を構成します。
まず環境を設定し、次に GEMINI.md
ファイルを作成します。settings.json
ファイルは、後のステップで構成します。
- プロジェクト ディレクトリを作成して初期化します。
mkdir godoctor
cd godoctor
go mod init godoctor
- Google Cloud アプリケーションのデフォルト認証情報を使用して認証します。
この Codelab で使用する GCP プロジェクトにアクセスできるアカウントにログインする必要があります。
- Google Cloud SDK がインストールされ、初期化されていることを確認します。
- 次のコマンドを実行して、アプリケーションのデフォルト認証情報を設定します。
gcloud auth application-default login
4. 開発ガイドライン
AI アシスタントが高品質で慣用的な Go コードを生成できるようにするには、明確なガイドラインを提供することが不可欠です。これは GEMINI.md ファイルで行われます。
目標: このプロジェクトで AI アシスタントのルールセットとして機能する GEMINI.md ファイルを作成します。
タスク: godoctor ディレクトリのルートに GEMINI.md という名前のファイルを作成し、次の内容を貼り付けます。
# Go Development Guidelines
All code contributed to this project must adhere to the following principles.
### 1. Formatting
All Go code **must** be formatted with `gofmt` before being submitted.
### 2. Naming Conventions
- **Packages:** Use short, concise, all-lowercase names.
- **Variables, Functions, and Methods:** Use `camelCase` for unexported identifiers and `PascalCase` for exported identifiers.
- **Interfaces:** Name interfaces for what they do (e.g., `io.Reader`), not with a prefix like `I`.
### 3. Error Handling
- Errors are values. Do not discard them.
- Handle errors explicitly using the `if err != nil` pattern.
- Provide context to errors using `fmt.Errorf("context: %w", err)`.
### 4. Simplicity and Clarity
- "Clear is better than clever." Write code that is easy to understand.
- Avoid unnecessary complexity and abstractions.
- Prefer returning concrete types, not interfaces.
### 5. Documentation
- All exported identifiers (`PascalCase`) **must** have a doc comment.
- Comments should explain the *why*, not the *what*.
# Agent Guidelines
- **Reading URLs:** ALWAYS read URLs provided by the user. They are not optional.
これで、開発環境が完全に設定されました。
5. 最初のビルド: godoc サーバー
最初の目標は、godoctor
サーバーの初期バージョンを作成することです。このバージョンは、Go ドキュメントを検索する機能を提供する godoc
という単一のツールを提供する、最小限の本番環境対応アプリケーションである必要があります。
目標: go doc コマンドを公開する本番環境対応の MCP サーバーを作成し、LLM が Go ドキュメントをクエリできるようにします。
シェルで Gemini CLI コマンドを実行します。
gemini
CLI を初めて実行すると、認証モードとテーマを選択するよう求められます。認証モードで [Google でログイン] を選択して個人の Google アカウントでログインすると、Gemini CLI の寛大な無料枠を利用できます。次のような認証モードを選択するオプションが表示されます。
選択を変更する必要がある場合は、/auth
と入力して Enter キーを押すと、このメニューを再度開くことができます。
次に、テーマを選択するよう求められます。
/auth
と同様に、/theme
コマンドを使用して後でテーマを変更することもできます。
認証方法とテーマを選択すると、コマンド プロンプトが表示されます。ここにコマンドを入力します。たとえば、次のように入力します。
Write a hello world application in Go.
CLI は、独自の推論(Gemini Flash や Gemini Pro などの Gemini モデルを使用)とツールを組み合わせてタスクを実行します。ファイル システムや外部サービス(API、データベースなど)とやり取りする必要がある場合は、ツールを使用します。すぐに使用できるツール(「内部ツール」)の例としては、read_file、write_file、web_fetch、google_search などがあります。構築する MCP サーバーは、CLI で使用できるツールにもなります。
ツールを初めて実行する際には、権限の付与を求めるメッセージが表示されます。1 回限りの権限を付与するか、セッションの残りの期間の包括的な承認を行うか、リクエストを拒否できます。ファイル編集操作の場合は、必要に応じて外部エディタを使用してファイルを編集するオプションもあります。たとえば、上記のプロンプトの出力は次のようになります。
プロンプトの他に、スラッシュ コマンドも使用できます。「/」と入力すると、CLI に自動補完オプションが自動的に表示されます。コマンド全体を入力するか、オプションから選択します。上記の /auth
コマンドと /theme
コマンドは、そのようなコマンドの 1 つです。
インターフェースに慣れたら、このセクションの主なタスクである、CLI に MCP サーバーの作成を依頼します。
Hello World MCP サーバーの作成
モデルがより一貫して構築できるようにする最善の方法の一つは、複雑なタスクを段階的なステップに分割することです。モデルは複雑なタスクを単独で解決できるかもしれませんが、適切な設定がないと、適切な実装を見つけるのに時間がかかります。
より一貫したアプローチをとるため、まず「Hello World」MCP サーバーを構築してから、目的の機能(Go ドキュメントの読み取り)を実装するよう指示します。
プロンプトの例を以下に示します。
Your task is to create a Model Context Protocol (MCP) server to expose a "hello world" tool. For the MCP implementation, you should use the official Go SDK for MCP and use the stdio transport.
Read these references to gather information about the technology and project structure before writing any code:
- https://github.com/modelcontextprotocol/go-sdk/blob/main/README.md
- https://modelcontextprotocol.io/specification/2025-06-18/basic/lifecycle
- https://go.dev/doc/modules/layout
To test the server, use shell commands like these:
(
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18"}}';
echo '{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}';
echo '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}';
) | ./bin/godoctor
上記のプロンプトは、次の 3 つのメイン セグメントで構成されています。
- 構築したいものや制約(任意の SDK ではなく公式 SDK を使用するなど)を含む問題の仕様
- リクエストの曖昧さを解消するためにモデルが参照するドキュメント
- タスクの受け入れ基準として機能するテスト手順
これら 3 つのコンポーネントを用意することで、モデルはより一貫して目的の結果を達成できます。
Go doc ツールの実装
実装が完了したら、実際の「go doc」ツールの実装に進みます。
Add a new tool to our MCP server called "godoc" that invokes the "go doc" shell command. The tool will take a mandatory "package" argument and an optional "symbol" argument.
Read the reference for the go doc command to understand its API: https://pkg.go.dev/golang.org/x/tools/cmd/godoc
Test it by executing the call with:
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name": "godoc", "arguments": {"package": "fmt"} } }'
| ./bin/godoctor
Test it using both a standard library package and an external package like "github.com/modelcontextprotocol/go-sdk/mcp", both with and without symbols.
このプロンプトを試したり、独自のプロンプトを作成したりしてみてください。
便利なコマンドライン インターフェース
適切な実装が決まったら、モデルに MCP クライアントを使用して godoctor CLI を作成するように指示できます。これにより、これまでのように JSON-RPC 呼び出しを手動で作成する必要がなくなり、機能のテストを効率化できます。
プロンプトの例:
Now create a godoctor-cli component that will call the MCP server using command transport. This CLI will expose all tools using subcommands and allow us to test the MCP server implementation without needing to build the JSON-RPC calls manually.
Use the reference implementation at https://github.com/modelcontextprotocol/go-sdk/blob/main/README.md to build the client.
Test it by calling from the command line:
- the hello_world tool
- the godoc tool with a local package
- the godoc tool with a local package and symbol
- the godoc tool with an external package
- the godoc tool with an external package and symbol
クライアントとサーバーの動作セットができたので、次のセクションでは、作成した MCP サーバーを使用して Gemini CLI を構成し、次のコーディング タスクでそのメリットを活用できるようにします。
関連リソース
MCP はまだ新しいコンセプトであり、MCP 用の Go SDK は新しいライブラリであるため、このステップでは、Gemini が適切な実装を独自に検出するのに時間がかかることがあります。モデルが適切なソリューションを導き出せるように、次の参照情報を提供することをおすすめします。
- モデルに次のプロンプトを指定すると、SDK API をより一貫して検出できます。「go doc シェルコマンドを使用して、go-sdk ライブラリの API を検出します。」
- モデルが
read_file
ツールを使用して SDK のソースコードを検査しようとすると、Gemini CLI は現在のスコープ外のファイルを読み取ることができないため、失敗します。run_shell_command
ツールを使用して、代わりにcat
コマンドとls
コマンドを使用するように指示できます。 - モデルがアプリケーションのデバッグに苦労している場合は、より詳細なロギングを追加し、エラー メッセージのコンテキスト情報を改善するように指示します。
- 他の方法がすべて失敗した場合は、リファレンス実装(https://github.com/danicat/godoctor)を試してください。
6. Gemini CLI の MCP サーバーとして godoctor を構成する
AI アシスタントがクライアントとサーバーの両方のコードを生成したら、いくつかの手動テストを実行するように指示できます。次に例を示します。
retrieve the documentation for the package net/http
外部依存関係(標準ライブラリに含まれていないもの)でもテストしてください。
retrieve the documentation for the go-sdk package
結果に満足したら、このプロジェクトの使用方法と開発方法の手順を README.md に書き込むように指示します。
Now write a detailed README.md file explaining both from a user and a developer perspective how to use and to build this project.
次に、Gemini CLI が開発の次のフェーズで使用できるようにサーバーを構成します。
- CLI に、GEMINI.md を更新して、ドキュメントの読み取りに推奨される方法として
godoc
を使用するように依頼します。
update the GEMINI.md file to use the godoc tool to retrieve documentation about Go packages or symbols. Always prefer to use godoc over WebFetch and GoogleSearch, and only use those when godoc doesn't give a clear answer.
- Gemini CLI を再起動して構成する必要があります。まず、チャット セッションを保存して、再起動後に中断したところから再開できるようにしましょう。
/chat save workshop001
- Ctrl+D キーを 2 回押して CLI を終了します。
- サーバー バイナリをコンパイルする:
bin
ディレクトリを作成し、その中に godoctor サーバーをコンパイルします。
mkdir -p bin
go build -o ./bin/godoctor ./cmd/godoctor # adjust paths as needed
- ローカルツール用に Gemini CLI を構成する: プロジェクトのルートに
.gemini/settings.json
ファイルを作成し、mcpServers
セクションを追加して、コンパイルされたサーバーの実行方法を Gemini CLI に指示します。
mkdir -p .gemini
touch .gemini/settings.json
- 次に、
vim
やnano
などのコマンドライン エディタを使用して、次のコンテンツを新しいファイルに追加します。
{
"mcpServers": {
"godoctor": {
"command": "./bin/godoctor"
}
}
}
- Gemini CLI を起動して、チャット セッションを復元します。
/chat resume workshop001
- Ctrl+T キーを押すと、ツールが読み込まれていることを確認できます。
- 「net/http のドキュメントを取得して」などのプロンプトを使用して Gemini CLI にツールを使用するようリクエストし、統合をテストします。
次のように表示されます。
ツールが正しく動作している場合は、ツール呼び出しで取得されたドキュメントが表示されます。
おめでとうございます。MCP ツールを作成しました。しかし、これで終わりではありません。もう少し便利にすることができます。
7. AI を活用したコードレビュー担当者の追加
Gemini API を使用するコード レビューアという、より高度な AI 搭載機能を追加してみましょう。
目標: 既存のプロジェクトに code_review という名前の新しいツールを追加します。このツールは、Gemini API を使用して Go コードを分析し、フィードバックを提供します。
プロンプトの例:
I want to add a new tool to my project called code_review. This tool should use the Gemini API to analyze Go code and provide a list of improvements in json format according to the best practices accepted by the Go community. The tool should take the Go code content and an optional hint as input. The hint will be used to provide additional guidance for the AI reviewer, like "focus on security" or "help me simplify this code". Please update the server to include this new tool and modify the CLI client to add a review command to use it.
Use this SDK to call Gemini: https://github.com/googleapis/go-genai
役立つヒント
モデルが処理を開始すると、godoc
ツールを呼び出して genai
パッケージのドキュメントを参照するリクエストが自動的に表示されることがあります。そうでない場合は、いつでも Esc キーでプロセスを中断し、godoc
ツールが利用可能になったことを通知できます。
コード レビュー担当者のテスト
- MCP サーバーをビルドして再読み込みするには、Gemini CLI を再起動する必要があります。
/chat save workshop002
でチャット セッションを保存し、Ctrl+D キーを 2 回押して CLI を終了します。 code_review
ツールは、Gemini モデルを呼び出してレビューを行うため、API キーが必要です。API キーは Google AI Studio を使用して生成できます。- 上記のステップで生成した API キーを使用して、環境変数
GEMINI_API_KEY
を構成します。
export GEMINI_API_KEY="YOUR_API_KEY"
- サーバーを再コンパイルする: 新しいツールを追加したら、変更を反映するためにサーバー バイナリを再コンパイルする必要があります。
go build -o ./bin/godoctor ./cmd/godoctor
- Gemini CLI を再度起動します。
/chat resume workshop002
を使用してチャット セッションを復元します。 - 重要: Gemini CLI 自体が課金アカウントを使用しないように、個人の Gmail アカウントで認証されていることを確認します。これを行うには、
/auth
コマンドを使用します。
- Ctrl+T キーを押して、ツールが有効になっていることを確認します。次のように表示されます。
- 次に、ツールのソースファイルの 1 つを確認して、
code-review
ツールをテストします。
「godoctor ツールを使用して cmd/godoctor/main.go ファイルを確認します。」
You should see something like this:
コードレビュー ツールが動作するようになったので、モデルに改善案を提案して、完全な「自己改善」ワークフローを実現しましょう。
これで、code-review
ツールが動作することを確認できました。次のセクションでは、クラウドへのデプロイについて説明します。
GEMINI_API_KEY をクリアするには:
/chat save workshop003
で現在のセッションを保存して CLI を終了します。- API キーを安全な場所にバックアップします。
export | grep GEMINI_API_KEY > env.bkp
GEMINI_API_KEY
の設定を解除します。
export GEMINI_API_KEY=
- CLI を再起動して
/chat resume workshop003
でセッションを読み込む - コードレビューの改善を適用するようモデルに指示します。
8. クラウド用にサーバーを準備する
これまで開発してきた MCP サーバーはローカルマシンでのみ実行されます。これは、自分用のツールを開発している場合は問題ありませんが、企業環境では、数百人、数千人の開発者が使用するツールをデプロイする必要があることがよくあります。
MCP サーバーをスケーリングするには、標準 I/O のみを使用するサーバーから HTTP を使用できるサーバーに変換し、さまざまなデベロッパーがアクセスできる場所にデプロイする必要があります。この目標では、MCP 仕様で定義されている転送モードをストリーミング可能な HTTP として使用し、Cloud Run をデプロイ ターゲットとして使用します。
目標: ストリーミング可能な HTTP トランスポートを使用するように godoctor サーバーをリファクタリングします。
プロンプトの例:
The godoctor server is currently using the stdio transport. I want to deploy it to Cloud Run, so I need to refactor it to use the streamable HTTP transport instead. Please modify the server to comply with the streamable HTTP specification.
関連リソース
- モデルがストリーミング可能な HTTP トランスポートの実装に苦労している場合は、https://github.com/modelcontextprotocol/go-sdk/blob/main/design/design.md を参照してください。
- モデルは、非推奨の HTTP+SSE を使用しようとする可能性があります。このパスを通過している場合は、ストリーミング可能な HTTP に戻します。
HTTP を使用してサーバーをテストする
モデルに、godoctor クライアントを更新してストリーミング可能な HTTP も使用するように依頼し、引き続き動作することを確認します。
Now update the client to use streamable HTTP and run a test by retrieving documentation from one package
省略可: HTTP 経由でサーバーを使用するように Gemini CLI を構成する場合は:
- セッションを保存して CLI を終了する
.gemini/settings.json
ファイルを編集し、ローカルで実行中のサーバーを指すように構成を変更します。
"mcpServers": {
"godoctor": {
"httpUrl": "http://localhost:8080"
}
}
- リファクタリングされたサーバーをローカルで実行します。
go run ./cmd/godoctor/main.go
- (上記のオペレーションはブロックされているため)新しいターミナルで Gemini CLI を起動し、接続をテストするプロンプトを指定します。例:「godoctor ツールを使用して fmt.Println のドキュメントを取得します。」
- テストが完了したら、Ctrl+C キーを押してサーバーを停止します。
9. Docker を使用したアプリケーションのコンテナ化
サーバーが正しいトランスポート プロトコルを使用するようになったので、デプロイ用にコンテナ化できます。
目標: godoctor サーバーをポータブルで本番環境に対応したコンテナ イメージにパッケージ化する Dockerfile を作成します。
プロンプトの例:
Please create a multi-stage Dockerfile that compiles the Go binary and copies it into a minimal golang image like golang:1.24-alpine.
Docker イメージのテスト
Dockerfile
を作成したら、イメージをビルドして実行し、正しく動作することを確認します。Gemini に処理を指示できます。
build the image and test the connectivity to the server using the godoctor client
省略可: テストを手動で行う場合:
- コンテナを構築します。
docker build -t godoctor:latest .
- コンテナをローカルで実行します。
docker run -p 8080:8080 -e PORT=8080 godoctor:latest
- 実行中のコンテナをテストする: 別のターミナルで Gemini CLI を起動し、ドキュメントの取得をリクエストします。
- テストが完了したら、Ctrl+C キーを押してサーバーを停止します。
10. Cloud Run へのデプロイ
次に、コンテナをクラウドにデプロイします。
目標: コンテナ化された godoctor サーバーを Google Cloud Run にデプロイします。
プロンプトのガイダンス: AI アシスタントに、コンテナをデプロイするための gcloud コマンドを提供するよう依頼します。
プロンプトの例:
Now please deploy this image to Cloud Run and return me an URL I can use to call the MCP tool. Deploy it to us-central1 and use the project currently configured in the environment.
デプロイが完了したら、デプロイしたツールを使用するように Gemini CLI を構成します。
Gemini に .gemini/settings.json
ファイルの更新を依頼し、デプロイされたサービスを指すように MCP ツールの構成を変更します。
now update the .gemini/settings.json file to use this URL for the godoctor server
最終的な mcpServers
セクションは次のようになります(プレースホルダは実際の Cloud Run アプリの URL に置き換えてください)。
"mcpServers": {
"godoctor": {
"httpUrl": "https://<your-cloud-run-id>.us-central1.run.app"
}
}
Cloud Run デプロイをテストする
これで、最終的なエンドツーエンド テストの準備が整いました。
Gemini CLI をもう一度再起動します(/chat save
と /chat resume
を使用してコンテキストを保持します)。これで、CLI からリモート MCP サーバーを呼び出すことができるようになります。パッケージのドキュメントをリクエストしてみてください。
コードレビュー ツールを使用するには、サービスに GEMINI_API_KEY
が必要です。Gemini CLI に正しい環境で再デプロイするようリクエストできます。
update the cloud run environment to add a GEMINI_API_KEY and use the value in @env.bkp. Then update the .gemini/settings.json file with the correct service URL
CLI を再起動し、プロンプトでテストします。
Use the godoctor tool to review the cmd/godoctor/main.go file
Gemini CLI がデプロイされた Cloud Run サービスに接続し、コードレビューを実行します。
プロンプトの例:
I'm done with my tests on the CloudRun server, please delete this deployment for me and revert my .gemini/settings.json to use the local version.
11. 完了
AI アシスタントをガイドして、高度な AI 搭載ツールを構築、コンテナ化、デプロイしました。さらに重要なのは、要件を効果的なプロンプトに変換するという、最新のソフトウェア開発に不可欠なスキルを身につけられることです。カスタムツールを使用して Gemini CLI を拡張し、より強力で専門的な Go 開発アシスタントにすることができました。