Mimicry MCP サーバーで API パースエラーを Claude Code でデバッグ

ダウンロード

最新版のダウンロードと使い方は Mimicry のツールページ を参照してください。

はじめに

先日作成した Mimicry の機能を拡張して、現在バージョン 2 になりました。上のデモ動画は、Mimicry アプリの操作デモです。

またバージョン 2 では、アプリに加えて MCP サーバーも提供するようになりました。

アプリや Web の開発では、API レスポンスのパースエラーに遭遇することがあります。こうした問題をデバッグするには、実際の通信ログとコードを見比べる必要がありますし、通信ログをすべて Claude Code に渡すとコンテキストが膨大になってしまいます。

MCP サーバー機能により、必要なドメインや URL パターンに絞って通信ログを提供できるようになり、Claude Code で効率的にデバッグできるようになりました。

MCP ツール

Mimicry MCP サーバーは以下のツールを提供しています。

  • start_proxy: プロキシサーバーを起動(デフォルトポート 8080)
  • stop_proxy: プロキシサーバーを停止
  • get_proxy_status: プロキシのステータスを取得
  • search_logs: ドメイン、URL パターン、HTTP メソッド、ステータスコードでログを検索
  • get_request_details: リクエスト ID を指定して詳細情報を取得
  • get_response_body: レスポンスボディを取得(JSON は自動整形)
  • list_domains: キャプチャされたドメイン一覧を取得
  • list_endpoints: 特定ドメインのエンドポイント一覧を取得
  • clear_logs: ログをクリア
  • save_logs: ログを .mimicry ファイルに保存(アプリと互換性のある形式)
  • create_mock_rules: 通信ログからモックルールを作成(JSON 形式でエクスポート)

デバッグの流れ

実際のデバッグフローを見てみましょう。

あなた: api.example.com の /user/profile のパースエラーを調査してください

Claude: まず、プロキシを起動します。
[start_proxy を実行]
プロキシが起動しました(ポート 8080)
アプリを操作して問題を再現してください。

あなた: [アプリで /user/profile にアクセス]
あなた: パースエラーが発生しました

Claude: 通信ログを確認します。
[search_logs を実行: domain = api.example.com, path_pattern = /user/profile]
該当するリクエストが見つかりました(ID: 12345)

[get_response_body を実行: request_id = 12345]
レスポンスボディを取得しました。

{
  "user": {
    "name": "John Doe",
    "email": "john@example.com",
    "created_at": "2025-12-13T10:30:00Z",
    "preferences": null  // ← ここが原因かもしれません
  }
}

パースコードを確認させてください。
[Read を実行: UserProfile.swift]

パースエラーの原因が分かりました。preferences フィールドが null の場合を
想定していないようです。以下のように修正することで解決できます。

[Edit を実行: UserProfile.swift]

このように、必要な通信ログだけを取得してコードと照らし合わせることで、効率的にデバッグを進められます。

こんなパターンでも利用できます

Mimicry MCP サーバーは、デバッグ以外にもさまざまな場面で活用できます。

モックルールの作成

API レスポンスからモックルールを自動生成できます。

あなた: api.example.com のモックルールを作成してください

Claude: [list_domains → create_mock_rules を実行]
モックルールを作成しました(39 ルール)
api-mock-rules.json を Mimicry アプリにインポートできます。

エンドポイントの調査

どのエンドポイントが使われているか確認できます。

あなた: api.example.com でどんなエンドポイントが使われていますか?

Claude: [list_endpoints を実行: domain = api.example.com]
以下のエンドポイントが検出されました。

- GET /user/profile(15 リクエスト)
- POST /user/settings(3 リクエスト)
- GET /items/list(42 リクエスト)
...

Claude Code への登録方法

claude mcp add --scope project mimicry /Applications/Mimicry.app/Contents/MacOS/Mimicry -- --mcp-server

まとめ

Mimicry の MCP サーバー機能により、API レスポンスのパースエラーを Claude Code で効率的にデバッグできるようになりました。

自分でも積極的に使っていこうと思います。