Bun-based MCP Server について
Bun と TypeScript で作られた、MCP サーバー実装を学ぶための最小構成の例です。stdio トランスポート、加算ツール、PostgreSQL からの動的なツール読み込みを模擬する方法を示します。
主な機能
- 01Bun と TypeScript による実装
- 02stdio サーバートランスポート
- 03加算ツールの例
- 04PostgreSQL ツール読み込みの模擬
- 05Lint と型チェック用スクリプト
活用シーン
- 01最小構成の MCP サーバー実装の学習
- 02stdio 経由の MCP リクエストテスト
- 03データベース由来のツール定義の検証
MCP 対応
`@modelcontextprotocol/sdk` と `StdioServerTransport` を使った MCP サーバーです。`add` ツールを公開し、動的なツール読み込みを模擬します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Bun ベースの MCP サーバー
これは、Bun、TypeScript、@modelcontextprotocol/sdk パッケージを使用した最小構成の Model Context Protocol(MCP)サーバーです。以下の内容を紹介します。
- ローカルテスト用の StdioServerTransport
- 2 つの数値を加算する基本的なサンプルツール(
add) - (模擬)PostgreSQL データベースからの動的なツール読み込み
- 厳格な TypeScript および ESLint の設定
セットアップ
- Bun をインストールします。
- 依存関係をインストールします。
bun install
使用方法
サーバーを起動します。
bun run src/index.ts
サーバーは stdio 経由で MCP リクエストを待ち受けます。
ツールの読み込み
関数 load_tools_from_db は、PostgreSQL データベースからツールの定義とハンドラーを読み込む処理を模擬しています。必要に応じて、実際のデータベース処理に置き換えてください。
サンプルツール
add ツールは 2 つの数値(a と b)を受け取り、その合計を result として返します。
Lint
bun run lint
型チェック
bun run tsc
ファイル構成
src/index.ts:サーバーのメインエントリーポイントtsconfig.json:TypeScript の設定.eslintrc.json:ESLint の設定package.json:プロジェクトのメタデータとスクリプト
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。