MCP Server for Bun and Elysia について
Bun と Elysia Web フレームワークで実装された MCP サーバーで、SSE トランスポートによりリソース、ツール、プロンプトを LLM に公開します。Bun ランタイム上で TypeScript を使って MCP サーバーを構築したい開発者向けです。
主な機能
- 01Bun と Elysia 向けの SSE トランスポート
- 02リソース、ツール、プロンプトに対応
- 03Bun JavaScript ランタイムで動作
- 04TypeScript 型定義を同梱
- 05開発時のホットリロードと本番向けビルド
活用シーン
- 01Bun と Elysia で MCP サーバーを構築する
- 02MCP Inspector で SSE 接続のサーバーをデバッグする
MCP 対応
本プロジェクトは MCP サーバーであり、SSE トランスポート経由でリソース、ツール、プロンプトを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Bun と Elysia 用 MCP サーバー
Bun と Elysia Web フレームワークを使用した Model Context Protocol(MCP)サーバーの実装です。このプロジェクトでは、標準化されたインターフェースを通じて LLM にリソース、ツール、プロンプトを公開する、高性能な MCP サーバーを作成できます。
特長
- Bun と Elysia 用の Server-Sent Events(SSE)トランスポート実装
- リソース、ツール、プロンプトを含む MCP プロトコルを完全サポート
- Bun の JavaScript ランタイムによる高いパフォーマンス
- 適切な型定義による TypeScript のサポート
- MCP 互換サーバーを作成するための使いやすい API
前提条件
- お使いのシステムに Bun がインストールされていること
- TypeScript と Elysia の基本的な知識
インストール
# Clone the repository
git clone <your-repo-url>
cd mcp-server
# Install dependencies
bun install
使用方法
サーバーの起動
# Start the server
bun start
# Start with hot reloading for development
bun dev
本番環境向けのビルド
# Build for production
bun run build
これにより、dist ディレクトリに minify された Node.js 互換ビルドが作成されます。
開発
プロジェクト構成
src/index.ts- サーバーのメインエントリーポイントsrc/SSEElysiaTransport.ts- Bun と Elysia 用の SSE トランスポート実装
MCP サーバーの作成
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
import { SSEElysiaTransport } from "./SSEElysiaTransport";
import { Elysia } from "elysia";
// Create MCP server
const server = new McpServer({
name: "my-mcp-server",
version: "1.0.0"
});
// Add resources, tools, and prompts
server.resource(
"example",
"example://resource",
async (uri) => ({
contents: [{
uri: uri.href,
text: "Example resource content"
}]
})
);
// Create Elysia app
const app = new Elysia()
.get("/", () => "MCP Server")
.get("/sse", async (context) => {
try {
// Create transport
const transport = new SSEElysiaTransport("/messages", context);
// Store transport
const sessionId = transport.sessionId;
// ... store transport in a map
// Connect to MCP server
await server.connect(transport);
return;
} catch (error) {
// Handle error
}
})
.post("/messages", async (context) => {
// Handle incoming messages
});
// Start server
app.listen(3001, () => {
console.log("MCP Server running at http://localhost:3001");
});
デバッグ
MCP Inspector ツールを使用して MCP サーバーをデバッグし、SSE 経由で接続できます。
npx @modelcontextprotocol/inspector
Web インターフェースが開き、次の操作を行えます。
- 利用可能なリソース、ツール、プロンプトを一覧表示する
- ツールの呼び出しやリソースの取得をテストする
- クライアントとサーバー間の通信を確認する
コントリビューション
コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。
ライセンス
このプロジェクトは MIT ライセンスの下で公開されています。詳細については LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。