Genkit MCP
OfficialGenkit 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:
npm i genkit genkitx-mcpRelated MCP server: MCP Server
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:
import { genkit } from 'genkit';
import { mcpClient } from 'genkitx-mcp';
// the filesystem server requires one or more allowed directories
const ALLOWED_DIRS = ['/Users/yourusername/Desktop'];
const filesystemClient = mcpClient({
name: 'filesystem',
serverProcess: {
command: 'npx',
args: ['-y', '@modelcontextprotocol/server-everything', ...ALLOWED_DIRS],
},
});
const ai = genkit({
plugins: [
filesystemClient /* ... other plugins such as model providers ...*/,
],
});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.npxoderuvxsein, 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. Beitruewerden 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:
import { genkit, z } from 'genkit';
import { mcpServer } from 'genkitx-mcp';
const ai = genkit({});
ai.defineTool(
{
name: 'add',
description: 'add two numbers together',
inputSchema: z.object({ a: z.number(), b: z.number() }),
outputSchema: z.number(),
},
async ({ a, b }) => {
return a + b;
}
);
ai.definePrompt(
{
name: "happy",
description: "everybody together now",
input: {
schema: z.object({
action: z.string().default("clap your hands").optional(),
}),
},
},
`If you're happy and you know it, {{action}}.`
);
mcpServer(ai, { name: 'example_server', version: '0.0.1' }).start();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
userundmodel.systemwerden 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:
npx @modelcontextprotocol/inspector dist/index.jsSobald Sie den Inspektor starten, können Sie Eingabeaufforderungen und Aktionen auflisten und manuell testen.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityFmaintenanceModel Context Protocol (MCP) server implementation that enables Claude Desktop to interact with Google's Gemini AI models.6197257MIT
- FlicenseBqualityDmaintenanceImplements the Model Context Protocol (MCP) to provide AI models with a standardized interface for connecting to external data sources and tools like file systems, databases, or APIs.1153
- AlicenseAqualityCmaintenanceImplementation of Model Context Protocol (MCP) server that provides tools for accessing Google Cloud's Vertex AI Gemini models, supporting features like web search grounding and direct knowledge answering for coding assistance and general queries.204687MIT
- FlicenseDqualityDmaintenanceA ready-to-use starter implementation of the Model Context Protocol (MCP) server that enables applications to provide standardized context for LLMs with sample resources, tools, and prompts.21781
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
MCP (Model Context Protocol) server for Appwrite
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/genkit-ai/genkit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server