Vertex AI MCP Server について
Vertex AI MCP Serverは、Vertex AI Geminiへの問い合わせ、技術文書の調査、コード分析、ファイル操作のツールを提供します。モデルの回答に文書調査やファイルのワークフローを組み合わせたい開発者やAIクライアント向けです。
主な機能
- 01検索連携と直接のモデル回答
- 02公式技術文書の検索
- 03コード・依存関係・スキーマの分析
- 04ガイドライン・テスト戦略・文書の生成
- 05ファイルの読み取り・編集・管理
- 06モデル設定とリトライ動作の調整
活用シーン
- 01ウェブ調査を伴う技術的な質問への回答
- 02文書化された慣行に基づくコードレビュー
- 03既知の脆弱性を含む依存関係の確認
- 04プロジェクト指針やテスト計画の作成
MCP 対応
MCPサーバーとして、Vertex AI Geminiへの問い合わせ、調査、分析、ファイルシステム操作のツールをMCPクライアントに公開します。ファイル書き込みとターミナル実行も含むため、READMEではアクセス制限と重要な操作への承認を勧めています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Vertex AI MCP サーバー
このプロジェクトは、コーディング支援と一般的な質問への回答を中心に、Google Cloud の Vertex AI Gemini モデルとやり取りするための包括的なツール一式を提供する Model Context Protocol(MCP)サーバーを実装しています。
セキュリティ境界
このサーバーには、モデルやリサーチ用のツールに加え、ファイルシステムへの書き込みツールとターミナル実行ツールが含まれています。専用の低権限 ID で実行し、ファイルシステムとネットワークへのアクセスを制限するとともに、重大な影響を及ぼすツールは明示的な承認が必要な状態にしてください。MCP クライアントの確認プロンプトを、サーバー側の認可として扱わないでください。
このプロジェクトが、ほかの 6 つの公開 MCP コードベースとともに明らかにした実装上のトレードオフについては、What building seven MCP servers taught me about production MCPをご覧ください。この記事では、このリポジトリを公開されているエンジニアリング上の根拠として使用していますが、そこで説明されている本番環境向けの制御がすべて、すでにここに実装されていると主張するものではありません。
機能
- 多数の MCP ツールを通じて、Vertex AI Gemini モデルを利用できます。
- ウェブ検索によるグラウンディング(
answer_query_websearch)と、直接的な知識に基づく回答(answer_query_direct)をサポートしています。 - 環境変数を使って、モデル ID、温度、ストリーミング動作、最大出力トークン数、再試行設定を構成できます。
- 応答性の向上が期待できるため、デフォルトでストリーミング API を使用します。
- 一時的な API エラーに対する基本的な再試行ロジックを備えています。
- ブロックされる可能性を減らすため、基本的な安全フィルターのみを適用します(使用には注意が必要です)。
提供されるツール
クエリと生成(AI に特化)
answer_query_websearch:Google 検索結果で強化された、構成済みの Vertex AI モデルを使用して、自然言語のクエリに回答します。answer_query_direct:構成済みの Vertex AI モデルが持つ内部知識のみを使用して、自然言語のクエリに回答します。explain_topic_with_docs:ウェブ検索で見つかった公式ドキュメントを主に活用して情報を統合し、特定のソフトウェアトピックに関するクエリを詳しく説明します。get_doc_snippets:公式ドキュメントを検索し、技術的なクエリに対して、正確で信頼できるコードスニペットまたは簡潔な回答を提供します。generate_project_guidelines:ウェブ検索を活用してベストプラクティスを調べ、指定された技術のリスト(バージョンは任意)に基づいて、構成されたプロジェクトガイドライン文書(Markdown)を生成します。
調査・分析ツール
code_analysis_with_docs: コードスニペットを公式ドキュメントのベストプラクティスと比較して分析し、潜在的なバグ、パフォーマンスの問題、セキュリティの脆弱性を特定します。technical_comparison: 複数のテクノロジー、フレームワーク、ライブラリを特定の基準に基づいて比較し、長所・短所やユースケースを含む詳細な比較表を作成します。architecture_pattern_recommendation: 業界のベストプラクティスに基づいて、特定のユースケースに適したアーキテクチャパターンを提案し、実装例や考慮事項を提示します。dependency_vulnerability_scan: プロジェクトの依存関係に既知のセキュリティ脆弱性がないか分析し、詳細情報と緩和策を提示します。database_schema_analyzer: データベーススキーマの正規化、インデックス、パフォーマンスに関する問題を確認し、データベース固有のベストプラクティスに基づいて改善策を提案します。security_best_practices_advisor: 特定のテクノロジーやシナリオに応じたセキュリティに関する推奨事項を、セキュアな実装のためのコード例とともに提示します。testing_strategy_generator: アプリケーションや機能の包括的なテスト戦略を作成し、目標とするカバレッジに適したテストの種類を提案します。regulatory_compliance_advisor: 特定の業界の規制要件(GDPR、HIPAA など)に関するガイダンスを、コンプライアンスの実現方法とともに提示します。microservice_design_assistant: 特定のドメイン向けのマイクロサービスアーキテクチャの設計を支援し、サービス境界に関する推奨事項や通信パターンを提示します。documentation_generator: 技術ドキュメントの業界標準のベストプラクティスに従って、コード、API、システムに関する包括的なドキュメントを作成します。
ファイルシステム操作
read_file_content: 1 つ以上のファイルの内容をすべて読み取ります。単一のパス文字列またはパス文字列の配列を指定します。write_file_content: 新しいファイルを作成するか、既存のファイルを完全に上書きします。writes引数には、単一のオブジェクト({path, content})またはそのようなオブジェクトの配列を指定できます。edit_file_content: テキストファイルに行単位の編集を行い、差分のプレビューを返すか、変更を適用します。list_directory_contents: 指定したパス直下のファイルとディレクトリを一覧表示します(再帰なし)。get_directory_tree: ファイルとディレクトリの再帰的なツリー表示を JSON 形式で取得します。move_file_or_directory: ファイルとディレクトリを移動または名前変更します。search_filesystem: 除外対象を任意で指定して、名前パターンに一致するファイルやディレクトリを再帰的に検索します。get_filesystem_info: ファイルまたはディレクトリの詳細なメタデータ(サイズ、日付、種類、権限)を取得します。execute_terminal_command: シェルコマンドを実行します。必要に応じてcwdとtimeoutを指定できます。標準出力と標準エラー出力を返します。
AI とファイルシステムの連携操作
save_generate_project_guidelines: 技術スタックに基づいてプロジェクトガイドラインを生成し、指定したファイルパスに保存します。save_doc_snippet: ドキュメントからコードスニペットを探し、指定したファイルパスに保存します。save_topic_explanation: ドキュメントに基づいてトピックの詳細な解説を生成し、指定したファイルパスに保存します。save_answer_query_direct: 内部知識のみを使用して質問に回答し、その回答を指定したファイルパスに保存します。save_answer_query_websearch: ウェブ検索結果を使用して質問に回答し、その回答を指定したファイルパスに保存します。
(注:各ツールの入出力スキーマは src/tools/ 内の対応するファイルで定義され、MCP サーバー経由で公開されます。)
前提条件
- Node.js(v18+)
- Bun(
npm install -g bun) - Billing が有効な Google Cloud プロジェクト。
- GCP プロジェクトで Vertex AI API が有効になっていること。
- 環境で Google Cloud 認証が設定されていること(
gcloud auth application-default loginによる Application Default Credentials を推奨します。または Service Account Key を使用してください)。
セットアップとインストール
- プロジェクトのクローン/配置: プロジェクトファイルが目的の場所にあることを確認します。
- 依存関係のインストール:
bun install - 環境の設定:
- プロジェクトのルートに
.envファイルを作成します(.env.exampleをコピーしてください)。 .env.exampleの説明に従って、必須および任意の環境変数を設定します。AI_PROVIDERを"vertex"または"gemini"に設定します。AI_PROVIDER="vertex"の場合、GOOGLE_CLOUD_PROJECTが必要です。AI_PROVIDER="gemini"の場合、GEMINI_API_KEYが必要です。
- プロジェクトのルートに
- サーバーのビルド:
これにより、TypeScript コードがbun run buildbuild/index.jsにコンパイルされます。
使用方法(スタンドアロン/NPX)
npm に公開されたら、npx を使ってこのサーバーを直接実行できます。
# Ensure required environment variables are set (e.g., GOOGLE_CLOUD_PROJECT)
bunx vertex-ai-mcp-server
または、グローバルにインストールします。
bun install -g vertex-ai-mcp-server
# Then run:
vertex-ai-mcp-server
注: スタンドアロンで実行するには、コマンドを実行する前に、必要な環境変数(GOOGLE_CLOUD_PROJECT、GOOGLE_CLOUD_LOCATION、ADC を使用しない場合の認証情報など)をシェル環境で設定する必要があります。
Smithery 経由でインストールする
Smithery 経由で Claude Desktop 用の Vertex AI Server を自動的にインストールするには:
bunx -y @smithery/cli install @shariqriazz/vertex-ai-mcp-server --client claude
Cline で実行する
-
MCP 設定を構成する: Cline の MCP 設定ファイル(例:
.roo/mcp.json)に設定を追加/更新します。コマンドを設定する方法は、主に 2 つあります。オプション A:Node を使用(直接パス指定 — 開発時に推奨)
この方法では、
nodeを使ってコンパイル済みスクリプトを直接実行します。コードをローカルにクローンしている開発時に便利です。{ "mcpServers": { "vertex-ai-mcp-server": { "command": "node", "args": [ "/full/path/to/your/vertex-ai-mcp-server/build/index.js" // 絶対パスを使用するか、Cline が node を実行する場所からの相対パスにしてください ], "env": { // --- 一般的な AI 設定 --- "AI_PROVIDER": "vertex", // "vertex" または "gemini" // --- 必須(条件付き)--- "GOOGLE_CLOUD_PROJECT": "YOUR_GCP_PROJECT_ID", // AI_PROVIDER="vertex" の場合に必須 // "GEMINI_API_KEY": "YOUR_GEMINI_API_KEY", // AI_PROVIDER="gemini" の場合に必須 // --- 任意のモデル選択 --- "VERTEX_MODEL_ID": "gemini-2.5-pro-exp-03-25", // AI_PROVIDER="vertex" の場合(上書き例) "GEMINI_MODEL_ID": "gemini-2.5-pro-exp-03-25", // AI_PROVIDER="gemini" の場合 // --- 任意の AI パラメーター --- "GOOGLE_CLOUD_LOCATION": "us-central1", // Vertex AI 固有 "AI_TEMPERATURE": "0.0", "AI_USE_STREAMING": "true", "AI_MAX_OUTPUT_TOKENS": "65536", // .env.example のデフォルト値 "AI_MAX_RETRIES": "3", "AI_RETRY_DELAY_MS": "1000", // --- 任意の Vertex 認証 --- // "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account-key.json" // Vertex でサービスアカウントキーを使用する場合 }, "disabled": false, "alwaysAllow": [ // 確認プロンプトを表示しないツール名をここに追加します // 例:「answer_query_websearch」 ], "timeout": 3600 // 任意:タイムアウト(秒) } // 他のサーバーをここに追加します... } }- 重要:
argsのパスがbuild/index.jsファイルを正しく指していることを確認してください。絶対パスを使用すると、より確実な場合があります。
オプション B:NPX を使用(npm へのパッケージ公開が必要)
この方法では、
npxを使って npm レジストリからサーバーパッケージを自動的にダウンロードして実行します。リポジトリをクローンしたくない場合に便利です。{ "mcpServers": { "vertex-ai-mcp-server": { "command": "bunx", // bunx を使用 "args": [ "-y", // インストールを自動承認 "vertex-ai-mcp-server" // npm パッケージ名 ], "env": { // --- AI の一般設定 --- "AI_PROVIDER": "vertex", // "vertex" または "gemini" // --- 必須(条件付き)--- "GOOGLE_CLOUD_PROJECT": "YOUR_GCP_PROJECT_ID", // AI_PROVIDER="vertex" の場合に必須 // "GEMINI_API_KEY": "YOUR_GEMINI_API_KEY", // AI_PROVIDER="gemini" の場合に必須 // --- モデル選択(任意)--- "VERTEX_MODEL_ID": "gemini-2.5-pro-exp-03-25", // AI_PROVIDER="vertex" の場合(上書き例) "GEMINI_MODEL_ID": "gemini-2.5-pro-exp-03-25", // AI_PROVIDER="gemini" の場合 // --- AI パラメーター(任意)--- "GOOGLE_CLOUD_LOCATION": "us-central1", // Vertex AI 固有 "AI_TEMPERATURE": "0.0", "AI_USE_STREAMING": "true", "AI_MAX_OUTPUT_TOKENS": "65536", // .env.example のデフォルト値 "AI_MAX_RETRIES": "3", "AI_RETRY_DELAY_MS": "1000", // --- Vertex 認証(任意)--- // "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account-key.json" // Vertex でサービスアカウントキーを使用する場合 }, "disabled": false, "alwaysAllow": [ // 確認プロンプトを表示しないツール名をここに追加 // 例:"answer_query_websearch" ], "timeout": 3600 // 任意:タイムアウト(秒) } // 他のサーバーをここに追加... } }envブロック内の環境変数が、.envと一致するように設定されているか、ここで明示的に定義されていることを確認してください。実際の JSON ファイルからコメントを削除してください。
- 重要:
-
Cline を再起動/再読み込みする: Cline は設定の変更を検出し、サーバーを起動します。
-
ツールを使用する: Cline から多数のツールを使用できるようになります。
開発
- 監視モード:
bun run watch - Lint:
bun run lint - フォーマット:
bun run format
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
