Skip to main content
Glama
ongjin

Security Scanner MCP

by ongjin

πŸ”’ Security Scanner MCP

AIκ°€ μƒμ„±ν•œ μ½”λ“œμ˜ λ³΄μ•ˆ 취약점을 μžλ™μœΌλ‘œ κ²€μΆœν•˜κ³ , μˆ˜μ •κΉŒμ§€ μ œμ•ˆν•˜λŠ” μ§€λŠ₯ν˜• λ³΄μ•ˆ νŒŒνŠΈλ„ˆ MCP μ„œλ²„μž…λ‹ˆλ‹€.

npm version npm downloads Documentation OWASP License Node

ν•œκ΅­μ–΄ | English | πŸ“š Documentation

Demo

Security Scanner Demo

Related MCP server: Security-Use MCP Server

μ™œ ν•„μš”ν•œκ°€μš”?

AIκ°€ μƒμ„±ν•œ μ½”λ“œμ—λŠ” λ³΄μ•ˆ 취약점이 322% 더 λ§Žλ‹€λŠ” 연ꡬ κ²°κ³Όκ°€ μžˆμŠ΅λ‹ˆλ‹€.

이 MCPλŠ” λ‹¨μˆœ 검사λ₯Ό λ„˜μ–΄μ„œ:

  • πŸ’‘ μžλ™μœΌλ‘œ μˆ˜μ • μ½”λ“œλ₯Ό μ œμ•ˆν•˜κ³ 

  • πŸ—οΈ IaC (Dockerfile, Kubernetes, Terraform)κΉŒμ§€ κ²€μ‚¬ν•˜λ©°

  • πŸ“Š Mermaid λ‹€μ΄μ–΄κ·Έλž¨κ³Ό SARIF 리포트λ₯Ό μƒμ„±ν•˜κ³ 

  • 🐳 Docker μƒŒλ“œλ°•μŠ€μ—μ„œ μ•ˆμ „ν•˜κ²Œ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ½”λ“œλ₯Ό μ»€λ°‹ν•˜κΈ° μ „, ν΄λΌμš°λ“œμ— λ°°ν¬ν•˜κΈ° μ „, ν•œ 번만 κ²€μ‚¬ν•˜λ©΄ λ©λ‹ˆλ‹€.

✨ μ£Όμš” κΈ°λŠ₯

🎯 μ½”λ“œ λ³΄μ•ˆ μŠ€μΊ”

Tool

μ„€λͺ…

scan-security

μ’…ν•© λ³΄μ•ˆ μŠ€μΊ” - λͺ¨λ“  검사λ₯Ό ν•œλ²ˆμ— μˆ˜ν–‰

scan-secrets

ν•˜λ“œμ½”λ”©λœ API ν‚€, λΉ„λ°€λ²ˆν˜Έ, 토큰 κ²€μΆœ

scan-injection

SQL/NoSQL/Command Injection 취약점 검사

scan-xss

Cross-Site Scripting 취약점 검사

scan-crypto

μ•”ν˜Έν™” 취약점 (μ•½ν•œ ν•΄μ‹œ, λΆˆμ•ˆμ „ν•œ 랜덀 λ“±)

scan-auth

인증/μ„Έμ…˜ 취약점 (JWT, μΏ ν‚€, CORS λ“±)

scan-path

파일/경둜 취약점 (Path Traversal, μ—…λ‘œλ“œ λ“±)

scan-dependencies

package.json λ“±μ—μ„œ μ·¨μ•½ν•œ μ˜μ‘΄μ„± 검사

1.2.0 AST 기반 JS/TS 탐지

