BugcrowdBugcrowdSavant Environments

Dev MCP

The image's entry point starts a development server with its own defaults. There is nothing to configure and nothing to name — pull the image and run it:

docker run -i --rm \
  --cap-add=SYS_PTRACE \
  --cap-add=SYS_ADMIN \
  --cap-add=NET_ADMIN \
  --security-opt seccomp=unconfined \
  --security-opt apparmor=unconfined \
  --network=none \
  inventory.forallsecure.com/<environment-name>:<tag>

-i holds standard input open, which is how the server speaks: it talks the Model Context Protocol over standard input and output rather than over a port, so there is nothing to publish and nothing to connect to. --rm cleans up when your client disconnects.

This is the fastest way to see an environment respond, and it is what to point a new harness at while you are still getting the plumbing right.

What it is not for

The development server has no resistance to reward hacking. It will grade an attempt and hand you a number, and that number says nothing about how an agent would do against the real thing — only that your client and the environment are talking to each other.

If a score is going into a report, a comparison or a decision, it has to come from Custom, where you choose the tools, the weights and the attempt budget and know what was measured.

If it does not start

unshare: operation not permitted, or every run of the target failing, means SYS_ADMIN was not granted. The pre-flight checklist has a single-call smoke test and the rest of the symptoms.