Install
Run from the root of the project you want to test — the agent reads the repo for context:.claude/skills/ for Claude Code; the path varies per agent).
What you get
Two bundles, each with a setup and an execute skill:| Skill | What the agent does |
|---|---|
opfor-setup | Scans the repo (endpoints, opfor.config*, .env, telemetry SDK imports), picks a suite or evaluators, writes a config under .opfor/configs/. |
opfor-run | Loads the config, fires attack prompts, runs the judge, writes an HTML + JSON report, and summarizes findings in chat. |
opfor-mcp-setup | Scans the repo (mcp.json, docker configs, server source), collects transport + command/URL, picks a suite, writes an MCP config. |
opfor-mcp-run | Fires tool-call attacks at the MCP server, judges JSON-RPC responses, writes the report. |
Prerequisites
- An LLM API key in your shell or
.env—OPENAI_API_KEY,GROQ_API_KEY,ANTHROPIC_API_KEY, orGOOGLE_GENERATIVE_AI_API_KEY. The agent reads.envfrom the project root. - A reachable target — an HTTP endpoint, a local script, or an MCP server. The agent asks for it on first setup if it can’t find one in the repo.
Usage from chat
Inside your IDE chat, just describe what you want:Trace-aware grounding
opfor-setup auto-detects Langfuse / Netra / OpenTelemetry by scanning opfor.config*, .env*, package.json, Docker / Helm files, and app code for SDK imports and exporters. If traces are wired up, the agent grounds attacks in real production flows and configures trace-ID propagation so the judge sees the full target trace per attack — no manual telemetry block needed unless something’s ambiguous.
Trace-aware testing
How grounding and judge enrichment work.
