mcpField
M
MCP Server

MCP Server

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

MCP Server について

MCP Serverは、指定した場所にMCPサーバープロジェクトを作成するBunベースの開発者向けジェネレーターです。生成されるサンプルには、2つの数値を加算するツールが含まれます。

主な機能

  1. 01サンプルMCPプロジェクトを生成
  2. 02指定場所にプロジェクトを作成
  3. 032数値の合計ツールを同梱
  4. 04ツールモジュールで機能を追加
  5. 05テストカバレッジを確認

活用シーン

  1. 01新しいMCPサーバープロジェクトの作成
  2. 02Claude Desktopからプロジェクトを生成
  3. 03サーバーツールの追加とテスト
  4. 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 などの既存のツールチェーンとの連携にも優れています。

前提条件

  1. Bun がインストールされている必要があります。
  2. Claude Desktop をインストールしておくことをお勧めします。

プロジェクトのセットアップ

  1. リポジトリをクローンします。

  2. 次を実行します。

    bun install
    
  3. /env/sample.env を基に、ルートに .env ファイルを作成します。必要に応じて、説明に従って値を設定してください。

    注: これは主に、bun run start を使ってサーバーを開発モードで実行する場合に関係します。

  4. (任意) 次を実行して、プロジェクトの整合性を確認します。

    bun run verify
    

ビルド

  1. 次を実行します。

    bun run build
    

これによりエントリーポイント build/main.js がバンドルされ、利用できるようになります。

Claude Desktop のセットアップ

このセクションは、今回の使用例に合わせた詳細を含む一般的なガイドを参考にしています。

  1. Claude Desktop を起動し、「Settings」を開きます。 画像

  2. 「Settings」ペインの左側にある Developer をクリックし、次に Edit Config をクリックします。 画像

  3. 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

  4. Claude Desktop を再起動します。再起動しないと、Claude Desktop に claude_desktop_config.json の変更が反映されないため、重要な手順です。

  5. メイン画面で Search and Tools ボタンをクリックし、次に MCP サーバー名をクリックします。

    画像 画像

有効になっていることを確認してください。

使用方法

  1. Claude に create a new mcp project と尋ねるだけで、新しい MCP プロジェクトの作成を開始できます。

    Claude はプロジェクト名(例:my-test-mcp-server)を尋ね、指定するとプロジェクトを作成します。

    画像

  2. プロジェクトがすでに存在する場合も、実装は適切に処理し、次に行う操作をユーザーに尋ねます。

開発

新しいツール

新しいツールを追加するには、./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 を参照してください)。

  • getName
  • getDescription
  • getInputSchema
  • validateWithDefaults
  • processToolWorkflow

実装の際は既存のツールを参考にし、対応するテストも忘れずに実装してください。

追加のツールを登録するための設定は不要です。MCP サーバーを再起動すると、自動的に含まれます。

テストカバレッジ

lcov レポートを分析すると、カバレッジの不足箇所を把握しやすくなります。

注意:

  • クラスのコンストラクターは、それぞれのクラス内で定義してください。Bun が追跡するのはクラスの関数(コンストラクターを含む)のみです。抽象クラスを継承すると、その抽象クラス独自のコンストラクターは追跡されないため、問題が発生します。そのため、クラス内で Abstract のコンストラクターを定義し、super を呼び出してください。
  • モジュールの先頭に一部のインポート(例:import dedent from "dedent";)があると、Bun がその行をカバー済みとして正しく追跡できない場合があります。その場合は、他のインポートの後ろに移動すると正しく追跡されます。
前提条件(開発)
  1. lcov をインストールします。

    brew install lcov
    
  2. VSCode 拡張機能 ryanluker.vscode-coverage-gutters をインストールします(settings.json で定義済みです)。

テストカバレッジの実行
  1. ほとんどの場合、次のコマンドを実行すれば十分です。

    bun run test:coverage
    

    注意: カバレッジが 100 未満でありながら Uncovered Line #s が報告されない場合は、次の手順に従ってさらに調査し、上記の注意事項を確認してください。

  2. 詳細な調査を行う場合は、次のコマンドを実行します。

    bun run test:coverage:lcov
    

    これにより、VSCode 拡張機能 ryanluker.vscode-coverage-gutters がエディター内でカバー済みの行を可視化するために使用する lcov カバレッジレポートが生成されます。

  3. HTML レポートが必要な場合は、ターミナルで次のコマンドを実行します。

    genhtml --function-coverage --branch-coverage --output-directory coverage-report coverage/lcov.info
    

    これにより、任意のブラウザーで確認できる HTML カバレッジレポートが生成されます。

コメント

MCP は初めてですか?

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

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