ProxyLabProxyLab

ProxyLab MCP

Дайте AI-инструменту реальный сетевой контекст

proxylab-mcp запускает отдельный headless ProxyLab proxy и отдаёт MCP tools через stdio. Он умеет находить flows, читать ошибки, повторять запросы, управлять rules и экспортировать capture.

Architecture

Как это работает

ProxyLab.app

127.0.0.1:9090

GUI capture

proxylab-mcp

127.0.0.1:9091

Headless capture

MCP JSON-RPC

stdin / stdout

Control protocol

GUI и MCP — отдельные proxy instances и не делят in-memory capture. Трафик через 9090 виден в GUI, а через 9091 — MCP-клиенту.

stdio

Подключение MCP-клиента

Минимальный generic stdio config:

{
  "mcpServers": {
    "proxylab": {
      "command": "/Users/YOU/.local/bin/proxylab-mcp",
      "args": ["--listen", "127.0.0.1"]
    }
  }
}

Для Codex CLI:

mkdir -p "$HOME/ProxyLabExports"

codex mcp add proxylab --   "$HOME/.local/bin/proxylab-mcp"   --listen 127.0.0.1   --export-dir "$HOME/ProxyLabExports"

codex mcp list
codex mcp get proxylab
В MCP-конфиге лучше использовать абсолютный путь к binary. Не рассчитывайте на shell expansion $HOME внутри JSON/TOML args.

Направьте нужный трафик через MCP proxy

После запуска MCP process настройте приложение, браузер или curl на HTTP/HTTPS proxy 127.0.0.1:9091.

curl --noproxy ''   -x http://127.0.0.1:9091   http://example.com/

Обычный запрос без proxy обойдёт ProxyLab. Запрос через порт 9090 попадёт в GUI capture, а не в MCP capture.

9 tools

Доступные MCP tools

proxylab_list_flows

Последние flows

proxylab_get_flow

Детали flow

proxylab_search_flows

Поиск по metadata

proxylab_get_flow_error

Ошибка failed flow

proxylab_repeat_flow

Повтор запроса

proxylab_list_rules

Список rules

proxylab_set_rule_enabled

Enable/disable rule

proxylab_export_har

HAR export

proxylab_export_session

ProxyLab Session export

Пример запроса к AI-клиенту:

Используй MCP-сервер proxylab. Найди последние failed flows, покажи URL и причину ошибки, затем повтори последний безопасный GET.

Rules & exports

Rules и export включаются только явными аргументами:

proxylab rules init "$HOME/.proxylab-rules.json"
mkdir -p "$HOME/ProxyLabExports"

proxylab-mcp   --listen 127.0.0.1   --rules "$HOME/.proxylab-rules.json"   --export-dir "$HOME/ProxyLabExports"
  • Rules toggled через MCP сохраняются в тот же CLI rules file.
  • Без --export-dir HAR/Session export отключён.
  • Traversal, nested paths и overwrite блокируются.

Explicit opt-in

HTTPS inspection

proxylab-mcp   --listen 127.0.0.1   --https-intercept

Для доверия клиенту можно экспортировать публичный Root CA через обычный CLI:

proxylab certificate info
proxylab certificate export "$HOME/proxylab-root.pem" --format pem
Без --https-intercept HTTPS остаётся opaque CONNECT tunnel. Закрытый ключ Root CA остаётся в Keychain и не доступен MCP.

Local-first

Границы безопасности

  • MCP control transport — только stdio; отдельного TCP control port нет.
  • Proxy listener по умолчанию слушает только 127.0.0.1:9091.
  • Authorization, Proxy-Authorization, Cookie и Set-Cookie редактируются в remote DTO по умолчанию.
  • Captured-body file paths и private key material не выдаются через MCP.
  • Максимум 500 flows в одном list/search запросе.

Troubleshooting

address already in use

lsof -nP -iTCP:9090 -iTCP:9091 -sTCP:LISTEN

Нормально одновременно иметь GUI на 9090 и MCP на 9091.

Flow list пустой

Проверьте, что клиент действительно использует 127.0.0.1:9091, а не GUI port 9090 и не прямое соединение.

export_unavailable

MCP process запущен без --export-dir либо директория не существует/недоступна для записи.

HTTPS виден только как CONNECT

Это ожидаемо без --https-intercept и явного доверия к ProxyLab Root CA.