소스 정보
- 저장소
- KeyValueSoftwareSystems/agent-opfor
- 최근 소스 활동
- 2026년 7월 22일 08:36
- 감지된 SKILL.md 언어
- 영어
- 스타
- 576
- 포크
- 28
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/KeyValueSoftwareSystems/agent-opfor --skill opfor-mcp-setup명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | opfor-mcp-setup |
| description | Set up an MCP server target for Opfor red-teaming. |
Configure an MCP server target for adversarial security evaluation. When this skill is installed in the user's repo, prefer reading that repo (mcp.json, docker configs, server source) before a long questionnaire; then collect only what is still unknown.
Ask the user about their MCP server (or pre-fill from repo scan when obvious):
stdio or url)npx @myorg/server); for url: the SSE/HTTP endpoint (e.g., http://localhost:3000/sse)DB_PATH=/tmp/test.db)Ask the user which transport their server uses. Discover available options by scanning ./targets/ for .md files. Default to stdio.
End users often pull this skill into their own repo. Treat that repo as the source of truth.
MCP configuration files (highest priority):
.cursor/mcp.json → mcpServers.<name> entriesclaude_desktop_config.json → same formatmcp.json at repo rootdocker-compose*.yml — containerized MCP serversServer source code (if config not found):
package.json → scripts that start MCP servers__main__.py or entry points with mcp importsEnvironment and configuration:
.env, .env.example — environment variables the server expectsDockerfile — server build and entrypointExtract:
Ask the user directly for the transport type, command/URL, and any required env vars.
Confirmation Flow:
🔍 I scanned your repo and found an MCP server configuration.
Pre-filled Server Config:
Name: [from package.json name or mcp.json key]
Transport: stdio
Command: npx @myorg/mcp-server
Args: ["/tmp/data"]
Env: DB_PATH (from .env.example)
✅ Looks good, use this?
📝 Edit these fields?
❌ Start fresh?
User must explicitly confirm before proceeding.
After confirming server configuration, connect to the server and discover its attack surface:
./targets/)tools/list) — record all tool names, descriptions, and input schemasresources/list) — record all resource URIs and descriptionsPresent the discovered surface:
🔍 Discovered Attack Surface:
Tools (5):
• read_file (description: Read file contents)
• write_file (description: Write content to file)
• execute_query (description: Run SQL query)
• list_directory (description: List directory contents)
• delete_file (description: Delete a file)
Resources (3):
• file:///config/settings.json
• file:///data/users.db
• file:///logs/access.log
This discovery informs which evaluators are most relevant.
Read ./catalog.json. This single file contains all evaluators and suites for this surface, pre-built from the evaluator tree. Parse it as JSON — it has this shape:
{
"version": 1,
"source": "evaluators/mcp",
"evaluators": [
{
"id": "ssrf",
"name": "Server-Side Request Forgery (SSRF)",
"severity": "critical",
"standards": { "owasp-mcp": "MCP05" },
"description": "...",
"passCriteria": "...",
"failCriteria": "...",
"patterns": [{ "name": "AWS IMDSv1 Metadata SSRF", "template": "..." }]
From the catalog extract:
id, name, description, and evaluatorIds (list of evaluator IDs). Standards-based suites (OWASP MCP, ATLAS) also carry "derived": true — synthesized from evaluator standards: tags, not curated by hand.id, name, severity, standards, description, patterns (array of { name, template }), passCriteria, failCriteria. Whitebox source-scan evaluators additionally carry scanMode: "source_code", correlatesWith, and a sourceScan block; baseline-scanner evaluators may carry judgeNeedsLlm, appliesToAllTools, and mcpTop10.Present two paths:
How would you like to define what to test?
A) Use a predefined suite (faster, standard coverage)
B) Custom selection (pick specific evaluators)
IMPORTANT:
suites array — never invent a suite name. Enumerate them from catalog.suites (both curated and "derived": true standards suites, e.g. owasp-mcp-top10, mitre-atlas), showing each suite's id, name, and description.evaluatorIds and show which evaluators will run.After tool/resource discovery, highlight which evaluators are most relevant:
Based on your server's tools and resources, I recommend:
🔴 CRITICAL:
• command-injection — your server has execute_query (SQL interface)
• resource-exposure — 3 file resources discovered
🟠 HIGH:
• scope-escalation — write_file + delete_file could be abused
• missing-authentication — verify auth is enforced
Ask: "How many attack variations per evaluator?"
Ask: "Single-turn or multi-turn attacks?"
For each selected evaluator:
id in the catalog's evaluators arraypatterns array ({ name, template }) as attack templates<n> attack variations:
passCriteria and failCriteria from the catalog entryShow progress:
Generating attack plan...
command-injection (5 attacks) ✓
resource-exposure (5 attacks) ✓
scope-escalation (5 attacks) ✓
...
Generate a UUID-based folder name: config-YYYYMMDD-HHMMSS-XXXX
Create folder structure:
.opfor/configs/<uuid>/
config.md
inputs/
command-injection.md
resource-exposure.md
scope-escalation.md
... (one file per evaluator)
Write config.md:
# MCP Red Team Configuration
## Server Information
**Name:** <server name>
**Transport:** <stdio | url>
**Command:** <launch command (stdio)>
**URL:** <endpoint URL (url transport)>
**Args:** <arguments>
**Env:** <required env var names>
## Discovered Attack Surface
### Tools
<list of tool names + descriptions>
### Resources
<list of resource URIs + descriptions>
## Test Configuration
**Mode:** suite | custom
**Suite:** <selected suite (if Mode=suite)>
single | multi
<!--
Config ID:
Created:
Generated Attacks:
-->
Write each inputs/<evaluator-id>.md:
---
evaluator: command-injection
name: Command Injection
severity: critical
attack_count: 5
turn_mode: single
---
# Generated Attacks
## Attack 1: SQL Injection via execute_query
**Tool:** execute_query
**Arguments:**
```json
{ "query": "SELECT * FROM users; DROP TABLE sessions; --" }
```
Tool: read_file Arguments:
{ "path": "../../../etc/passwd" }
...
Show summary:
✅ MCP Configuration Complete
Server: My Database MCP (stdio)
Command: npx @myorg/db-server /tmp/test.db
Attack Surface: 5 tools, 3 resources
Assessment: OWASP MCP Top 10 (10 evaluators)
Attacks: 5 per evaluator = 50 total
Turn Mode: single-turn
Config Location: .opfor/configs/<uuid>/
Next Step: Run /opfor-mcp-run to start the assessment
You can:
• Review/edit attacks at .opfor/configs/<uuid>/inputs/
• Run the assessment: use /opfor-mcp-run
• Create more configs: run /opfor-mcp-setup again