mcpField
F
fastify-mcp

fastify-mcp

ローカル
npmjs.com開発ツール2724 週間前に更新

fastify-mcp について

fastify-mcp は、Fastify アプリケーション内で MCP サーバーを動作させるための Fastify プラグインです。Streamable HTTP とレガシーな HTTP+SSE の両方のトランスポートに対応しており、Fastify を利用している Node.js 開発者を想定しています。

主な機能

  1. 01Streamable HTTP トランスポートに対応
  2. 02レガシーな HTTP+SSE トランスポートに対応
  3. 03Fastify プラグインとして登録
  4. 04メモリ内での複数セッション管理
  5. 05connected・terminated・error のセッションイベント

活用シーン

  1. 01既存の Fastify アプリに MCP エンドポイントを追加
  2. 02ホストサーバーで複数の MCP セッションを管理

MCP 対応

このプラグインは MCP サーバーを Fastify のルートにマウントし、MCP クライアントが HTTP 経由で接続できるようにします。セッション ID と有効なセッションの対応は、メモリ内で管理されます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

fastify-mcp

Model Context Protocol サーバーを Fastify アプリに統合します。

Streamable HTTP トランスポート およびレガシーの HTTP+SSE トランスポート をサポートしています。

使い方

まず、MCP サーバーを定義します。

function createServer() {
  const mcpServer = new McpServer({
    name: "...",
    version: "...",
  });

  mcpServer.tool("...");
  mcpServer.resource("...");

  return mcpServer.server;
}

Fastify アプリを作成し、プラグインを登録します。

import { fastify } from "fastify";
import { streamableHttp } from "fastify-mcp";
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";

const app = fastify();

app.register(streamableHttp, {
  // Set to `true` if you want a stateful server
  stateful: false,
  mcpEndpoint: "/mcp",
  sessions: new Sessions<StreamableHTTPServerTransport>()
  createServer,
});

app.listen({ port: 8080 });

より詳細な例については、examples ディレクトリを参照してください。

インストール

# npm
npm install fastify-mcp

# yarn
yarn add fastify-mcp

セッション管理

公式の MCP TypeScript SDK は、複数のセッションの管理を標準ではサポートしていないため、ホストサーバー側でこれを行う必要があります。

このパッケージは、MCP SDK の例で推奨されているように、アクティブな各セッションをそのセッション ID に紐づけるインメモリのマッピングを使用して、複数のセッションを管理します。

セッションイベント

Sessions クラスは以下のイベントを発行します。

  • connected: 新しいセッションが追加されたときに発行されます。
  • terminated: セッションが削除されたときに発行されます。
  • error: 非同期イベントハンドラーがエラーをスローしたときに発行されます。
const sessions = new Sessions<StreamableHTTPServerTransport>();

sessions.on("connected", (sessionId) => {
  console.log(`Session ${sessionId} connected`);
});

sessions.on("terminated", (sessionId) => {
  console.log(`Session ${sessionId} terminated`);
});

コントリビューション

このパッケージを使用していて問題が発生した場合は、issue を作成してください。新機能やバグ修正のプルリクエストも歓迎します。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。