MCP Server について
MCP Serverは、指定した場所にMCPサーバープロジェクトを作成するBunベースの開発者向けジェネレーターです。生成されるサンプルには、2つの数値を加算するツールが含まれます。
主な機能
- 01サンプルMCPプロジェクトを生成
- 02指定場所にプロジェクトを作成
- 032数値の合計ツールを同梱
- 04ツールモジュールで機能を追加
- 05テストカバレッジを確認
活用シーン
- 01新しいMCPサーバープロジェクトの作成
- 02Claude Desktopからプロジェクトを生成
- 03サーバーツールの追加とテスト
- 04Bunのツールでカバレッジを確認
MCP 対応
このプロジェクト自体がMCPサーバーで、サンプルMCPプロジェクトを作成するツールを公開します。Claude DesktopはMCPクライアントとしてプロジェクト作成を依頼できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバー
Bun を使用して独自の MCP サーバープロジェクトをセットアップする機能を提供する MCP サーバーです。
背景
このプロジェクトでは、Model Context Protocol(MCP)を利用して、あらかじめ指定された場所にサンプル MCP プロジェクトを作成するための標準化されたツール(MCP サーバー)を提供します。
この例では、Claude Desktop と連携して MCP サーバーを実行すると同時に、MCP クライアントとして MCP サーバーとやり取りします。
生成されるサンプルプロジェクトは、2 つの数値の合計を計算するツールの例を含め、このプロジェクトと同じ構成に従います。
NodeJS ではなく Bun を選択したのは、Bun が NodeJS の真の代替となるべく大きく進歩していることも示すためです。非常に高速で、セットアップが簡単なうえ、すぐに使える多くの機能が備わっています。また、ESLint などの既存のツールチェーンとの連携にも優れています。
前提条件
- Bun がインストールされている必要があります。
- Claude Desktop をインストールしておくことをお勧めします。
プロジェクトのセットアップ
-
リポジトリをクローンします。
-
次を実行します。
bun install -
/env/sample.envを基に、ルートに.envファイルを作成します。必要に応じて、説明に従って値を設定してください。注: これは主に、
bun run startを使ってサーバーを開発モードで実行する場合に関係します。 -
(任意) 次を実行して、プロジェクトの整合性を確認します。
bun run verify
ビルド
-
次を実行します。
bun run build
これによりエントリーポイント build/main.js がバンドルされ、利用できるようになります。
Claude Desktop のセットアップ
このセクションは、今回の使用例に合わせた詳細を含む一般的なガイドを参考にしています。
-
Claude Desktop を起動し、「Settings」を開きます。

-
「Settings」ペインの左側にある
Developerをクリックし、次にEdit Configをクリックします。
-
claude_desktop_config.jsonファイルを編集し、次を追加します。{ "mcpServers": { "create-mcp-app-bun": { "command": "bun", "args": ["run", "<path_to_project>/build/main.js"] } } }<path_to_project> をプロジェクトへのパスに置き換えます。例:
/Users/username/Documents/projects/create-mcp-server-app-bun -
Claude Desktop を再起動します。再起動しないと、Claude Desktop に
claude_desktop_config.jsonの変更が反映されないため、重要な手順です。 -
メイン画面で
Search and Toolsボタンをクリックし、次に MCP サーバー名をクリックします。

有効になっていることを確認してください。
使用方法
-
Claude に
create a new mcp projectと尋ねるだけで、新しい MCP プロジェクトの作成を開始できます。Claude はプロジェクト名(例:
my-test-mcp-server)を尋ね、指定するとプロジェクトを作成します。
-
プロジェクトがすでに存在する場合も、実装は適切に処理し、次に行う操作をユーザーに尋ねます。
開発
新しいツール
新しいツールを追加するには、./src/tools 内の各ツールモジュールが AbstractTool を継承し、ITool を実装したうえで、(テストカバレッジのために)明示的なコンストラクターを定義してください。
...
export class NewTool extends AbstractTool implements ITool {
// Explicit constructor definition to ensure test coverage in Bun tracks constructor.
constructor(fetch: typeof globalThis.fetch = globalThis.fetch) {
super(fetch);
}
...
さらに、以下のメソッドを実装する必要があります(詳細は対応する JSDoc を参照してください)。
getNamegetDescriptiongetInputSchemavalidateWithDefaultsprocessToolWorkflow
実装の際は既存のツールを参考にし、対応するテストも忘れずに実装してください。
追加のツールを登録するための設定は不要です。MCP サーバーを再起動すると、自動的に含まれます。
テストカバレッジ
lcov レポートを分析すると、カバレッジの不足箇所を把握しやすくなります。
注意:
- クラスのコンストラクターは、それぞれのクラス内で定義してください。Bun が追跡するのはクラスの関数(コンストラクターを含む)のみです。抽象クラスを継承すると、その抽象クラス独自のコンストラクターは追跡されないため、問題が発生します。そのため、クラス内で Abstract のコンストラクターを定義し、
superを呼び出してください。 - モジュールの先頭に一部のインポート(例:
import dedent from "dedent";)があると、Bun がその行をカバー済みとして正しく追跡できない場合があります。その場合は、他のインポートの後ろに移動すると正しく追跡されます。
前提条件(開発)
-
lcovをインストールします。brew install lcov -
VSCode 拡張機能
ryanluker.vscode-coverage-guttersをインストールします(settings.json で定義済みです)。
テストカバレッジの実行
-
ほとんどの場合、次のコマンドを実行すれば十分です。
bun run test:coverage注意: カバレッジが 100 未満でありながら
Uncovered Line #sが報告されない場合は、次の手順に従ってさらに調査し、上記の注意事項を確認してください。 -
詳細な調査を行う場合は、次のコマンドを実行します。
bun run test:coverage:lcovこれにより、VSCode 拡張機能
ryanluker.vscode-coverage-guttersがエディター内でカバー済みの行を可視化するために使用するlcovカバレッジレポートが生成されます。 -
HTML レポートが必要な場合は、ターミナルで次のコマンドを実行します。
genhtml --function-coverage --branch-coverage --output-directory coverage-report coverage/lcov.infoこれにより、任意のブラウザーで確認できる HTML カバレッジレポートが生成されます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。