mcpField
E
eMCP

eMCP

ローカル
github.com/joeymeere開発ツール1186 週間前に更新

eMCP について

eMCPはMCPサーバー構築用のTypeScriptフレームワークです。LiteMCP風のAPIに、任意で使える認証機能と階層型ミドルウェアを加えています。

主な機能

  1. 01LiteMCPの機能
  2. 02組み込み認証ハンドラー
  3. 03階層型カスタムミドルウェア

活用シーン

  1. 01MCPサーバーへのリクエスト認証の追加
  2. 02サーバーハンドラーの前後でのミドルウェア実行

MCP 対応

eMCPはMCPサーバーを構築するフレームワークです。MCPリクエストの処理に認証ハンドラーやカスタムミドルウェアを利用できます。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

eMCP


組み込みの認証処理やカスタムミドルウェアなどの拡張機能を備えた、LiteMCP TS ライブラリのフォークです。

特長

LiteMCP などのツールとほぼそのまま置き換えられるように設計されています。そのため、追加された機能はすべて現在オプションです。

  • LiteMCP の現在の全機能
  • 組み込みの認証ハンドラー
  • カスタムのレイヤードミドルウェアをサポート

クイックスタート

Bun または NPM でインストールします。

npm i emcp
# or use Bun (preferred)
bun add emcp
基本的な使い方

(任意)サンプルを実行します。

bun run example:basic
bun run example:auth
bun run example:middleware
bun run example:advanced
const server = new eMCP("mcp-server-with-auth", "1.0.0", {
  authenticationHandler: async (request) => {
    // implement your custom auth logic here
    return true;
  },
});

// Request to this tool, or any other resource or prompt will
// require authentication governed by the handler
server.addTool({
  name: "add",
  description: "Add two numbers",
  parameters: z.object({
    a: z.number(),
    b: z.number(),
  }),
  execute: async (args) => {
    server.logger.debug("Adding two numbers", args);
    return args.a + args.b;
  },
});
カスタムミドルウェア
const server = new eMCP("mcp-server-with-middleware", "1.0.0", {
  authenticationHandler: async (request) => {
    // implement your custom auth logic here
    return true;
  },
});

// This will time entire req -> res cycle, including middlewares
server.use(async (request, next) => {
  const startTime = Date.now();
  server.logger.debug("Request started", { method: request.method });

  // Wait for all inner middleware and the handler to complete
  const response = await next();

  const endTime = Date.now();
  server.logger.debug("Request completed", {
    method: request.method,
    duration: `${endTime - startTime}ms`,
  });

  return response;
});

ミドルウェアの仕組み

eMCP のミドルウェアは、登録された順に実行されます。すべてのミドルウェアハンドラーが next() ブロックに到達すると、通常の MCP 処理が実行されます。サーバーの処理が完了すると、next() ブロックの後にコードがあるミドルウェアハンドラーは、逆順に実行されます。

簡単に言うと、次のような流れです。

<---- Request received ----
1. Middleware 1
2. Middleware 2
<---- Pre-processing done ---->
4. Server handler
<---- Post-processing start ---->
5. Middleware 2
6. Middleware 1
---- Response sent ---->

Hono のようなフレームワークに慣れている方には、おなじみの仕組みです。

ロードマップ

  • MCP<->MCP 間の快適な通信
  • フレームワークへの統合

なぜ?

そうしたかったからです

コメント

MCP は初めてですか?

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

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