API & MCP Server Skeleton (ElysiaJS + Bun) について
ElysiaJSとBunを使ったこのスケルトンは、REST、WebSocket、MCPに対応するAPIサーバーの出発点です。MCPプラグインレジストリとディスカバリーエンドポイントを備え、開発時のホットリロードにも対応します。
主な機能
- 01BunベースのREST APIサーバー
- 02WebSocketイベント処理
- 03MCPプラグインレジストリ
- 04MCPディスカバリーエンドポイント
- 05開発時のホットリロード
活用シーン
- 01RESTとMCPに対応するAPIの構築
- 02WebSocketによるリアルタイムイベント処理
MCP 対応
MCPの基本サポート、プラグインレジストリ、`/.well-known/mcp.json`のディスカバリーエンドポイントを含みます。ドキュメント上のMCPベースURLは`/mcp`です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
API & MCP Server Skeleton (ElysiaJS + Bun)
(ドキュメントはまだ完成していません。)
📑 目次
Bun ランタイムを使用する ElysiaJS 製の軽量かつ高性能な API サーバーです。Model Context Protocol(MCP)と WebSocket に対応しています。
🚀 機能
- Bun ランタイムを利用した REST API サーバー。
- WebSocket イベント処理(リアルタイム通信)。
- Model Context Protocol(MCP)の基本サポート:
- MCP プラグインレジストリ
- MCP ディスカバリーエンドポイント(
/.well-known/mcp.json)
- 開発中のホットリロード。
- スケーラブルなデプロイに対応。
- イベントの例:礼拝時間、イベント登録。
📋 必要条件
- Bun ランタイム(v1.0 以降):Bun のインストール
- Node.js(任意。wscat などのツールのインストールに使用)
- WebSocket クライアント(Postman、wscat など)
🛠️ はじめに
このプロジェクトをクローンし、依存関係をインストールします:
git clone https://github.com/luridarmawan/mcp-api-server.git
cd mcp-api-server
bun install
開発サーバーを起動します:
bun run dev
ブラウザーで http://localhost:3000 を開きます。
🧠 Model Context Protocol (MCP)
MCP は、AI エージェントやアプリケーションとのコンテキストを認識したやり取りを可能にするために設計された、軽量な通信プロトコルです。
- ベース URL:http://localhost:3000/mcp
- ディスカバリーエンドポイント:http://localhost:3000/mcp/.well-known/mcp.json
WebSocket を介した基本的な MCP のやり取りの例:
{
"event": "prayer:schedule",
"data": {
"city": "Jakarta"
}
}
詳細については、MCP と API の解説をご覧ください。
🔌 WebSocket の使用方法
WebSocket を介してサーバーとやり取りできます:
- 必要に応じて wscat をインストールします:
npm install -g wscat
- WebSocket サーバーに接続します:
wscat -c ws://localhost:3000
- 送信できるイベントの例:
| イベント | ペイロードの例 | 説明 |
|---|---|---|
prayer:schedule | "Jakarta" | 都市の礼拝時間を取得します |
registration:new | { "name": "Alice", "phone": "081122334455", "email": "[email protected]" } | 新しいユーザーを登録します |
# Install wscat (jika belum ada)
npm install -g wscat
# Connect ke socket server
wscat -c ws://localhost:3000
# Setelah terhubung, kirim event:
>> {"event":"prayer:schedule","data":{"city":"Jakarta"}}
>> {"event":"registration:new","data":{"name":"Alice","phone":"081122334455","email":"[email protected]"}}
📁 プロジェクト構成
.
├── constants.ts
├── index.test.ts
├── index.ts
├── modules
│ ├── mcp
│ │ ├── index.ts
│ │ └── types.ts
│ ├── prayer
│ │ ├── index.ts
│ │ └── types.ts
│ └── registration
│ ├── index.ts
│ └── types.ts
├── services
│ └── prayerService.ts
├── sockets
│ └── index.ts
└── utils
└── http.ts
🚀 デプロイ
本番環境向けにビルドして実行します:
bun run build
bun start
Vercel、Railway、Fly.io などのプラットフォームや、Bun に対応した任意の環境にデプロイできます。
📄 ライセンス
このプロジェクトは Apache 2.0 License のもとでライセンスされています。
📚 参考資料
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。