JavaScript/TypeScript μŠ€μΊλ„ˆλŠ” 이제 ASTλ₯Ό νŒŒμ‹±ν•΄ λ‹¨μˆœ λ¬Έμžμ—΄ νŒ¨ν„΄μœΌλ‘œ λ†“μΉ˜λ˜ 흐름을 μΆ”μ ν•©λ‹ˆλ‹€.

  • ν•¨μˆ˜ νŒŒλΌλ―Έν„° taint: h(req.body.x)κ°€ function h(input) { db.query(input); } μ•ˆμ˜ sinkκΉŒμ§€ 이어지면 νƒμ§€ν•©λ‹ˆλ‹€.

  • 닀단계 λ³€μˆ˜ 흐름: req.body β†’ a β†’ b β†’ sink ν˜•νƒœλ₯Ό νƒμ§€ν•©λ‹ˆλ‹€.

  • innerHTML은 동적 κ°’ ν• λ‹Ήλ§Œ λ³΄κ³ ν•˜κ³ , λ¦¬ν„°λŸ΄ HTML λ¬Έμžμ—΄μ€ false positive둜 λ³΄κ³ ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

  • res.setHeader('Access-Control-Allow-Origin', '*') ν˜•νƒœμ˜ CORS μ™€μΌλ“œμΉ΄λ“œλ„ νƒμ§€ν•©λ‹ˆλ‹€.

  • Python / Java / Go 및 JS/TS parse μ‹€νŒ¨ νŒŒμΌμ€ κΈ°μ‘΄ regex 경둜λ₯Ό 계속 μ‚¬μš©ν•©λ‹ˆλ‹€.

πŸ—οΈ Infrastructure as Code (IaC) μŠ€μΊ”

Tool

μ„€λͺ…

scan-iac

Dockerfile, Kubernetes, Terraform λ³΄μ•ˆ 검사

  • Dockerfile: CIS Docker Benchmark 기반 15개 κ·œμΉ™

  • Kubernetes: Pod Security Standards (PSS) 기반 13개 κ·œμΉ™

  • Terraform: AWS/GCP/Azure λ³΄μ•ˆ μ„€μ • 15개 κ·œμΉ™

πŸ› οΈ μžλ™ μˆ˜μ • & κ³ κΈ‰ κΈ°λŠ₯

Tool

μ„€λͺ…

get-fix-suggestion

취약점에 λŒ€ν•œ μˆ˜μ •λœ μ½”λ“œ μžλ™ 생성

generate-security-report

Mermaid λ‹€μ΄μ–΄κ·Έλž¨ + SARIF + CVE 정보 μ’…ν•© 리포트

scan-in-sandbox

Docker 격리 ν™˜κ²½μ—μ„œ μ•ˆμ „ν•˜κ²Œ μŠ€μΊ” μ‹€ν–‰

μ„€μΉ˜

npmμ—μ„œ μ„€μΉ˜ (ꢌμž₯)

npm install -g security-scanner-mcp

λ˜λŠ” μ†ŒμŠ€μ—μ„œ λΉŒλ“œ

git clone https://github.com/ongjin/security-scanner-mcp.git
cd security-scanner-mcp
npm install && npm run build

Claude Code에 등둝

# npm μ „μ—­ μ„€μΉ˜ ν›„
claude mcp add --scope project security-scanner -- security-scanner-mcp

# λ˜λŠ” μ†ŒμŠ€μ—μ„œ λΉŒλ“œν•œ 경우
claude mcp add --scope project security-scanner -- node /path/to/security-scanner-mcp/dist/index.js

λΉ λ₯Έ μ„€μ • (도ꡬ μžλ™ ν—ˆμš©)

맀번 도ꡬ μ‚¬μš© μŠΉμΈμ„ λˆ„λ₯΄λŠ” 것이 λ²ˆκ±°λ‘­λ‹€λ©΄, μ•„λž˜ λ°©λ²•μœΌλ‘œ μžλ™ ν—ˆμš©μ„ μ„€μ •ν•˜μ„Έμš”.

