PacketProxy
PacketProxy copied to clipboard
【WIP】MCPサーバーを実装
概要
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
利用手順
以下の手順で利用します。
- PacketProxy を起動する
- Options タブ > Extensions > MCP Server を有効にする
- Extensions タブ > MCP Server タブ > Start Server ボタンを押す
- 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 は独自のものを使う?
- [ ] ドキュメントとの整合性確認・修正
- [ ] 一通りの機能の動作確認