PacketProxy icon indicating copy to clipboard operation
PacketProxy copied to clipboard

【WIP】MCPサーバーを実装

Open kakira9618 opened this issue 5 months ago • 0 comments

概要

MCP Server を Extensions の一機能として実装しました。 以下の10個のツールを実装しています。

  • get_history: パケット履歴検索
  • get_packet_detail: パケット詳細取得
  • get_logs: ログ取得
  • get_config: 設定情報取得
  • update_config: 設定変更
  • restore_config: 設定バックアップ復元
  • resend_packet: パケット再送(改ざん・同時送信も可)
  • bulk_send: バルク送信
  • call_vulcheck_helper: VulCheck Helper の実行
  • get_job_status: 送信ジョブ情報を取得

詳細は、PacketProxy MCP サーバー仕様書 を確認してください。

これらの操作を、AI Agent が利用できます。

実装・対応内容

  • [x] MCP サーバーの基本部分の実装(HTTPでの通信も可)
  • [x] 基本的なTool群を実装
  • [x] 様々な MCP Client から利用するための wrapper スクリプトを実装
  • [x] ドキュメント・仕様
  • [x] MCP Client の対応・動作確認
    • [x] claude desktop
    • [x] cline
    • [x] cursor
    • [x] claude code
    • [x] gemini cli
  • [x] 情報管理やセキュリティ対策を考慮する
    • [x] 操作時に PacketProxy の AccessToken を指定するようにする
    • [x] AccessTokenの環境変数化
    • [x] ログに AccessToken を残さない(マスク)
    • [x] ~パケット内クレデンシャルのマスク~
      • 任意のパケットについて適切にハンドリングするのは難しく、マスクしたことで正常に機能しないことも考えられ、かつ信頼できるAIを使う前提のため、SKIP

利用方法

(詳細は PacketProxy MCP サーバー設定ガイド を参照してください)

設定 (MCP Client)

まず、node 20 以上がインストールされていることを確認します

$ node -v
v20.19.2

Claude Code 以外のMCP Clientの場合 以下のような設定を各クライアントの設定ファイル (.json) に追記します。

PACKETPROXY_ACCESS_TOKEN の値は、Options > Import / Export configs (Experimental) の値を設定してください。

{
  "mcpServers": {
    "packetproxy": {
      "command": "node",
      "args": [
        "scripts/mcp-http-bridge.jsのフルパスを指定"
      ],
      "env": {
        "PACKETPROXY_ACCESS_TOKEN": "your_packetproxy_access_token"
      }
    }
  }
}

Claude Code の場合 Claude Code の場合は、以下のコマンドで設定できます。your_packetproxy_access_token/path/to/mcp-http-bridge.js を適切に設定してください。

$ claude mcp add packetproxy -e PACKETPROXY_ACCESS_TOKEN=your_packetproxy_access_token -- node /path/to/mcp-http-bridge.js

利用手順

以下の手順で利用します。

  1. PacketProxy を起動する
  2. Options タブ > Extensions > MCP Server を有効にする
  3. Extensions タブ > MCP Server タブ > Start Server ボタンを押す
  4. MCP Client を立ち上げ、適切な指示を行う(例: PacketProxy の設定情報を取得して ,ID:xx番のパケットについて、SQLi観点の脆弱性診断を行い、レポートを作成してなど)

TODO

  • [ ] テストの追加
  • [ ] リファクタ
    • [ ] MCP Client -> Client Side MCP Server (mcp-http-bridge) -> PacketProxy MCP HTTP Server -> PacketProxy MCP Server となっていて、構成が冗長なのを整理する
    • [ ] パケット内容書き換え部分は共通化
    • [ ] ドキュメントのリファクタリング
    • [x] 余分な情報の消去(resend_packetの packed_ids など)
    • [ ] access token は独自のものを使う?
  • [ ] ドキュメントとの整合性確認・修正
  • [ ] 一通りの機能の動作確認

kakira9618 avatar Aug 04 '25 09:08 kakira9618