πŸ–₯️ Claude Desktop App μ‚¬μš©μž

  1. Claude 앱을 μž¬μ‹œμž‘ν•©λ‹ˆλ‹€.

  2. security-scanner 도ꡬλ₯Ό μ‚¬μš©ν•˜λŠ” 첫 번째 μ§ˆλ¬Έμ„ λ˜μ§‘λ‹ˆλ‹€.

  3. μ•Œλ¦Όμ°½μ΄ 뜨면 "Always allow requests from this server" μ²΄ν¬λ°•μŠ€λ₯Ό ν΄λ¦­ν•˜κ³  Allowλ₯Ό λˆ„λ₯΄μ„Έμš”. (μ΄ν›„μ—λŠ” 묻지 μ•Šκ³  μ‹€ν–‰λ©λ‹ˆλ‹€.)

⌨️ Claude Code (CLI) μ‚¬μš©μž

터미널 ν™˜κ²½(claude λͺ…λ Ήμ–΄)을 μ‚¬μš© 쀑이라면 κΆŒν•œ 관리 λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ„Έμš”.

  1. ν„°λ―Έλ„μ—μ„œ claudeλ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.

  2. ν”„λ‘¬ν”„νŠΈ μž…λ ₯창에 /permissionsλ₯Ό μž…λ ₯ν•˜κ³  μ—”ν„°λ₯Ό μΉ©λ‹ˆλ‹€.

  3. Global Permissions (λ˜λŠ” Project Permissions) > Allowed Toolsλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.

  4. mcp__security-scanner__scan-security만 μž…λ ₯ν•˜κ±°λ‚˜, λͺ¨λ“  도ꡬλ₯Ό ν—ˆμš©ν•˜λ €λ©΄ mcp__security-scanner__*λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.

πŸ’‘ Tip: λŒ€λΆ€λΆ„μ˜ 경우 scan-security ν•˜λ‚˜λ§Œ ν—ˆμš©ν•΄λ„ μΆ©λΆ„ν•©λ‹ˆλ‹€. 이 도ꡬ가 λͺ¨λ“  λ³΄μ•ˆ 검사λ₯Ό ν†΅ν•©ν•΄μ„œ μˆ˜ν–‰ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

μ‚¬μš© μ˜ˆμ‹œ

πŸ“ κΈ°λ³Έ μ½”λ“œ μŠ€μΊ”

λ‚˜: 이 μ½”λ“œ λ³΄μ•ˆ κ²€μ‚¬ν•΄μ€˜

const apiKey = "AIzaSyC1234567890abcdef";
const query = `SELECT * FROM users WHERE id = ${userId}`;
element.innerHTML = userInput;

Claude: [scan-security 호좜]

## ⚠️ λ³΄μ•ˆ 취약점 발견!

### πŸ”΄ Critical (1개)
- **Google API Key** (라인 1)
  - Google API Keyκ°€ μ½”λ“œμ— ν•˜λ“œμ½”λ”©λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€
  - πŸ’‘ ν•΄κ²°μ±…: ν™˜κ²½λ³€μˆ˜λ‘œ κ΄€λ¦¬ν•˜κ³ , API ν‚€ μ œν•œ μ„€μ •ν•˜κΈ°

### 🟠 High (2개)
- **Template Literal SQL** (라인 2)
  - ν…œν”Œλ¦Ώ λ¦¬ν„°λŸ΄λ‘œ SQL 쿼리에 λ³€μˆ˜λ₯Ό μ‚½μž…ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€
  - πŸ’‘ ν•΄κ²°μ±…: Prepared Statementλ₯Ό μ‚¬μš©ν•˜μ„Έμš”

- **innerHTML Assignment** (라인 3)
  - innerHTML에 동적 값을 ν• λ‹Ήν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€
  - πŸ’‘ ν•΄κ²°μ±…: textContentλ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ DOMPurify둜 sanitizeν•˜μ„Έμš”

πŸ› οΈ μžλ™ μˆ˜μ • λ°›κΈ°

λ‚˜: innerHTML 취약점 μˆ˜μ • μ½”λ“œ λ³΄μ—¬μ€˜

