
AI 에이전트, MCP 서버 및 에이전트 스킬을 위한 보안 스캐너.
머신에서 에이전트 구성 요소(에이전트, MCP 서버, 스킬 포함)를 검색하고 프롬프트 인젝션과
취약점을 스캔합니다.
참고: CLI 출력은 실험 단계이며 변경될 수 있습니다
Agent Scan v0.5.x (폐기 예정)
이 CLI의 원시 출력(issue 코드, 필드 이름, 심각도 라벨, 응답 구조 포함)은 실험 단계이며 릴리스 간에 예고 없이 변경될 수 있습니다. 특정 CLI 출력 필드나 issue 코드에 의존하는 프로덕션 워크플로를 구축하는 것은 권장하지 않습니다.
Agent Scan v0.6 이상
이 CLI의 원시 출력(위험 지표 이름, 점수, 필드 이름, 응답 구조 포함)은 실험 단계이며 릴리스 간에 예고 없이 변경될 수 있습니다. 특정 CLI 출력 필드나 위험 이름에 의존하는 프로덕션 워크플로를 구축하는 것은 권장하지 않습니다.
Snyk를 사용하여 에이전트 보안 위험을 대규모로 관리하는 엔터프라이즈 고객의 경우, CLI 출력이 Evo 플랫폼으로 전송되어 표시되는 내용을 반영하지 않을 수 있습니다. 엔터프라이즈 배포를 구동하는 기본 통합, 검색, 위험 평가는 안정적이며 지원됩니다. 변경 사항은 표준 Snyk 제품 관행에 따라 안내됩니다. 배포 지침은 계정 팀에 문의하세요.
NEW Agent Scan 0.4와 함께 발표된 에이전트 스킬 생태계의 새로운 위협에 관한 기술 보고서를 읽어보세요. 이 버전은 에이전트 스킬 스캔을 지원합니다.
[!WARNING] Agent Scan v0.5.x는 issue-code 출력을 사용합니다. 이 CLI 라인은 폐기될 예정입니다.
Agent Scan은 설치된 모든 에이전트 구성 요소(하네스, MCP 서버, 스킬)를 검색하고, 프롬프트 인젝션, 민감한 데이터 처리, 자연어에 숨겨진 악성 페이로드와 같은 일반적인 위협을 스캔합니다. --no-skills를 사용하면 스킬 분석을 건너뜁니다.
⚠️ 중요: MCP 구성을 스캔하면 구성에 정의된 명령이 실행됩니다.
Agent Scan이 MCP 구성 파일을 스캔하면 구성에 지정된 명령과 인자를 실행하여 stdio MCP 서버를 시작합니다. 이는 도구 설명을 검색하고 보안 분석을 수행하는 데 필요합니다.
권장 사항:
- 신뢰할 수 없거나 타사 MCP 구성을 평가할 때 샌드박스(Docker 컨테이너, VM, 또는 임시 환경)에서 스캔을 실행하세요
- 대화형 스캔 중 동의 프롬프트를 주의 깊게 검토하세요. 각 서버에 대해 실행될 정확한 명령과 인자가 표시됩니다
--dangerously-run-mcp-servers는 모든 MCP 서버 명령을 검증한 신뢰할 수 있는 환경에서만 사용하세요기본적으로 Agent Scan은 대화형 실행 중 각 stdio MCP 서버를 시작하기 전에 명시적인 사용자 동의(y/n)를 요구합니다. 이를 통해 시스템에서 실행되는 작업을 제어할 수 있습니다.
Agent Scan을 실행하는 방법은 두 가지 중 하나를 선택하세요:
uvx로 Python 패키지 실행.두 옵션 중 하나를 사용하기 전에:
uvx로 실행하기시스템에 uv를 설치하세요. 사용 중인 CLI 버전에 맞는 지침을 선택하세요.
예제에서는 v0.5.17을 구체적인 v0.5.x 릴리스로 고정합니다:```bash
uvx [email protected] ~/.vscode/mcp.json
uvx [email protected] ~/path/to/my/SKILL.md
uvx [email protected] ~/.claude/skills
> [!WARNING]
> v0.5.x는 issue-code 출력과 `2025-09-02` 분석 API를 사용합니다. 이 CLI 라인은 폐기 예정입니다.
#### Agent Scan v0.6 이상```bash
# Scan the whole machine
uvx snyk-agent-scan@latest
# Scan a specific MCP configuration
uvx snyk-agent-scan@latest ~/.vscode/mcp.json
# Scan a single agent skill
uvx snyk-agent-scan@latest ~/path/to/my/SKILL.md
# Scan all Claude skills
uvx snyk-agent-scan@latest ~/.claude/skills
v0.6 이상은 위험 기반 출력과 2026-07-10 분석 API를 사용합니다.
두 버전 모두 MCP 서버, 도구, 프롬프트, 리소스 및 스킬을 스캔하고 Claude Code/Desktop, Cursor, Gemini CLI, Windsurf 등 지원되는 에이전트 구성을 자동으로 발견합니다.
운영 체제와 아키텍처에 맞는 바이너리를 최신 GitHub 릴리스에서 다운로드하세요. 릴리스 페이지에는 SBOM(sbom-<version>.json), 체크섬 파일, GitHub에서 생성된 소스 코드 아카이브도 제공됩니다. 다운로드를 확인하려면 독립 실행형 바이너리 검증을 참조하세요.
v0.6 위험 기반 출력은 이 README 상단의 v0.6 이미지를 참조하세요.
Agent Scan은 설치 경로가 존재하는 에이전트와 해당 기능(MCP 서버 또는 스킬)을 자동으로 발견합니다. 아래 표는 각 에이전트가 어떤 운영 체제에서 스캔되는지 보여줍니다.
--no-skills를 사용하여 무시할 수 있습니다.위 행렬은 각 에이전트가 어떤 운영 체제에서 스캔되는지 보여줍니다. 이 표는 탐지를 구성 범위와 구성 요소 유형(스킬 vs MCP 서버)별로 운영 체제에 걸쳐 세분화합니다. "서버"는 MCP 서버를 의미합니다.
네 가지 범위:
managed-mcp.json, /etc, /Library/Application Support 또는 ProgramData 아래의 파일).범례: ✓ 탐지됨 · ✗ 에이전트는 지원하지만 Agent Scan은 아직 스캔하지 않음 · N/A 에이전트에 이 범위의 해당 구성 요소가 없음.
† OpenClaw에는 열린 프로젝트 열거 기능이 없습니다. 프로젝트/작업 영역 스킬은 고정된 ~/.openclaw/workspace/skills에서만 찾을 수 있습니다.
‡ Amp는 프로젝트/작업 영역 스킬을 .agents/skills(및 .claude/skills 호환 경로)에 저장합니다. 현재는 사용자 범위의 ~/.config/agents/skills만 감지되므로 프로젝트 범위 스킬은 지원되지만 아직 스캔되지는 않습니다.
릴리스 체크섬 파일에 GPG 서명을 사용하여 배포 무결성과 신뢰성을 보장합니다.
릴리스 자산 다운로드:
GitHub Releases 페이지에서 플랫폼에 맞는 바이너리(예: agent-scan-<version>-<os>-<arch>)와 서명된 체크섬 파일(sha256sums.txt.asc)을 같은 디렉터리로 다운로드합니다.
체크섬 파일의 GPG 서명 검증: GPG 공개 키를 같은 디렉터리로 다운로드한 후 실행하세요: ```bash gpg --import snyk-code-signing-public.pgp gpg --verify sha256sums.txt.asc
출력에서 gpg: Good signature from "Snyk Limited <[email protected]>"라는 줄을 찾으십시오.
coreutils가 있는 macOS)에서:
grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | sha256sum -c -
shasum 사용)에서:
grep agent-scan-<version>-<os>-<arch> sha256sums.txt.asc | shasum -a 256 -c -
agent-scan-<version>-<os>-<arch>: OK가 출력됩니다.Agent Scan은 머신에서 에이전트 구성 요소의 공급망을 스캔하고 검사하는 보안 스캐닝 도구입니다. 프롬프트 인젝션, 도구 포이즈닝, 유해 플로우, 에이전트 스킬의 취약점과 같은 일반적인 보안 취약점을 스캔합니다.
Agent Scan은 프롬프트 인젝션, 신뢰할 수 없거나 개인 데이터에 대한 노출, 파괴적 기능, 악성 에이전트 스킬과 같은 위협에 대해 점수화된 위험 지표를 보고합니다.
Agent Scan은 함께 또는 별도로 사용할 수 있는 두 가지 주요 모드로 작동합니다:
스캔 모드: CLI 명령어 snyk-agent-scan은 현재 머신에서 스킬, MCP 서버와 같은 에이전트 및 에이전트 구성 요소를 스캔합니다. 완료되면 사용자가 검토할 수 있는 종합 보고서를 출력합니다.
백그라운드 모드(MDM). Agent Scan은 백그라운드에서 정기적으로 머신을 스캔하고 결과를 Snyk Evo 인스턴스에 보고합니다. 보안 팀은 이를 사용하여 회사 전체의 에이전트 공급망을 중앙에서 모니터링할 수 있습니다. 설정하려면 문의하기를 이용해 주십시오.
Agent Scan은 로컬 에이전트의 구성 파일을 검색하여 에이전트, 스킬, MCP 서버를 찾습니다. MCP의 경우 서버에 연결하여 도구 설명을 검색합니다.
⚠️ 보안 참고 사항: MCP 구성을 스캔하면 그 안에 정의된 명령이 실행됩니다. 승인 전에 실행될 내용을 항상 검토하십시오.
기본적으로 Agent Scan은 대화형 실행 중 각 stdio MCP 서버를 시작하기 전에 사용자 동의를 요청합니다. 이 동의 흐름은 다음과 같습니다:
user_declined 오류와 함께 기록합니다(해당 서버는 절대 시작되지 않습니다)권장 사항:
비대화형 환경(예: CI/CD 파이프라인)에서는 --dangerously-run-mcp-servers 플래그를 사용하여 동의 프롬프트를 우회하고 모든 서버를 자동으로 시작해야 합니다. 이 플래그는 모든 MCP 서버 명령이 검증된 신뢰할 수 있는 환경에서만 사용하십시오.
Agent Scan은 로컬 검사와 Agent Scan API를 통해 발견된 구성 요소를 검증합니다. 분석에 필요한 구성 요소 정보(에이전트 애플리케이션 세부 정보, MCP 서버 구성 및 서명, 도구 이름과 설명, 스킬 콘텐츠)를 전송합니다. 구성 값과 텍스트의 시크릿은 전송 전에 마스킹됩니다.
Agent Scan을 사용함으로써 귀하는 Snyk의 Agent Scan 이용 약관에 동의하게 됩니다.
Agent Scan은 MCP 도구 호출의 내용과 결과를 포함한 어떤 사용 데이터도 저장하거나 기록하지 않습니다.
전체 플래그 참조는 docs/cli-reference.md에 있습니다. 대부분의 명령과 플래그는 v0.5.x와 v0.6 이상에서 공통으로 사용됩니다.
snyk-agent-scan scan [CONFIG_FILE...] Scan MCP servers and skills (default) snyk-agent-scan inspect [CONFIG_FILE...] Inspect components without analysis snyk-agent-scan help Display help
### 두 버전 라인 공통 옵션
이 옵션들은 v0.5.x 및 v0.6 이상 버전 모두에 존재합니다. 각 옵션의 명령 적용 대상은 전체 CLI 참조에 자세히 설명되어 있습니다.```text
--storage-file FILE Path to store scan state (default: ~/.mcp-scan)
--analysis-url URL Analysis endpoint; the default API version depends on the CLI version
--verification-H HEADER Additional analysis request header (repeatable)
--mcp-oauth-tokens-path PATH OAuth tokens for protected remote MCP servers
--verbose Enable detailed logging
--print-errors Show error details and tracebacks
--print-full-descriptions Show full entity descriptions without truncation
--json Emit JSON; the response schema depends on the CLI version
--skip-ssl-verify Disable TLS certificate verification
--skills / --no-skills Include skills (default) or skip them
--scan-all-users Scan all readable user home directories
--ci Exit non-zero when findings or operational failures remain
--server-timeout SECONDS MCP connection timeout (default: 10)
--suppress-mcpserver-io BOOL Suppress stdio MCP server stderr
--dangerously-run-mcp-servers Skip consent and start configured stdio MCP servers
--control-server URL Upload destination (repeatable)
--control-server-H HEADER Header for the current control-server block
--control-identifier ID Identifier for the current control-server block
--no-bootstrap Accepted compatibility no-op; does not change behavior
--checks-per-server NUM Accepted compatibility no-op; does not change behavior
[!WARNING] v0.5.x는 폐기 예정입니다. 예제에서는 구체적인 v0.5.x 릴리스로 v0.5.17을 고정합니다.```text --analysis-url URL Defaults to the 2025-09-02 analysis API --ignore-issues-codes CODES Comma-separated E/W security finding codes and X failure codes to ignore in CI
v0.5.x는 issue-code 탐지 결과와 경로 키 기반 `ScanPathResult` JSON을 출력합니다. [v0.5.x CLI 참조](https://github.com/snyk/agent-scan/blob/HEAD/docs/cli-reference.md#agent-scan-v05x) 및 [issue-code 참조](https://github.com/snyk/agent-scan/blob/HEAD/docs/issue-codes.md)를 확인하세요.
### Agent Scan v0.6 이상```text
--analysis-url URL Defaults to the 2026-07-10 analysis API
--ignore-risks NAMES Comma-separated risk names to omit from output and CI evaluation
--ignore-failure-codes CODES Comma-separated X codes to omit from CI evaluation
--show-full-discovery List every MCP entity and skill file instead of compact scan summaries
v0.6 이상에서는 점수가 매겨진 위험 지표와 scan_path_responses JSON을 출력합니다. 사람이 읽을 수 있는 스캔 출력은 기본적으로 간결하며, --show-full-discovery는 JSON 또는 inspect 출력을 변경하지 않고 이를 확장합니다. v0.6 이상 CLI 참조, 위험 참조, 실패 코드 참조를 참조하십시오.
snyk-agent-scan
snyk-agent-scan ~/custom/config.json snyk-agent-scan ~/path/to/my/SKILL.md
snyk-agent-scan inspect
snyk-agent-scan --ci --dangerously-run-mcp-servers
## 데모
이 저장소에는 Agent Scan이 보고하는 Model Context Protocol 보안 결과를 시연하는 취약한 MCP 서버가 포함되어 있습니다.
MCP 보안 결과를 어떻게 시연하나요?
1. 이 저장소를 클론하세요
2. 클론한 git 저장소 루트 디렉터리에 다음 내용으로 `mcp.json` 설정 파일을 생성하세요:```jsonc
{
"mcpServers": {
"Demo MCP Server": {
"type": "stdio",
"command": "uv",
"args": ["run", "mcp", "run", "demoserver/server.py"],
},
},
}
해당 버전을 실행하세요:
uvx --python 3.13 [email protected] scan mcp.jsonuvx --python 3.13 snyk-agent-scan@latest scan mcp.json참고: mcp.json 구성 파일 경로를 다른 위치에 배치하는 경우 MCP 서버 구성 내부의 args 경로를 MCP 서버(demoserver/server.py) 경로에 맞게 조정하고, 올바른 mcp.json 파일 경로로 Agent Scan을 실행하는 uvx 명령도 함께 조정하세요.
Agent Scan은 현재 외부 기여를 받지 않습니다.
GitHub 이슈로 제안, 버그 신고, 기능 요청을 환영합니다.
소스에서 Agent Scan을 실행하려면 다음 단계를 따르세요:```bash uv run pip install -e . uv run -m src.agent_scan.cli
## 프로젝트/레지스트리에 Agent Scan 결과 포함하기
자체 프로젝트나 레지스트리에 Agent Scan 결과를 포함하려면 [문의](https://evo.ai.snyk.io/#contact-us)해 주세요. 이 목적을 위해 전용 API가 있습니다. 대규모 스캔에 표준 Agent Scan API를 사용하는 것은 남용으로 간주되며 계정이 차단될 수 있습니다.
## 문서
- [문서 색인](https://github.com/snyk/agent-scan/blob/HEAD/docs/README.md) — 두 CLI 라인 모두에 대한 버전별 문서.
- [CLI 참조](https://github.com/snyk/agent-scan/blob/HEAD/docs/cli-reference.md) — v0.5.x 및 v0.6 이상 명령, 플래그, 옵션 및 환경 변수.
- [스캔](https://github.com/snyk/agent-scan/blob/HEAD/docs/scanning.md) — v0.5.x 및 v0.6 이상 스캔 동작 및 예제.
- [JSON 출력](https://github.com/snyk/agent-scan/blob/HEAD/docs/json-output.md) — v0.5.x 경로 키 출력 및 v0.6 응답 스키마.
- [이슈 코드](https://github.com/snyk/agent-scan/blob/HEAD/docs/issue-codes.md) — v0.5.x `E*` 및 `W*` 보안 발견 사항 참조.
- [위험 참조](https://github.com/snyk/agent-scan/blob/HEAD/docs/risks.md) — v0.6 보안 위험 지표, 점수 및 증거 필드.
- [실패 코드](https://github.com/snyk/agent-scan/blob/HEAD/docs/failure-codes.md) — v0.6 운영 탐지, 검사 및 분석 실패.
## 추가 자료
- [MCP-Scan 소개](https://invariantlabs.ai/blog/introducing-mcp-scan)
- [MCP 보안 알림 도구 중독 공격](https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks)
- [WhatsApp MCP 착취](https://invariantlabs.ai/blog/whatsapp-mcp-exploited)
- [MCP 프롬프트 주입](https://simonwillison.net/2025/Apr/9/mcp-prompt-injection/)
- [독성 흐름 분석](https://invariantlabs.ai/blog/toxic-flow-analysis)
- [스킬 보고서](https://github.com/snyk/agent-scan/blob/HEAD/.github/reports/skills-report.pdf)
## 변경 로그
[CHANGELOG.md](https://github.com/snyk/agent-scan/blob/HEAD/CHANGELOG.md)를 참조하세요.
| Agent | macOS MCP | macOS Skills | Linux MCP | Linux Skills | Windows MCP | Windows Skills |
|---|
| Windsurf | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Cursor | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| VS Code | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Claude Desktop | ✓ | ✗ | — | — | ✓ | ✗ |
| Claude Code | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Gemini CLI | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| OpenClaw | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ |
| Amp | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ |
| Kiro | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| OpenCode | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Antigravity | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Codex | ✓ | ✓ | ✓ | ✓ | — | — |
| Amazon Q | ✓ | ✗ | ✓ | ✗ | ✓ (WSL) | ✗ |
| 에이전트 | 시스템 스킬 | 시스템 서버 | 사용자 스킬 | 사용자 서버 | 프로젝트 / WS 스킬 | 프로젝트 / WS 서버 | 확장 / 플러그인 스킬 | 확장 / 플러그인 서버 |
|---|
| Windsurf | ✓ | N/A | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Cursor | N/A | N/A | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| VS Code | N/A | N/A | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Claude Desktop | N/A | N/A | ✗ | ✓ | N/A | N/A | N/A | ✗ |
| Claude Code | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Gemini CLI | N/A | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ |
| OpenClaw | N/A | N/A | ✓ | ✗ | ✓ † | N/A | ✗ | ✗ |
| Amp | N/A | ✗ | ✓ | ✗ | ✗ ‡ | ✗ | ✗ | ✗ |
| Kiro | N/A | N/A | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| OpenCode | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | N/A | N/A |
| Antigravity | N/A | N/A | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Codex | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Amazon Q | N/A | N/A | N/A | ✓ | N/A | ✗ | N/A | N/A |