Vertex AI MCP サーバー
このプロジェクトは、コーディング支援と一般的なクエリ回答に重点を置いて、Google Cloud の Vertex AI Gemini モデルと対話するための包括的なツール スイートを提供するモデル コンテキスト プロトコル (MCP) サーバーを実装します。
特徴
多数の MCP ツールを介して Vertex AI Gemini モデルへのアクセスを提供します。
Web 検索グラウンディング (
answer_query_websearch) と直接知識回答 (answer_query_direct) をサポートします。環境変数を介して、モデル ID、温度、ストリーミング動作、最大出力トークン、再試行設定を構成できます。
応答性を向上させるために、デフォルトでストリーミング API を使用します。
一時的な API エラーに対する基本的な再試行ロジックが含まれています。
潜在的なブロックを減らすために最小限の安全フィルターが適用されます (
BLOCK_NONE) (注意して使用してください)。
Related MCP server: mcp-google
提供されるツール
クエリと生成(AIに重点を置いたもの)
answer_query_websearch: Google 検索結果で強化された構成済みの Vertex AI モデルを使用して、自然言語クエリに回答します。answer_query_direct: 構成された Vertex AI モデルの内部知識のみを使用して、自然言語クエリに回答します。explain_topic_with_docs: 主に Web 検索で見つかった公式ドキュメントからの情報を統合して、特定のソフトウェア トピックに関するクエリの詳細な説明を提供します。get_doc_snippets: 公式ドキュメントを検索することで、正確で信頼性の高いコード スニペットや技術的な質問に対する簡潔な回答を提供します。generate_project_guidelines: ベスト プラクティスの Web 検索を使用して、指定されたテクノロジのリスト (オプションでバージョンを含む) に基づいて、構造化されたプロジェクト ガイドライン ドキュメント (Markdown) を生成します。
ファイルシステム操作
read_file_content: 1 つのファイルの完全な内容を読み取ります。read_multiple_files_content: 複数のファイルの内容を同時に読み取ります。write_file_content: 新しいファイルを作成するか、既存のファイルを新しいコンテンツで完全に上書きします。edit_file_content: テキスト ファイルに行ベースの編集を加え、差分プレビューを返したり変更を適用したりします。create_directory: 新しいディレクトリ (ネストされたディレクトリを含む) を作成します。list_directory_contents: 指定されたパス内のファイルとディレクトリを直接一覧表示します (非再帰的)。get_directory_tree: ファイルとディレクトリの再帰ツリー ビューを JSON として取得します。move_file_or_directory: ファイルとディレクトリを移動または名前変更します。search_filesystem: オプションの除外を使用して、名前パターンに一致するファイル/ディレクトリを再帰的に検索します。get_filesystem_info: ファイルまたはディレクトリに関する詳細なメタデータ (サイズ、日付、タイプ、権限) を取得します。
AIとファイルシステム操作の組み合わせ
save_generate_project_guidelines: 技術スタックに基づいてプロジェクトガイドラインを生成し、結果を指定されたファイルパスに保存します。save_doc_snippet: ドキュメントからコード スニペットを検索し、結果を指定されたファイル パスに保存します。save_topic_explanation: ドキュメントに基づいてトピックの詳細な説明を生成し、結果を指定されたファイル パスに保存します。save_answer_query_direct: 内部知識のみを使用してクエリに回答し、指定されたファイル パスに回答を保存します。save_answer_query_websearch: Web 検索結果を使用してクエリに回答し、指定されたファイル パスに回答を保存します。
(注: 各ツールの入力/出力スキーマは
前提条件
Node.js (v18+)
bun (
npm install -g bun)課金が有効になっている Google Cloud プロジェクト。
GCP プロジェクトで Vertex AI API が有効になりました。
ご使用の環境で構成された Google Cloud 認証 (
gcloud auth application-default loginによるアプリケーションのデフォルト認証情報、またはサービス アカウント キーの使用が推奨されます)。
セットアップとインストール
**プロジェクトの複製/配置:**プロジェクト ファイルが目的の場所にあることを確認します。
依存関係をインストールします:
bun install環境を構成する:
プロジェクト ルートに
.envファイルを作成します (.env.exampleをコピーします)。.env.exampleの説明に従って、必須およびオプションの環境変数を設定します。AI_PROVIDER``"vertex"または"gemini"に設定します。AI_PROVIDER="vertex"の場合、GOOGLE_CLOUD_PROJECTは必須です。AI_PROVIDER="gemini"の場合、GEMINI_API_KEYは必須です。
サーバーを構築する:
bun run buildこれにより、TypeScript コードが
build/index.jsにコンパイルされます。
使用方法(スタンドアロン / NPX)
npm に公開したら、 npxを使用してこのサーバーを直接実行できます。
あるいは、グローバルにインストールします。
**注:**スタンドアロンで実行するには、コマンドを実行する前に、シェル環境で必要な環境変数 ( GOOGLE_CLOUD_PROJECT 、 GOOGLE_CLOUD_LOCATION 、ADC を使用していない場合は認証資格情報など) を設定する必要があります。
Smithery経由でインストール
Smithery経由で Claude Desktop 用の Vertex AI Server を自動的にインストールするには:
クラインと一緒に走る
MCP設定の構成: Cline MCP設定ファイル(例:
.roo/mcp.json)に設定を追加/更新します。コマンドを構成するには、主に2つの方法があります。オプション A: ノードの使用 (ダイレクトパス - 開発に推奨)
この方法は、
nodeを使用してコンパイルされたスクリプトを直接実行します。開発中にコードをローカルにクローンしている場合に便利です。{ "mcpServers": { "vertex-ai-mcp-server": { "command": "node", "args": [ "/full/path/to/your/vertex-ai-mcp-server/build/index.js" // Use absolute path or ensure it's relative to where Cline runs node ], "env": { // --- General AI Configuration --- "AI_PROVIDER": "vertex", // "vertex" or "gemini" // --- Required (Conditional) --- "GOOGLE_CLOUD_PROJECT": "YOUR_GCP_PROJECT_ID", // Required if AI_PROVIDER="vertex" // "GEMINI_API_KEY": "YOUR_GEMINI_API_KEY", // Required if AI_PROVIDER="gemini" // --- Optional Model Selection --- "VERTEX_MODEL_ID": "gemini-2.5-pro-exp-03-25", // If AI_PROVIDER="vertex" (Example override) "GEMINI_MODEL_ID": "gemini-2.5-pro-exp-03-25", // If AI_PROVIDER="gemini" // --- Optional AI Parameters --- "GOOGLE_CLOUD_LOCATION": "us-central1", // Specific to Vertex AI "AI_TEMPERATURE": "0.0", "AI_USE_STREAMING": "true", "AI_MAX_OUTPUT_TOKENS": "65536", // Default from .env.example "AI_MAX_RETRIES": "3", "AI_RETRY_DELAY_MS": "1000", // --- Optional Vertex Authentication --- // "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account-key.json" // If using Service Account Key for Vertex }, "disabled": false, "alwaysAllow": [ // Add tool names here if you don't want confirmation prompts // e.g., "answer_query_websearch" ], "timeout": 3600 // Optional: Timeout in seconds } // Add other servers here... } }重要:
argsパスがbuild/index.jsファイルを正しく指していることを確認してください。絶対パスを使用すると、より信頼性が高くなる場合があります。
オプション B: NPX を使用する (npm にパッケージを公開する必要があります)
この方法では、
npxを使用して、npm レジストリからサーバーパッケージを自動的にダウンロードして実行します。リポジトリをクローンしたくない場合に便利です。{ "mcpServers": { "vertex-ai-mcp-server": { "command": "bunx", // Use bunx "args": [ "-y", // Auto-confirm installation "vertex-ai-mcp-server" // The npm package name ], "env": { // --- General AI Configuration --- "AI_PROVIDER": "vertex", // "vertex" or "gemini" // --- Required (Conditional) --- "GOOGLE_CLOUD_PROJECT": "YOUR_GCP_PROJECT_ID", // Required if AI_PROVIDER="vertex" // "GEMINI_API_KEY": "YOUR_GEMINI_API_KEY", // Required if AI_PROVIDER="gemini" // --- Optional Model Selection --- "VERTEX_MODEL_ID": "gemini-2.5-pro-exp-03-25", // If AI_PROVIDER="vertex" (Example override) "GEMINI_MODEL_ID": "gemini-2.5-pro-exp-03-25", // If AI_PROVIDER="gemini" // --- Optional AI Parameters --- "GOOGLE_CLOUD_LOCATION": "us-central1", // Specific to Vertex AI "AI_TEMPERATURE": "0.0", "AI_USE_STREAMING": "true", "AI_MAX_OUTPUT_TOKENS": "65536", // Default from .env.example "AI_MAX_RETRIES": "3", "AI_RETRY_DELAY_MS": "1000", // --- Optional Vertex Authentication --- // "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/service-account-key.json" // If using Service Account Key for Vertex }, "disabled": false, "alwaysAllow": [ // Add tool names here if you don't want confirmation prompts // e.g., "answer_query_websearch" ], "timeout": 3600 // Optional: Timeout in seconds } // Add other servers here... } }envブロック内の環境変数が正しく設定されていることを確認してください(.envと一致するか、ここで明示的に定義されています)。実際のJSONファイルからコメントを削除してください。
Cline の再起動/リロード: Cline は構成の変更を検出し、サーバーを起動します。
ツールの使用: Cline 経由で広範なツール リストを使用できるようになりました。
発達
ウォッチモード:
bun run watchリンティング:
bun run lintフォーマット:
bun run format
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。