Claude: [get-fix-suggestion 호좜]

## βœ… μˆ˜μ •λœ μ½”λ“œ

// ❌ Before (μ·¨μ•½)
element.innerHTML = userInput;

// βœ… After (μ•ˆμ „)
element.textContent = userInput;
// λ˜λŠ” HTML이 ν•„μš”ν•œ 경우:
import DOMPurify from 'dompurify';
element.innerHTML = DOMPurify.sanitize(userInput);

πŸ—οΈ IaC 파일 검사

λ‚˜: Dockerfile λ³΄μ•ˆ κ²€μ‚¬ν•΄μ€˜

Claude: [scan-iac 호좜]

## 🐳 Dockerfile λ³΄μ•ˆ 취약점 발견!

### πŸ”΄ Critical (2개)
- **DOC001**: root μ‚¬μš©μžλ‘œ μ‹€ν–‰
  - πŸ’‘ ν•΄κ²°μ±…: USER λͺ…λ ΉμœΌλ‘œ non-root μ‚¬μš©μž μ„€μ •

- **DOC005**: ν•˜λ“œμ½”λ”©λœ μ‹œν¬λ¦Ώ
  - πŸ’‘ ν•΄κ²°μ±…: ARG와 λΉŒλ“œ μ‹œν¬λ¦Ώ μ‚¬μš©

### 🟠 High (3개)
- **DOC002**: latest νƒœκ·Έ μ‚¬μš©
  - πŸ’‘ ν•΄κ²°μ±…: λͺ…μ‹œμ  버전 νƒœκ·Έ μ‚¬μš© (예: node:20-alpine)
...

πŸ“Š μ’…ν•© 리포트 생성

λ‚˜: 전체 λ³΄μ•ˆ 리포트λ₯Ό Mermaid λ‹€μ΄μ–΄κ·Έλž¨μœΌλ‘œ λ³΄μ—¬μ€˜

Claude: [generate-security-report 호좜]

# πŸ›‘οΈ λ³΄μ•ˆ μŠ€μΊ” λŒ€μ‹œλ³΄λ“œ

## πŸ“Š 전체 μš”μ•½
총 **8개**의 취약점이 λ°œκ²¬λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

## 🎯 심각도별 뢄포
```mermaid
pie title 심각도별 취약점 뢄포
    "πŸ”΄ Critical" : 2
    "🟠 High" : 3
    "🟑 Medium" : 2
    "🟒 Low" : 1
\```

## βš”οΈ κ°€λŠ₯ν•œ 곡격 μ‹œλ‚˜λ¦¬μ˜€
```mermaid
flowchart TD
    Start([곡격자]) --> Recon[μ •μ°°]
    Recon --> Secrets[ν•˜λ“œμ½”λ”©λœ<br/>μ‹œν¬λ¦Ώ 발견]
    Secrets --> Access[인증 우회]
    ...
