【MCP Inspector】ローカルコンテナ環境のMCPサーバーをデバックする方法

# 目的
最近は多くのサービスがMCPサーバーを提供し始めており、中には自作を行う人も増えてきたのではないでしょうか。
その際に欲しくなるのがデバック機能ですよね。

本記事ではそんなMCPサーバーをデバックできるツール[MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector)の使い方までをまとめます。

今回デバック対象のMCPサーバーをは以下の記事で作成したものを使います。
是非皆さんもMCPサーバーを立てて実際に動かしてみてください。

https://qiita.com/eiji-noguchi/items/71e11b1fe16257fcedb0


# MCP Inspector とは
MCP Inspectorとは、MCPを提唱したAnthoropicの公式から提供されており、MCP サーバーのテストとデバッグを行うための対話型開発者ツールです。
公式サイトはこちら↓

https://modelcontextprotocol.io/docs/tools/inspector

https://github.com/modelcontextprotocol/inspector


# MCP Inspectorの実行方法
基本的には先ほどの公式の[サイト](https://modelcontextprotocol.io/docs/tools/inspector)や[リポジトリ](https://github.com/modelcontextprotocol/inspector)のREADMEに書いてあるので、そちらも参考にしてください。

## 前提条件
今回のデバック対象のMCPサーバーは以下の記事で構築したものを使います。
[【MCP】Claude DesktopからLambda関数を呼び出しS3のファイルを取得する（lambda-tool-mcp-server）](https://qiita.com/eiji-noguchi/items/71e11b1fe16257fcedb0)

このMCPサーバーは下記条件で動作するようになっています。
- Windows(WSL2)
- Docker Container
    - 実行コマンド（Claude Desktopの場合）
    ```json:claude_desktop_config.json
    {
        "mcpServers": {
          "awslabs.lambda-tool-mcp-server": {
            "command": "docker",
            "args": [
                "run",
                "--rm",
                "--interactive",
                "--volume",
                "C:\\Users\\user\\.aws:/app/.aws:ro", 
                "--env",
                "FUNCTION_LIST=lambda-toop-mcp-s3-bucket-list,lambda-toop-mcp-s3-file-list",
                "--env",
                "FUNCTION_INPUT_SCHEMA_ARN_TAG_KEY=tool-input-schema-arn",
                "--env",
                "AWS_REGION=ap-northeast-1",
                "--env",
                "AWS_PROFILE=my_profile",
                "awslabs/lambda-tool-mcp-server:latest"
            ],
            "env": {},
            "disabled": false,
            "autoApprove": []
          }
        }
    }
    ```

## Inspectorの実行
MCP InspectorはNode.jsパッケージとして公開されているので、下記コマンドですぐに実行できます。

```
npx @modelcontextprotocol/inspector
```

ただ、今回のMCPサーバーはローカルのDockerコンテナで動かしていますので、MCP InspectorにDockerコマンドと使用するMCPサーバーに合わせた環境変数を渡します。

```terminal
npx @modelcontextprotocol/inspector \
    docker run --rm --interactive \
    --volume /mnt/c/Users/user/.aws:/app/.aws:ro \
    --env AWS_REGION=ap-northeast-1 \
    --env FUNCTION_LIST=lambda-toop-mcp-s3-bucket-list,lambda-toop-mcp-s3-file-list \
    --env FUNCTION_INPUT_SCHEMA_ARN_TAG_KEY=tool-input-schema-arn \
    --env AWS_PROFILE=eiji \
    awslabs/lambda-tool-mcp-server:latest
```
:warning:`.aws`のパスについては環境に合わせたものに変更してください。

実行が成功すると以下のように表示されますので、`http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=hogehoge1234`にアクセスします。
```
Starting MCP inspector...
⚙️ Proxy server listening on 127.0.0.1:6277
🔑 Session token: 86124fe68fd2a5941c551c74f2bbca6b06162b3c1169a35a686ee2c77ac39186
Use this token to authenticate requests or set DANGEROUSLY_OMIT_AUTH=true to disable auth

🔗 Open inspector with token pre-filled:
   http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=86124fe68fd2a5941c551c74f2bbca6b06162b3c1169a35a686ee2c77ac39186
   (Auto-open is disabled when authentication is enabled)

🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀
```

するとこのような画面が表示されますので、これでOKです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621838/20db93f1-287e-4c1a-86b4-379c146e6e09.png)



# MCP Inspectorの使い方
まず、画面のサイドメニューを確認しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621838/068fc6a5-cd93-49d2-a6b9-25867af0334c.png)

- Transport Type
MCPサーバーとの通信方式を指定します。
STDIO（標準入力）、SSE、Streamable HTTP が選択できるようになっています。
※今回はSTDIOを使います。

- Command
MCPサーバーを起動するためのコマンドを記述します。
先ほどの`inspector`実行コマンドで指定したものがすでに入っているかと思います。

- Arguments
コマンドに渡される引数を記述します。
こちらも`inspector`実行コマンドで指定したものがすでに入っているかと思います。

他にも環境変数や設定オプションなどがありますが、今回は上記3つの設定が入っていればOKです。


## MCPサーバーとの接続
次にMCPサーバーと接続するため、`Connect`ボタンを押下してください。
`initialize`が走り、ステータスが`Connected`になれば接続完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621838/022d3338-49f5-439c-bf12-beedaea0e3f4.png)

次に`Tools`タブから`List Tools`を押下しましょう。
登録されているToolsが表示されればいよいよ利用可能になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621838/4cf4a119-80d6-4173-9d1e-0a0275d63ab1.png)

では、実際に表示されているツールを選択し、MCPサーバーが正常に動いているかデバックしてみましょう。
今回のリクエストボディは以下のようにしています。
```
{
  "bucket_name": "バケット名"
}
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621838/6daffec3-d14a-4699-a764-fb78e5c5ff74.png)

画面上からMCPサーバーのレスポンスやログ、実行履歴にサーバー通知などが確認できるかと思います。


# まとめ
今回はDockerコンテナで動かすMCPサーバーに対しての基本的なInspectorの使い方を紹介しました。
より詳細な使い方については是非公式の情報をチェックしてみてください。

今後MCPサーバーを自作する際にも強力なツールになるかと思います！


# 仲間を募集しています！

ARIではエンジニア・ITコンサルタント・PM職全方位で仲間を募集しております。
カジュアル面談、随時受付中です！
ご興味ある方はこちらをご覧ください。

https://note.com/ari_hr/n/n4aed9ba75421