MCP Inspectorを使ってMCPサーバーをテストする方法

MCPを使うとさまざまなWebサービスやアプリケーションをプラグインのように生成AIと連携させることができます。

MCPとはなんぞやという方はこちらをご覧ください。

自作のMCPサーバーを開発される機会も増えてくると思いますが、MCPサーバーを開発していると、どうやってテストしたらいいんだろうと思われるのではないでしょうか。MCPサーバーはJSON-RPCのサーバーとして動作するもので、通常は公式のSDKを用いて開発することになります。なのでMCPサーバーが正常に動作するかどうかの検証を、Jestなどの一般的なユニットテストで書くことができません。公式サイトでは、MCP Inspectorを使ってテストせよと書かれてあります。今回はMCP Inspectorを使って自作のMCPサーバーをテストする方法について説明します。

公式サイト

GitHubのリポジトリはこちらにあります。

使ってみる

MCPサーバーとして、FileSystem MCP Serverを使います。NPMやPyPIパッケージから直接サーバーを起動することもできますが、今回は開発しているライブラリのテストを想定して、ソースコードからビルドすることにします。MCPサーバーの開発言語はTypeScriptでもPythonでもGoでも何でも構いませんが、Inspector自体はJavaScriptで書かれているので、実行にはNode.jsが必要です。

リポジトリをcloneして、/src/filesystemにあるコードをビルドします。

git clone git@github.com:modelcontextprotocol/servers.git
cd servers/src/filesystem
npm install
npm run build

ビルドできたら、実行できるか確認してみましょう。このサーバーは、ローカルにあるファイルを生成AIから操作するためのMCPサーバーなので、引数にアクセスを許可するディレクトリを渡す必要があります。

node dist/index.js /Users/yamada/tmp

Secure MCP Filesystem Server running on stdio

上記のメッセージが表示されたら成功です。いったんCtrl+Cでサーバーを停止します。

InspectorからMCPサーバーを起動する

Inspectorはnpxコマンドで直接起動できるので、インストールする必要はありません。

npx @modelcontextprotocol/inspector node dist/index.js /Users/yamada/tmp

Inspectorが起動したら、自動的にブラウザが立ち上がります。

「Connect」をクリックしてサーバーに接続します。

SCR-20261013-oflj.png

接続すると、メニューが表示されます。このMCPサーバーでは、Toolしか実装されていないので、Resources/Prompts/Toolsのうち、Toolsだけが有効になっています。

「Tools」をクリックすると、実装されているToolの一覧が表示されます。ここから実際にToolの動作を確認することができます。試しに「List Directory」をクリックして、pathに有効なディレクトリを入力してみましょう。

SCR-20261013-oggm.png

ディレクトリの中身が表示されましたね!

続いて、「Read Text File」をクリックして、先程List Directoryで取得したファイルのパスを指定すると、ファイルの内容を読み出すことができます。

SCR-20261013-ogsd.png

このように、Inspectorを使えばMCPサーバーに実装した機能を画面から実行できるようになります。もちろん、MCPサーバーに実装されていれば、ResourceやPromptsについても同様に実行できます。

自動テストはできる?

MCP Inspectorには、上記のブラウザで動作するモードの他に、CLIのモードも用意されています。これを組み込むことで、スモークテストや結合テストを自動化ことができます。

さきほどのList Directoryツールを呼び出すコマンドは以下のようになります。

npx @modelcontextprotocol/inspector --cli node dist/index.js /Users/yamada/tmp --method tools/call --tool-name list_directory --tool-arg "path=/Users/yamada/tmp"

ユニットテストについて

ユニットテストについては、InMemoryTransport を使うのがおすすめです。モックを生成するヘルパー関数を用意することで、擬似的なMCPクライアントを使用したテストを書くことができます。

最後に

社内のマニュアルを生成AIから参照できる、RunbookのMCPサーバーを提供しています。ヘルプデスク業務やサポート業務などで便利に使えますのでぜひ試してみてくださいね。

最終更新: