Vertex AI MCP-Server
Dieses Projekt implementiert einen Model Context Protocol (MCP)-Server, der eine umfassende Suite von Tools für die Interaktion mit den Vertex AI Gemini-Modellen von Google Cloud bereitstellt, wobei der Schwerpunkt auf Codierungsunterstützung und der Beantwortung allgemeiner Abfragen liegt.
Merkmale
Bietet Zugriff auf Vertex AI Gemini-Modelle über zahlreiche MCP-Tools.
Unterstützt die Erdung von Websuchanfragen (
answer_query_websearch) und die direkte Beantwortung von Wissensfragen (answer_query_direct).Konfigurierbare Modell-ID, Temperatur, Streaming-Verhalten, maximale Ausgabe-Token und Wiederholungseinstellungen über Umgebungsvariablen.
Verwendet standardmäßig die Streaming-API für eine potenziell bessere Reaktionsfähigkeit.
Enthält eine grundlegende Wiederholungslogik für vorübergehende API-Fehler.
Es werden minimale Sicherheitsfilter angewendet (
BLOCK_NONE), um mögliche Blockierungen zu reduzieren (mit Vorsicht verwenden).
Related MCP server: mcp-google
Mitgelieferte Werkzeuge
Abfrage und Generierung (KI-fokussiert)
answer_query_websearch: Beantwortet eine Abfrage in natürlicher Sprache mithilfe des konfigurierten Vertex-KI-Modells, das mit Google-Suchergebnissen erweitert wurde.answer_query_direct: Beantwortet eine Abfrage in natürlicher Sprache ausschließlich unter Verwendung des internen Wissens des konfigurierten Vertex-KI-Modells.explain_topic_with_docs: Bietet eine ausführliche Erklärung für eine Abfrage zu einem bestimmten Softwarethema, indem Informationen hauptsächlich aus offiziellen Dokumenten zusammengefasst werden, die über eine Websuche gefunden wurden.get_doc_snippets: Bietet präzise, maßgebliche Codeausschnitte oder knappe Antworten auf technische Fragen durch die Suche in der offiziellen Dokumentation.generate_project_guidelines: Generiert ein strukturiertes Dokument mit Projektrichtlinien (Markdown) basierend auf einer angegebenen Liste von Technologien (optional mit Versionen) und verwendet dabei eine Websuche nach Best Practices.
Recherche- und Analysetools
code_analysis_with_docs: Analysiert Codeausschnitte, indem sie mit Best Practices aus der offiziellen Dokumentation verglichen werden, und identifiziert so potenzielle Fehler, Leistungsprobleme und Sicherheitslücken.technical_comparison: Vergleicht mehrere Technologien, Frameworks oder Bibliotheken anhand bestimmter Kriterien und bietet detaillierte Vergleichstabellen mit Vor-/Nachteilen und Anwendungsfällen.architecture_pattern_recommendation: Schlägt Architekturmuster für bestimmte Anwendungsfälle auf Grundlage bewährter Branchenmethoden mit Implementierungsbeispielen und Überlegungen vor.dependency_vulnerability_scan: Analysiert Projektabhängigkeiten auf bekannte Sicherheitslücken und bietet detaillierte Informationen und Strategien zur Risikominderung.database_schema_analyzer: Überprüft Datenbankschemata auf Normalisierungs-, Indizierungs- und Leistungsprobleme und schlägt Verbesserungen auf der Grundlage datenbankspezifischer Best Practices vor.security_best_practices_advisor: Bietet Sicherheitsempfehlungen für bestimmte Technologien oder Szenarien mit Codebeispielen zur Implementierung sicherer Praktiken.testing_strategy_generator: Erstellt umfassende Teststrategien für Anwendungen oder Funktionen und schlägt geeignete Testtypen mit Abdeckungszielen vor.regulatory_compliance_advisor: Bietet Anleitungen zu regulatorischen Anforderungen für bestimmte Branchen (DSGVO, HIPAA usw.) mit Implementierungsansätzen zur Einhaltung der Vorschriften.microservice_design_assistant: Hilft beim Entwerfen von Microservice-Architekturen für bestimmte Domänen mit Empfehlungen zu Servicegrenzen und Kommunikationsmustern.documentation_generator: Erstellt umfassende Dokumentationen für Code, APIs oder Systeme und befolgt dabei die Best Practices der Branche für technische Dokumentation.
Dateisystemoperationen
read_file_content: Liest den gesamten Inhalt einer oder mehrerer Dateien. Geben Sie einen einzelnen Pfad oder ein Array von Pfaden an.write_file_content: Erstellt neue Dateien oder überschreibt vorhandene Dateien vollständig. Das Argument „writes“ akzeptiert ein einzelnes Objekt ({path, content}) oder ein Array solcher Objekte.edit_file_content: Nimmt zeilenbasierte Änderungen an einer Textdatei vor, gibt eine Diff-Vorschau zurück oder wendet Änderungen an.list_directory_contents: Listet Dateien und Verzeichnisse direkt innerhalb eines angegebenen Pfads auf (nicht rekursiv).get_directory_tree: Ruft eine rekursive Baumansicht von Dateien und Verzeichnissen als JSON ab.move_file_or_directory: Verschiebt Dateien und Verzeichnisse oder benennt sie um.search_filesystem: Sucht rekursiv nach Dateien/Verzeichnissen, die einem Namensmuster entsprechen, mit optionalen Ausschlüssen.get_filesystem_info: Ruft detaillierte Metadaten (Größe, Datum, Typ, Berechtigungen) zu einer Datei oder einem Verzeichnis ab.execute_terminal_command: Führt einen Shell-Befehl aus, optional mit Angabecwdundtimeout. Gibt stdout/stderr zurück.
Kombinierte KI- und Dateisystemoperationen
save_generate_project_guidelines: Generiert Projektrichtlinien basierend auf einem Tech-Stack und speichert das Ergebnis in einem angegebenen Dateipfad.save_doc_snippet: Sucht Codeausschnitte aus der Dokumentation und speichert das Ergebnis in einem angegebenen Dateipfad.save_topic_explanation: Generiert eine detaillierte Erklärung eines Themas basierend auf der Dokumentation und speichert das Ergebnis in einem angegebenen Dateipfad.save_answer_query_direct: Beantwortet eine Abfrage nur unter Verwendung internen Wissens und speichert die Antwort in einem angegebenen Dateipfad.save_answer_query_websearch: Beantwortet eine Abfrage mithilfe von Websuchergebnissen und speichert die Antwort in einem angegebenen Dateipfad.
(Hinweis: Eingabe-/Ausgabeschemata für jedes Tool sind in den jeweiligen Dateien in
Voraussetzungen
Node.js (v18+)
Brötchen (
npm install -g bun)Google Cloud-Projekt mit aktivierter Abrechnung.
Vertex AI API im GCP-Projekt aktiviert.
In Ihrer Umgebung konfigurierte Google Cloud-Authentifizierung (empfohlen werden Standardanmeldeinformationen der Anwendung über
gcloud auth application-default loginoder ein Dienstkontoschlüssel).
Einrichtung und Installation
Projekt klonen/platzieren: Stellen Sie sicher, dass sich die Projektdateien am gewünschten Speicherort befinden.
Abhängigkeiten installieren:
bun installUmgebung konfigurieren:
Erstellen Sie eine
.envDatei im Projektstamm (kopieren Sie.env.example).Legen Sie die erforderlichen und optionalen Umgebungsvariablen wie in
.env.examplebeschrieben fest.Setzen Sie
AI_PROVIDERentweder auf"vertex"oder"gemini".Wenn
AI_PROVIDER="vertex", istGOOGLE_CLOUD_PROJECTerforderlich.Wenn
AI_PROVIDER="gemini", istGEMINI_API_KEYerforderlich.
Erstellen Sie den Server:
bun run buildDadurch wird der TypeScript-Code in
build/index.jskompiliert.
Verwendung (Standalone / NPX)
Nach der Veröffentlichung auf npm können Sie diesen Server direkt mit npx ausführen:
Alternativ können Sie es global installieren:
Hinweis: Für die eigenständige Ausführung müssen Sie vor der Ausführung des Befehls die erforderlichen Umgebungsvariablen (wie GOOGLE_CLOUD_PROJECT , GOOGLE_CLOUD_LOCATION , Authentifizierungsdaten, wenn ADC nicht verwendet wird) in Ihrer Shell-Umgebung festlegen.
Installation über Smithery
So installieren Sie Vertex AI Server für Claude Desktop automatisch über Smithery :
Laufen mit Cline
MCP-Einstellungen konfigurieren: Fügen Sie die Konfiguration in Ihrer Cline MCP-Einstellungsdatei hinzu/aktualisieren Sie sie (z. B.
.roo/mcp.json). Sie haben zwei Möglichkeiten, den Befehl zu konfigurieren:Option A: Verwenden von Node (Direkter Pfad – für die Entwicklung empfohlen)
Diese Methode verwendet
node, um das kompilierte Skript direkt auszuführen. Dies ist während der Entwicklung nützlich, wenn Sie den Code lokal geklont haben.{ "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... } }Wichtig: Stellen Sie sicher, dass der
argskorrekt auf die Dateibuild/index.jsverweist. Die Verwendung eines absoluten Pfads ist möglicherweise zuverlässiger.
Option B: Verwenden von NPX (erfordert die Veröffentlichung des Pakets auf npm)
Diese Methode verwendet
npx, um das Serverpaket automatisch aus der npm-Registrierung herunterzuladen und auszuführen. Dies ist praktisch, wenn Sie das Repository nicht klonen möchten.{ "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... } }Stellen Sie sicher, dass die Umgebungsvariablen im
envBlock korrekt gesetzt sind. Sie müssen entweder mit.envübereinstimmen oder hier explizit definiert sein. Entfernen Sie Kommentare aus der eigentlichen JSON-Datei.
Cline neu starten/neu laden: Cline sollte die Konfigurationsänderung erkennen und den Server starten.
Tools verwenden: Sie können jetzt die umfangreiche Liste an Tools über Cline verwenden.
Entwicklung
Überwachungsmodus:
bun run watchFlusen:
bun run lintFormatierung:
bun run format
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE .