Genkit MCP
[!WARNUNG]
Dieses Plugin ist experimentell, d. h. es wird möglicherweise nicht langfristig unterstützt und APIs unterliegen häufiger fehlerhaften Änderungen.
Dieses Plugin ermöglicht die Integration zwischen Genkit und dem Model Context Protocol (MCP). MCP ist ein offener Standard, der es Entwicklern ermöglicht, „Server“ zu erstellen, die Tools, Ressourcen und Eingabeaufforderungen für Clients bereitstellen. Genkit MCP ermöglicht es Genkit-Entwicklern, MCP-Tools, -Eingabeaufforderungen und -Ressourcen sowohl als Client zu nutzen als auch Tools und Eingabeaufforderungen als Server bereitzustellen.
Installation
Um zu beginnen, benötigen Sie Genkit und das MCP-Plugin:
MCP-Client
Um einen MCP-Client zu erstellen, rufen Sie die Funktion mcpClient
auf, um ein Genkit-Plugin für einen MCP-Server zu generieren. So verwenden Sie beispielsweise den Beispiel- Dateisystemserver von MCP:
Die meisten MCP-Server sind so konzipiert, dass sie als gestartete Prozesse auf demselben Rechner über den stdio
Transport laufen. Mit der Option serverProcess
geben Sie den Befehl, die Argumente und die Umgebungsvariablen für die Erstellung des Servers als Unterprozess an.
mcpClient()-Optionen
name
: (erforderlich) Der Name für diesen Client, der seinen Tools und Eingabeaufforderungen Namespaces zuweist.version
: (optional) Die Versionsnummer des Clients. Der Standardwert ist „1.0.0“.- Sie müssen eines der folgenden Elemente angeben:
serverProcess
: Parameter zum Starten eines lokalen Serverprozesses mithilfe des stdio-MCP-Transports.command
: Shell-Befehlspfad zum Starten des MCP-Servers. Kann z. B.npx
oderuvx
sein, um den Server von einem Paketmanager herunterzuladen und auszuführen.args
: (optional) Array von String-Argumenten, die an den Befehl übergeben werden sollen.env
: (optional) Schlüsselwertobjekt von Umgebungsvariablen, die an den Befehl übergeben werden sollen.
serverUrl
: Die URL eines Remote-Servers, zu dem über den SSE MCP-Transport eine Verbindung hergestellt werden soll.- **
serverWebsocketUrl
: Die URL eines Remote-Servers, zu dem über den WebSocket-MCP-Transport eine Verbindung hergestellt werden soll. transport
: Ein vorhandenes MCP-Transportobjekt für die Verbindung mit dem Server.
rawToolResponses
: (optional) Ein Boolean-Flag. Beitrue
werden Tool-Antworten im MCP-Rohformat zurückgegeben; andernfalls werden sie für die Genkit-Kompatibilität verarbeitet.
Verwenden von MCP-Aktionen
Der Genkit MCP-Client erkennt automatisch verfügbare Tools und Eingabeaufforderungen und registriert sie bei Genkit. Dadurch sind sie überall verfügbar, wo andere Tools und Eingabeaufforderungen verwendet werden können. Für den Zugriff auf Ressourcen werden spezielle list_resources
und read_resource
-Tools registriert, die auf Ressourcen für den Server zugreifen.
Alle MCP-Aktionen werden unter dem von Ihnen angegebenen Namen in Namespaces zusammengefasst, sodass ein Client namens filesystem
Tools wie filesystem/read_file
registriert.
Tool-Antworten
MCP-Tools geben ein content
zurück, im Gegensatz zu einer strukturierten Antwort wie die meisten Genkit-Tools. Das Genkit MCP-Plugin versucht, den zurückgegebenen Inhalt zu analysieren und zu verarbeiten:
- Wenn der Inhalt Text und gültiges JSON ist, wird das JSON analysiert und zurückgegeben.
- Wenn der Inhalt Text und kein gültiges JSON ist, wird der Text zurückgegeben.
- Wenn der Inhalt einen einzelnen Nicht-Textteil enthält, wird dieser zurückgegeben.
- Wenn der Inhalt aus mehreren/gemischten Teilen besteht, wird die vollständige Inhaltsantwort zurückgegeben.
MCP-Server
Sie können auch alle Tools und Eingabeaufforderungen einer Genkit-Instanz als MCP-Server verfügbar machen:
Das obige Beispiel startet einen MCP-Server mit dem stdio -Transport, der ein Tool namens add
und eine Eingabeaufforderung namens happy
bereitstellt. Um den Server mit einem anderen Transport zu starten, verwenden Sie mcpServer(...).start(otherTransport)
.
Bekannte Einschränkungen
- MCP-Eingabeaufforderungen können nur Zeichenfolgenparameter annehmen, daher müssen Eingaben für Schemata Objekte mit ausschließlich Zeichenfolgeneigenschaftswerten sein.
- MCP-Eingabeaufforderungen unterstützen nur
user
undmodel
.system
werden nicht unterstützt. - MCP-Eingabeaufforderungen unterstützen nur einen einzigen „Typ“ innerhalb einer Nachricht, sodass Sie Medien und Text nicht in derselben Nachricht mischen können.
Testen Ihres MCP-Servers
Sie können Ihren MCP-Server mit dem offiziellen Inspector testen. Wenn Ihr Servercode beispielsweise in dist/index.js
kompiliert wurde, können Sie Folgendes ausführen:
Sobald Sie den Inspektor starten, können Sie Eingabeaufforderungen und Aktionen auflisten und manuell testen.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Bietet Integration zwischen Genkit und dem Model Context Protocol (MCP).
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA powerful Model Context Protocol (MCP) tool for exploring and managing different types of databases including PostgreSQL, MySQL, and Firestore.Last updated -93TypeScriptMIT License
- -securityFlicense-qualityProvides integration with Github through the Model Context Protocol (MCP), allowing Large Language Models to interact with Github's repositories, issues, pull requests and search functionality.Last updated -1TypeScript
- -securityAlicense-qualityGitLabとの連携機能を提供するModel Context Protocol (MCP) サーバーです。GitLabの特定のプロジェクトからパイプラインの失敗情報やマージリクエストへの指摘事項を取得し、AIアシスタントに提供します。Last updated -PythonMIT License
- -securityAlicense-qualityThe Model Context Protocol (MCP) Jenkins integration is an open-source implementation that bridges Jenkins with AI language models following Anthropic's MCP specification. This project enables secure, contextual AI interactions with Jenkins tools while maintaining data privacy and security.Last updated -25PythonMIT License