\```

+ SARIF 리포트 (GitHub Code Scanning ν˜Έν™˜)
+ CVE/OWASP 상세 정보

🐳 μƒŒλ“œλ°•μŠ€μ—μ„œ μ•ˆμ „ν•˜κ²Œ μ‹€ν–‰

λ‚˜: 이 μ½”λ“œλ₯Ό μƒŒλ“œλ°•μŠ€μ—μ„œ μ•ˆμ „ν•˜κ²Œ κ²€μ‚¬ν•΄μ€˜

Claude: [scan-in-sandbox 호좜]

## 🐳 μƒŒλ“œλ°•μŠ€ μŠ€μΊ” κ²°κ³Ό

βœ… **μŠ€μΊ” μ™„λ£Œ**

### πŸ”’ μƒŒλ“œλ°•μŠ€ μ„€μ •
- **λ©”λͺ¨λ¦¬ μ œν•œ**: 512MB
- **CPU μ œν•œ**: 0.5 μ½”μ–΄
- **νƒ€μž„μ•„μ›ƒ**: 30000ms
- **λ„€νŠΈμ›Œν¬**: λΉ„ν™œμ„±ν™”
- **κΆŒν•œ**: μ΅œμ†Œ κΆŒν•œ

κ²€μΆœν•˜λŠ” 취약점

πŸ”‘ ν•˜λ“œμ½”λ”©λœ μ‹œν¬λ¦Ώ

  • AWS Access Key / Secret Key

  • Google API Key / OAuth Secret

  • GitHub Token / Slack Token

  • Database Connection String

  • Private Key (RSA, EC λ“±)

  • JWT Token

  • Kakao / Naver API Key

  • Stripe / Twilio API Key

πŸ’‰ Injection

  • SQL Injection (λ¬Έμžμ—΄ μ—°κ²°, ν…œν”Œλ¦Ώ λ¦¬ν„°λŸ΄, ν•¨μˆ˜ νŒŒλΌλ―Έν„° 흐름)

  • NoSQL Injection (MongoDB, tainted query object)

  • Command Injection (exec, spawn, execSync)

  • LDAP Injection

🌐 XSS

  • dangerouslySetInnerHTML (React)

  • innerHTML / outerHTML (동적 κ°’ 탐지, λ¦¬ν„°λŸ΄ HTML은 μ œμ™Έ)

  • jQuery .html() / Vue v-html

  • eval() / new Function()

  • document.write()

πŸ” μ•”ν˜Έν™”

  • μ•½ν•œ ν•΄μ‹œ (MD5, SHA1)

  • μ•ˆμ „ν•˜μ§€ μ•Šμ€ 랜덀 (Math.random)

  • 닀단계 taintκ°€ λ“€μ–΄κ°„ 평문 λΉ„λ°€λ²ˆν˜Έ μ €μž₯

  • ν•˜λ“œμ½”λ”©λœ μ•”ν˜Έν™” ν‚€/IV

  • SSL μΈμ¦μ„œ 검증 λΉ„ν™œμ„±ν™”

  • μ·¨μ•½ν•œ TLS 버전 (1.0, 1.1)

πŸ”’ 인증/μ„Έμ…˜

  • JWT μ„€μ • 였λ₯˜ (none μ•Œκ³ λ¦¬μ¦˜, 만료 μ—†μŒ)

  • μ•ˆμ „ν•˜μ§€ μ•Šμ€ μΏ ν‚€ μ„€μ •

  • CORS μ™€μΌλ“œμΉ΄λ“œ (setHeader / header 포함)

  • μ•½ν•œ λΉ„λ°€λ²ˆν˜Έ μ •μ±…

πŸ“ 파일/경둜

  • Path Traversal (닀단계 λ³€μˆ˜/ν•¨μˆ˜ νŒŒλΌλ―Έν„° 흐름 포함)

  • μœ„ν—˜ν•œ 파일 μ‚­μ œ

  • μ•ˆμ „ν•˜μ§€ μ•Šμ€ 파일 μ—…λ‘œλ“œ

  • Zip Slip (Java)

  • Pickle 역직렬화 (Python)

πŸ—οΈ Infrastructure as Code

Dockerfile (CIS Docker Benchmark):

  • root μ‚¬μš©μžλ‘œ μ‹€ν–‰

  • ν•˜λ“œμ½”λ”©λœ μ‹œν¬λ¦Ώ

  • latest νƒœκ·Έ μ‚¬μš©

  • λΆˆν•„μš”ν•œ 포트 λ…ΈμΆœ

  • ν—¬μŠ€μ²΄ν¬ λˆ„λ½

Kubernetes (Pod Security Standards):

  • Privileged μ»¨ν…Œμ΄λ„ˆ

  • Root μ‹€ν–‰

  • Host λ„€νŠΈμ›Œν¬/PID/IPC μ‚¬μš©

  • μœ„ν—˜ν•œ Capability μΆ”κ°€

  • Resource limit λ―Έμ„€μ •

Terraform (Multi-Cloud):

  • 곡개 IP ν• λ‹Ή

  • μ•”ν˜Έν™” λ―Έμ„€μ •

  • λ°©ν™”λ²½ 전체 μ˜€ν”ˆ (0.0.0.0/0)

  • Public μ ‘κ·Ό κ°€λŠ₯ λ¦¬μ†ŒμŠ€

πŸ“¦ μ·¨μ•½ν•œ μ˜μ‘΄μ„±

  • npm audit 연동

  • Python requirements.txt 검사

  • Go go.mod 검사

지원 μ–Έμ–΄

  • βœ… JavaScript / TypeScript

  • βœ… Python

  • βœ… Java

  • βœ… Go

  • βœ… Dockerfile

  • βœ… Kubernetes YAML

  • βœ… Terraform HCL

🎨 리포트 포맷

  • Markdown: 읽기 μ‰¬μš΄ ν…μŠ€νŠΈ 리포트

  • Mermaid: μ‹œκ°ν™” λ‹€μ΄μ–΄κ·Έλž¨ (Pie, Bar, Flowchart)

  • SARIF: GitHub Code Scanning / VS Code ν˜Έν™˜ 포맷

  • CVE Enrichment: NVD λ°μ΄ν„°λ² μ΄μŠ€ 연동

  • OWASP Mapping: OWASP Top 10:2021 + CWE λ§€ν•‘

🐳 Docker μƒŒλ“œλ°•μŠ€

μ•…μ˜μ μΈ μ½”λ“œλ‘œλΆ€ν„° 호슀트λ₯Ό λ³΄ν˜Έν•˜κΈ° μœ„ν•΄ Docker 격리 ν™˜κ²½μ—μ„œ μŠ€μΊ”μ„ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Docker 이미지 μ€€λΉ„

Docker Hubμ—μ„œ pull (ꢌμž₯)

# 미리 λΉŒλ“œλœ 이미지 λ‹€μš΄λ‘œλ“œ (Trivy, GitLeaks, Checkov 포함)
docker pull ongjin/security-scanner-mcp:latest
docker tag ongjin/security-scanner-mcp:latest security-scanner-mcp:latest

ν¬ν•¨λœ μ™ΈλΆ€ λ³΄μ•ˆ 도ꡬ:

  • Trivy v0.50.4 - μ»¨ν…Œμ΄λ„ˆ/IaC 취약점 μŠ€μΊλ„ˆ

  • GitLeaks v8.18.4 - μ‹œν¬λ¦Ώ 탐지

  • Checkov - Infrastructure as Code λ³΄μ•ˆ μŠ€μΊλ„ˆ

μ†ŒμŠ€μ—μ„œ 직접 λΉŒλ“œ (선택사항)

npm run docker:build

μ°Έκ³ : λΉŒλ“œμ—λŠ” 5-10λΆ„ 정도 μ†Œμš”λ˜λ©°, 이미지 ν¬κΈ°λŠ” μ•½ 500MBμž…λ‹ˆλ‹€.

μƒŒλ“œλ°•μŠ€μ—μ„œ μŠ€μΊ” μ‹€ν–‰

Claude Codeμ—μ„œ:

scan-in-sandbox 호좜

λ³΄μ•ˆ μ„€μ •:

  • λ©”λͺ¨λ¦¬ μ œν•œ: 128MB ~ 2GB

  • CPU μ œν•œ: 0.1 ~ 2.0 μ½”μ–΄

  • νƒ€μž„μ•„μ›ƒ: 5초 ~ 5λΆ„

  • λ„€νŠΈμ›Œν¬: κΈ°λ³Έ λΉ„ν™œμ„±ν™”

  • νŒŒμΌμ‹œμŠ€ν…œ: 읽기 μ „μš©

  • κΆŒν•œ: μ΅œμ†Œ κΆŒν•œ (no-new-privileges, drop all capabilities)

데λͺ¨

# 데λͺ¨ μ‹€ν–‰
npm run demo

μ•„ν‚€ν…μ²˜

src/
β”œβ”€β”€ index.ts                    # MCP μ„œλ²„ (12개 도ꡬ)
β”œβ”€β”€ scanners/                   # μ½”λ“œ μŠ€μΊλ„ˆ (8개)
β”‚   β”œβ”€β”€ secrets.ts
β”‚   β”œβ”€β”€ injection.ts
β”‚   β”œβ”€β”€ xss.ts
β”‚   └── ...
β”œβ”€β”€ iac-scanners/              # IaC μŠ€μΊλ„ˆ (3개)
β”‚   β”œβ”€β”€ dockerfile.ts          # 15개 κ·œμΉ™
β”‚   β”œβ”€β”€ kubernetes.ts          # 13개 κ·œμΉ™
β”‚   └── terraform.ts           # 15개 κ·œμΉ™
β”œβ”€β”€ remediation/               # μžλ™ μˆ˜μ •
β”‚   β”œβ”€β”€ code-fixer.ts          # AST 기반 μ½”λ“œ λ³€ν™˜
β”‚   └── templates/             # μˆ˜μ • ν…œν”Œλ¦Ώ
β”œβ”€β”€ reporting/                 # λ¦¬ν¬νŒ…
β”‚   β”œβ”€β”€ mermaid-generator.ts   # λ‹€μ΄μ–΄κ·Έλž¨ 생성
β”‚   β”œβ”€β”€ sarif-generator.ts     # SARIF 포맷
β”‚   └── markdown-formatter.ts
β”œβ”€β”€ external/                  # μ™ΈλΆ€ API
β”‚   β”œβ”€β”€ cve-lookup.ts          # NVD API 연동
β”‚   └── owasp-database.ts      # OWASP Top 10 DB
└── sandbox/                   # μƒŒλ“œλ°•μŠ€
    └── docker-manager.ts      # Docker μ‹€ν–‰ 관리

πŸ–₯️ CLI λͺ¨λ“œ (CI/CD 톡합)

Claude 없이 λ…λ¦½μ μœΌλ‘œ μ‹€ν–‰ν•  수 μžˆλŠ” CLI λͺ¨λ“œλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. Jenkins, GitHub Actions, GitLab CI λ“± μ–΄λ””μ„œλ“  μ‚¬μš© κ°€λŠ₯ν•©λ‹ˆλ‹€.

κΈ°λ³Έ μ‚¬μš©λ²•

# 파일 μŠ€μΊ”
npx security-scanner-mcp scan ./src/app.js

# 디렉토리 μŠ€μΊ”
npx security-scanner-mcp scan ./src

# κ²°κ³Όλ₯Ό 파일둜 μ €μž₯
npx security-scanner-mcp scan ./src --output report.txt

좜λ ₯ 포맷

# JSON 포맷 (νŒŒμ‹±μš©)
npx security-scanner-mcp scan ./src --format json

# SARIF 포맷 (GitHub Code Scanning ν˜Έν™˜)
npx security-scanner-mcp scan ./src --format sarif --output report.sarif

CI/CD μ˜΅μ…˜

# Critical 취약점 발견 μ‹œ λΉŒλ“œ μ‹€νŒ¨ (exit code 1)
npx security-scanner-mcp scan ./src --fail-on critical

# High 이상 취약점 발견 μ‹œ λΉŒλ“œ μ‹€νŒ¨
npx security-scanner-mcp scan ./src --fail-on high

# νŠΉμ • 파일만 포함
npx security-scanner-mcp scan ./src --include "*.ts,*.js"

# νŠΉμ • 폴더 μ œμ™Έ
npx security-scanner-mcp scan ./src --exclude "node_modules,dist,test"

Jenkins μ˜ˆμ‹œ

pipeline {
    agent any
    stages {
        stage('Security Scan') {
            steps {
                sh 'npx security-scanner-mcp scan ./src --format json --output security-report.json --fail-on high'
            }
        }
    }
    post {
        always {
            archiveArtifacts artifacts: 'security-report.json', fingerprint: true
        }
    }
}

GitHub Actions μ˜ˆμ‹œ

name: Security Scan
on: [push, pull_request]

jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Run Security Scan
        run: npx security-scanner-mcp scan ./src --format sarif --output results.sarif --fail-on critical

      - name: Upload SARIF to GitHub
        uses: github/codeql-action/upload-sarif@v2
        with:
          sarif_file: results.sarif

GitLab CI μ˜ˆμ‹œ

security_scan:
  stage: test
  script:
    - npx security-scanner-mcp scan ./src --format json --output gl-security-report.json --fail-on high
  artifacts:
    reports:
      security: gl-security-report.json

λ‘œλ“œλ§΅

  • OWASP Top 10 기반 검사

  • 닀쀑 μ–Έμ–΄ 지원 (JS/TS/Python/Java/Go)

  • IaC μŠ€μΊ” (Dockerfile, Kubernetes, Terraform)

  • μžλ™ μˆ˜μ • μ œμ•ˆ κΈ°λŠ₯ (AST 기반)

  • κ³ κΈ‰ λ¦¬ν¬νŒ… (Mermaid, SARIF)

  • μ™ΈλΆ€ 취약점 DB 연동 (NVD, OWASP)

  • Docker μƒŒλ“œλ°•μŠ€ μ‹€ν–‰

  • CLI λͺ¨λ“œ (CI/CD νŒŒμ΄ν”„λΌμΈ 톡합)

  • GitHub Actions Marketplace 등둝

  • VS Code ν™•μž₯

κΈ°μ—¬ν•˜κΈ°

PR ν™˜μ˜ν•©λ‹ˆλ‹€! 특히 λ‹€μŒ κΈ°μ—¬λ₯Ό κΈ°λ‹€λ¦½λ‹ˆλ‹€:

  • μƒˆλ‘œμš΄ λ³΄μ•ˆ νŒ¨ν„΄ μΆ”κ°€

  • λ‹€λ₯Έ μ–Έμ–΄ 지원 (Rust, C#, PHP λ“±)

  • IaC κ·œμΉ™ ν™•μž₯ (Ansible, CloudFormation λ“±)

  • λ¬Έμ„œ κ°œμ„ 

λΌμ΄μ„ μŠ€

MIT


Made with ❀️ by zerry

λ‹¨μˆœ μŠ€μΊλ„ˆλ₯Ό λ„˜μ–΄, μ§€λŠ₯ν˜• λ³΄μ•ˆ νŒŒνŠΈλ„ˆλ‘œ.

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    B
    maintenance
    Enables security scanning of codebases through integrated tools for secret detection, SCA, SAST, and DAST vulnerabilities, with AI-powered remediation suggestions based on findings.
    MIT
  • A
    license
    -
    quality
    B
    maintenance
    Predeploy security scanner for AI-generated code. 80+ vulnerability patterns across secrets, auth, injection, config, Supabase, and logging. Runs locally, code never leaves your machine. Optional x402 witnessed attestation.
    79
    Apache 2.0
  • A
    license
    -
    quality
    B
    maintenance
    Provides AI coding assistants with real-time security scanning superpowers, including SAST, secrets detection, dependency CVE scanning, and web vulnerability assessment.
    159
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Zero-config MCP security scanner for AI-generated apps. 25K+ vulnerability patterns.

  • Threat modeling, code/cloud/pipeline scanning, shadow-AI discovery, compliance checks and fixes.

  • Compliance & security scan for your app: secrets, exposed files, headers, privacy, AI-disclosure.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ongjin/security-scanner-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server