Skip to main content
Glama

Genkit MCP

Official
by firebase

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:

npm i genkit genkitx-mcp

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. npx oder uvx 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. Bei true 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:

  1. Wenn der Inhalt Text und gültiges JSON ist, wird das JSON analysiert und zurückgegeben.
  2. Wenn der Inhalt Text und kein gültiges JSON ist, wird der Text zurückgegeben.
  3. Wenn der Inhalt einen einzelnen Nicht-Textteil enthält, wird dieser zurückgegeben.
  4. 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 user und model . 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:

npx @modelcontextprotocol/inspector dist/index.js

Sobald Sie den Inspektor starten, können Sie Eingabeaufforderungen und Aktionen auflisten und manuell testen.

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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).

  1. Installation
    1. MCP-Client
      1. mcpClient()-Optionen
      2. Verwenden von MCP-Aktionen
      3. Tool-Antworten
    2. MCP-Server
      1. Bekannte Einschränkungen
      2. Testen Ihres MCP-Servers

    Related MCP Servers

    • A
      security
      A
      license
      A
      quality
      A powerful Model Context Protocol (MCP) tool for exploring and managing different types of databases including PostgreSQL, MySQL, and Firestore.
      Last updated -
      9
      3
      TypeScript
      MIT License
    • -
      security
      F
      license
      -
      quality
      Provides 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 -
      1
      TypeScript
      • Apple
    • -
      security
      A
      license
      -
      quality
      GitLabとの連携機能を提供するModel Context Protocol (MCP) サーバーです。GitLabの特定のプロジェクトからパイプラインの失敗情報やマージリクエストへの指摘事項を取得し、AIアシスタントに提供します。
      Last updated -
      Python
      MIT License
    • -
      security
      A
      license
      -
      quality
      The 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 -
      25
      Python
      MIT License
      • Linux
      • Apple

    View all related MCP servers

    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/firebase/genkit'

    If you have feedback or need assistance with the MCP directory API, please join our Discord server