How it works
The assistant calls three tools in sequence:opfor_list_evaluators
Discover available evaluator IDs and suites. Call this first when you haven’t named specific evaluators.
opfor_run handles generation, execution, and reporting in one shot.
Install
npx (see below).
Register the server
- Cursor
- Claude Desktop
- npx (published)
Add to
~/.cursor/mcp.json (global) or .cursor/mcp.json (project-scoped):.env automatically — no env block needed in the config.
Usage
Once registered, just talk to your assistant:opfor_list_evaluators → opfor_setup → opfor_run and returns a findings summary in chat, with reports saved to disk.
Tools reference
opfor_list_evaluators
No parameters. Returns every evaluator ID, severity, standards map, and all predefined suites.
opfor_setup
Configures a run and writes opfor.config.json. Returns the config path to pass to opfor_run.
Target
Target
| Parameter | Type | Required | Description |
|---|---|---|---|
target_name | string | Yes | Human-readable name |
target_kind | agent | mcp | Yes | agent for HTTP/chatbot, mcp for servers |
target_kind = "agent"):| Parameter | Type | Required | Description |
|---|---|---|---|
agent_endpoint | string | For HTTP | URL to attack |
agent_request_format | auto | openai | json | No | Defaults to auto |
agent_target_api_key | string | No | Auth token for the target |
agent_script_path | string | For scripts | Path to a local .js/.py script |
agent_description | string | No | What the agent does |
target_kind = "mcp"):| Parameter | Type | Required | Description |
|---|---|---|---|
mcp_transport | stdio | url | No | Defaults to stdio |
mcp_command | string | For stdio | Command to start the server |
mcp_args | string[] | No | Arguments for the command |
mcp_env | object | No | Env vars for the server process |
mcp_url | string | For url | Server URL (SSE / Streamable HTTP) |
Evaluators, LLM, and run settings
Evaluators, LLM, and run settings
Evaluator selection (pick one):
LLM configuration:
LLM object:
| Parameter | Type | Description |
|---|---|---|
suite_id | string | Suite ID (e.g. owasp-mcp-top10) |
evaluator_ids | string[] | Specific evaluator IDs |
| Parameter | Type | Required | Description |
|---|---|---|---|
attack_llm | object | Yes | LLM for generating attacks |
judge_llm | object | No | LLM for judging (defaults to attack_llm) |
{ provider, model, api_key_env, base_url? }.Run settings:| Parameter | Type | Description |
|---|---|---|
effort | adaptive | comprehensive | Defaults to adaptive |
turns | number (1–10) | Turns per attack; 1 = single-turn (default) |
output_dir | string | Where to write the config (default .) |
config_path | string | Full config path (overrides output_dir) |
opfor_run
Runs the full evaluation from a config produced by opfor_setup.
| Parameter | Type | Required | Description |
|---|---|---|---|
config_path | string | Yes | Path to the opfor.config.json |
output_dir | string | No | Report directory (default: config dir) |
effort_override | adaptive | comprehensive | No | Override config effort |
turns_override | number (1–10) | No | Override config turns |
API key resolution
The server resolves keys in order:- The env var named in the LLM config’s
api_key_env - The provider’s default env var (e.g.
OPENAI_API_KEYforopenai)
.env from the working directory automatically — keys never go in the MCP config JSON.
Providers
Supported providers and their default env vars.
