Skip to content

Configuring Vortex MCP

Most of Vortex MCP is configured through a few environment variables plus the scan options you pass when you start a pentest.

VariablePurpose
BD_PENTEST_API_URLYour BestDefense pentest resource server, e.g. https://pentest.app.bestdefense.io or a dedicated-stack URL. Required.
BD_PENTEST_TOKENThe scoped organization API token (scope pentest:run). Required on the default token path; omitted in device-flow secure mode.

In the Claude Code plugin these map to the api_url and api_token config fields. For a direct-MCP or CI setup you set the variables yourself — see Installation.

Inside the container, localhost is the container itself, not your host. Address your locally-served app with host.docker.internal:

http://host.docker.internal:3000

The --add-host=host.docker.internal:host-gateway argument in the launch config makes this resolve to your host. There is a best-effort auto-rewrite from localhost to host.docker.internal, but don’t rely on it — pass host.docker.internal explicitly.

Pass a mode when you start a pentest:

ModeDepthBilling
smokeFast, diff-scoped pre-commit checkSeat-covered
standardThe default, balanced passSeat-covered
deepThe most thorough passReserves a pre-commit credit

If you don’t pass a mode, standard is used.

Pass a test_profile to control how much local context the pentest starts with:

  • blackbox (default) — the pentester works only from the target URL, like an external attacker.
  • greybox — the executor derives the attack surface (routes, OpenAPI, tech-stack) locally from your workdir and sends only that derived context to the brain. Your source code never leaves your machine; only the derived surface does.

For greybox, set workdir to your repo root (it defaults to the current working directory). If derivation fails, the scan falls back to blackbox and continues.

See Running a pre-commit pentest for the full flow and Tools reference for exact parameters.