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

🔍 MCP Inspector is up and running at http://localhost:5173 🚀

Inspectorが起動したら、上記のように表示されるので、ブラウザでURLにアクセスします。

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

Cursor_と_MCP_Inspector.png

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

MCP_Inspector.png

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

MCP_Inspector.png

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

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

MCP_Inspector.png

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

自動テストはできる?

自動テストのしくみは現時点では用意されていないようですが、Inspectorを起動してPlaywrightなどでIntegration Testを実装することは可能と思われます。興味のある方はチャレンジしてみてください。

最後に

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

最終更新: