Skip to main content
Glama

Genkit MCP

Official
by firebase

ジェンキットMCP

[!警告]
このプラグインは実験的なものであり、長期的にはサポートされない可能性があり、API は頻繁に重大な変更を受ける可能性があります。

このプラグインは、Genkitとモデルコンテキストプロトコル(MCP)の統合を提供します。MCPは、開発者がクライアントにツール、リソース、プロンプトを提供する「サーバー」を構築するためのオープンスタンダードです。Genkit MCPを使用すると、Genkit開発者はクライアントとしてMCPのツール、プロンプト、リソースを利用するだけでなく、サーバーとしてツールやプロンプトを提供することもできます。

インストール

始めるには、Genkit と MCP プラグインが必要です。

npm i genkit genkitx-mcp

MCPクライアント

MCPクライアントを作成するには、 mcpClient関数を呼び出して、MCPサーバー用のGenkitプラグインを生成します。例えば、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 ...*/, ], });

ほとんどのMCPサーバーは、 stdioトランスポートを使用して、同一マシン上で生成されたプロセスとして実行されるように構築されています。serverProcessオプションを指定すると、サーバーserverProcessサブプロセスとして生成するためのコマンド、引数、および環境変数が指定されます。

mcpClient() オプション

  • name : (必須) このクライアントの名前。ツールとプロンプトの名前空間を指定します。
  • version : (オプション) クライアントのバージョン番号。デフォルトは「1.0.0」です。
  • 次のいずれかを指定する必要があります:
    • serverProcess : stdio MCP トランスポートを使用してローカル サーバー プロセスを起動するためのパラメーター。
      • command : MCPサーバーを起動するためのシェルコマンドパス。パッケージマネージャーからサーバーをダウンロードして実行する場合は、例えばnpxuvxなどを使用します。
      • args : (オプション) コマンドに渡す文字列引数の配列。
      • env : (オプション) コマンドに渡す環境変数のキー値オブジェクト。
    • serverUrl : SSE MCP トランスポートを使用して接続するリモート サーバーの URL。
    • ** serverWebsocketUrl : WebSocket MCP トランスポートを使用して接続するリモート サーバーの URL。
    • transport : サーバーに接続するための既存の MCP トランスポート オブジェクト。
  • rawToolResponses : (オプション) ブール型フラグ。true true場合、ツールレスポンスは生のMCP形式で返されます。それ以外の場合は、Genkitとの互換性のために処理されます。

MCPアクションの使用

Genkit MCPクライアントは、利用可能なツールとプロンプトを自動的に検出し、Genkitに登録します。これにより、他のツールやプロンプトが使用できる場所であればどこでも利用できるようになります。リソースにアクセスするために、サーバーのリソースにアクセスするための特別なlist_resourcesread_resourceツールが登録されています。

すべての MCP アクションは指定した名前で名前空間化されるため、 filesystemというクライアントはfilesystem/read_fileなどのツールを登録します。

ツールの応答

MCPツールは、多くのGenkitツールのような構造化されたレスポンスではなく、 content配列を返します。Genkit MCPプラグインは、返されたコンテンツを解析して強制的に変換しようとします。

  1. コンテンツがテキストで有効な JSON の場合、JSON が解析されて返されます。
  2. コンテンツがテキストであり、有効な JSON ではない場合は、テキストが返されます。
  3. コンテンツにテキスト以外の部分が 1 つだけある場合は、それが返されます。
  4. コンテンツに複数の部分または混合部分がある場合は、完全なコンテンツ応答が返されます。

MCPサーバー

Genkit インスタンスからのすべてのツールとプロンプトを MCP サーバーとして公開することもできます。

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();

上記のコマンドは、stdioトランスポートを使用してMCPサーバーを起動します。stdioトランスポートは、 addというツールとhappyというプロンプトを表示します。別のトランスポートを使用してサーバーを起動するには、 mcpServer(...).start(otherTransport)使用します。

既知の制限事項

  • MCP プロンプトは文字列パラメータのみを受け入れることができるため、スキーマへの入力は文字列プロパティ値のみを持つオブジェクトである必要があります。
  • MCP プロンプトはusermodelメッセージのみをサポートします。 systemメッセージはサポートされません。
  • MCP プロンプトはメッセージ内で単一の「タイプ」のみをサポートするため、同じメッセージ内でメディアとテキストを混在させることはできません。

MCPサーバーのテスト

公式インスペクタを使ってMCPサーバーをテストできます。例えば、サーバーコードがdist/index.jsにコンパイルされている場合は、次のコマンドを実行できます。

npx @modelcontextprotocol/inspector dist/index.js

インスペクターを起動すると、プロンプトとアクションを一覧表示し、手動でテストすることができます。

You must be authenticated.

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.

Genkitと Model Context Protocol (MCP) 間の統合を提供します。

  1. インストール
    1. MCPクライアント
      1. mcpClient() オプション
      2. MCPアクションの使用
      3. ツールの応答
    2. MCPサーバー
      1. 既知の制限事項
      2. MCPサーバーのテスト

    Related MCP Servers

    • -
      security
      F
      license
      -
      quality
      Enables management of development projects with GitHub integration, facilitating project tracking, repository linking, and metadata maintenance within the Model Context Protocol.
      Last updated -
      3
      JavaScript
    • 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

    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