@aiclude/mcp-guard 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE.md ADDED
@@ -0,0 +1,64 @@
1
+ # AICLUDE Proprietary License
2
+
3
+ **Version 1.0 — Effective Date: January 1, 2026**
4
+
5
+ Copyright © 2026 AIclude Inc. All rights reserved.
6
+
7
+ ---
8
+
9
+ ## 1. 정의
10
+
11
+ - **"소프트웨어"** 란 MCP Guard의 소스 코드, 바이너리, 문서, 관련 파일 일체를 의미합니다.
12
+ - **"라이선서"** 란 AIclude Inc.를 의미합니다.
13
+ - **"라이선시"** 란 본 라이선스에 동의하고 소프트웨어를 사용하는 개인 또는 법인을 의미합니다.
14
+
15
+ ## 2. 라이선스 부여
16
+
17
+ 라이선서는 라이선시에게 다음 조건 하에 소프트웨어의 비독점적, 양도 불가능한, 제한적 사용 권한을 부여합니다.
18
+
19
+ ### 2.1 허용되는 사용
20
+
21
+ - **평가 목적**: 비상업적 환경에서 소프트웨어의 기능을 평가하기 위한 사용
22
+ - **허가된 상업적 사용**: 라이선서와 별도의 상업적 라이선스 계약을 체결한 경우에 한하여 상업적 목적으로 사용 가능
23
+
24
+ ### 2.2 금지되는 행위
25
+
26
+ 명시적 서면 허가 없이 다음 행위는 엄격히 금지됩니다:
27
+
28
+ - 소프트웨어의 전부 또는 일부를 **복제, 수정, 병합, 배포, 재라이선스, 판매**하는 행위
29
+ - 소프트웨어를 기반으로 **파생 저작물**을 작성하는 행위
30
+ - 소프트웨어의 **역컴파일, 역어셈블, 리버스 엔지니어링** 행위
31
+ - 소프트웨어를 **제3자에게 서브라이선스**하는 행위
32
+ - 본 라이선스의 저작권 표시, 상표, 또는 기타 권리 고지를 **제거하거나 변경**하는 행위
33
+
34
+ ## 3. 지적 재산권
35
+
36
+ 소프트웨어에 대한 모든 지적 재산권(저작권, 특허, 상표, 영업비밀 포함)은 라이선서에게 독점적으로 귀속됩니다. 본 라이선스는 라이선시에게 소프트웨어에 대한 소유권을 부여하지 않습니다.
37
+
38
+ ## 4. 보증 부인
39
+
40
+ 소프트웨어는 **"있는 그대로(AS-IS)"** 제공되며, 상품성, 특정 목적에의 적합성, 비침해에 대한 보증을 포함하여 명시적이든 묵시적이든 어떠한 종류의 보증도 제공하지 않습니다.
41
+
42
+ ## 5. 책임 제한
43
+
44
+ 어떠한 경우에도 라이선서는 소프트웨어의 사용 또는 사용 불능으로 인해 발생하는 직접적, 간접적, 우발적, 특수적, 징벌적 또는 결과적 손해에 대하여 책임을 지지 않습니다.
45
+
46
+ ## 6. 라이선스 종료
47
+
48
+ - 라이선시가 본 라이선스의 조건을 위반할 경우, 라이선스는 자동으로 종료됩니다.
49
+ - 라이선스 종료 시, 라이선시는 소프트웨어의 모든 사본을 즉시 삭제해야 합니다.
50
+
51
+ ## 7. 준거법
52
+
53
+ 본 라이선스는 대한민국 법률에 의해 규율되며, 관련 분쟁은 서울중앙지방법원을 전속 관할 법원으로 합니다.
54
+
55
+ ## 8. 상업적 라이선스
56
+
57
+ 상업적 사용을 위한 라이선스 문의: **license@aiclude.com**
58
+
59
+ ---
60
+
61
+ **AIclude Inc.**
62
+ 서울특별시 강남구 | https://aiclude.com
63
+
64
+ > [← README로 돌아가기](README.md)
package/README.md ADDED
@@ -0,0 +1,209 @@
1
+ <p align="center">
2
+ <img src="https://aiclude.com/assets/mcp-guard-logo.svg" alt="MCP Guard" width="120" />
3
+ </p>
4
+
5
+ <h1 align="center">MCP Guard</h1>
6
+
7
+ <p align="center">
8
+ <strong>AI 에이전트를 위한 실시간 보안 방화벽</strong><br/>
9
+ MCP(Model Context Protocol) 통신을 실시간으로 검사하고, 악성 도구 호출을 사전에 차단합니다.
10
+ </p>
11
+
12
+ <p align="center">
13
+ <a href="#왜-mcp-guard인가">왜 필요한가</a> ·
14
+ <a href="#핵심-기능">핵심 기능</a> ·
15
+ <a href="#빠른-시작">빠른 시작</a> ·
16
+ <a href="USAGE.md">사용 가이드</a> ·
17
+ <a href="LICENSE.md">라이선스</a>
18
+ </p>
19
+
20
+ ---
21
+
22
+ ## 왜 MCP Guard인가?
23
+
24
+ AI 에이전트 시대, **MCP(Model Context Protocol)** 는 사실상의 표준이 되었습니다. Claude, Cursor, Copilot 등 주요 AI 도구가 MCP를 통해 외부 시스템과 연동합니다.
25
+
26
+ **그러나 MCP 통신은 무방비 상태입니다.**
27
+
28
+ - 2026년 1~2월, MCP 관련 CVE **30건 이상** 발생
29
+ - MCP 플러그인 10개만 설치해도 **92%의 익스플로잇 확률** (VentureBeat)
30
+ - **OWASP MCP Top 10** 발표 — Tool Poisoning, Prompt Injection, Context Spoofing 등 실제 공격 확인
31
+
32
+ 기존 보안 도구(WAF, SAST, DAST)는 MCP 프로토콜 레벨에서 동작하지 않습니다. HTTP 요청이 아닌 **JSON-RPC 메시지 스트림** 위에서 벌어지는 공격은 기존 도구로 탐지할 수 없습니다.
33
+
34
+ > **MCP Guard**는 MCP 클라이언트와 서버 사이에 인라인으로 위치하여, 모든 메시지를 실시간으로 검사하고 위험한 도구 호출을 **서버에 도달하기 전에 차단**합니다.
35
+
36
+ ---
37
+
38
+ ## 핵심 기능
39
+
40
+ ### 실시간 양방향 메시지 검사
41
+
42
+ MCP 클라이언트 → 서버, 서버 → 클라이언트 **양방향 모든 메시지**를 실시간으로 검사합니다. 단순한 사후 분석이 아닌, 위험이 실행되기 전에 차단하는 **인라인 보안 프록시**입니다.
43
+
44
+ ### 3대 보안 룰 엔진
45
+
46
+ | 보안 룰 | 검사 대상 | 대응 위협 |
47
+ |---------|----------|----------|
48
+ | **Tool Poisoning Detection** | 서버가 노출하는 도구 목록 | 제로폭 스테가노그래피, 프롬프트 인젝션, 도구명 사칭, 호모글리프 위장 |
49
+ | **Argument Injection Detection** | 클라이언트의 도구 호출 인자 | SQL/Command/XSS/Path Traversal/Template 인젝션 |
50
+ | **Data Exfiltration Detection** | 서버의 도구 실행 결과 | 민감 데이터 노출, 시스템 경로 유출, 명령어 실행 증거 |
51
+
52
+ ### 다국어 위협 탐지
53
+
54
+ 영어뿐 아니라 **한국어, 중국어, 일본어** 프롬프트 인젝션 구절을 탐지합니다. 시릴릭/그리스 문자를 이용한 호모글리프 우회 공격도 정규화하여 차단합니다.
55
+
56
+ ### 듀얼 프로토콜 지원
57
+
58
+ | 모드 | 용도 | 대상 |
59
+ |------|------|------|
60
+ | **stdio** | 로컬 MCP 서버 프로세스 래핑 | Claude Desktop, Cursor 등 |
61
+ | **HTTP** | 원격 MCP 서버 리버스 프록시 | Streamable HTTP + Legacy SSE |
62
+
63
+ ### 제로 설정, 즉시 보호
64
+
65
+ 정책 파일 없이도 빌트인 기본 정책으로 즉시 보호를 시작합니다. 필요 시 YAML 정책 파일로 세부 조정이 가능합니다.
66
+
67
+ ---
68
+
69
+ ## 한눈에 보는 보호 범위
70
+
71
+ ```
72
+ ┌─────────────────────────────────────────────────────────────────────┐
73
+ │ MCP Guard 보호 범위 │
74
+ ├─────────────────────┬───────────────────────┬───────────────────────┤
75
+ │ 도구 정의 검사 │ 도구 호출 검사 │ 도구 응답 검사 │
76
+ │ (server → client) │ (client → server) │ (server → client) │
77
+ ├─────────────────────┼───────────────────────┼───────────────────────┤
78
+ │ ✓ 제로폭 스테가노그래피 │ ✓ SQL Injection │ ✓ 민감 데이터 노출 │
79
+ │ ✓ 프롬프트 인젝션 │ ✓ Command Injection │ ✓ 시스템 경로 유출 │
80
+ │ ✓ 호모글리프 위장 │ ✓ Path Traversal │ ✓ 스택 트레이스 노출 │
81
+ │ ✓ HTML 주석 은닉 │ ✓ XSS │ ✓ 명령어 실행 증거 │
82
+ │ ✓ Base64 인코딩 은닉 │ ✓ Template Injection │ ✓ 템플릿 인젝션 결과 │
83
+ │ ✓ 도구명 사칭 │ ✓ 프롬프트 인젝션 │ ✓ 자격 증명 유출 │
84
+ │ ✓ 다국어 인젝션 │ ✓ 다국어 인젝션 │ │
85
+ │ ✓ 에이전트 조작 패턴 │ ✓ 제로폭 문자 은닉 │ │
86
+ │ ✓ InputSchema 검사 │ │ │
87
+ ├─────────────────────┴───────────────────────┴───────────────────────┤
88
+ │ CWE: CWE-22, CWE-78, CWE-79, CWE-89, CWE-94, CWE-200, CWE-209 │
89
+ │ OWASP MCP Top 10: Tool Poisoning, Prompt Injection 등 다수 대응 │
90
+ └─────────────────────────────────────────────────────────────────────┘
91
+ ```
92
+
93
+ ---
94
+
95
+ ## 동작 원리
96
+
97
+ MCP Guard는 클라이언트와 서버 사이에서 **투명 프록시**로 동작합니다.
98
+
99
+ ### stdio 모드 — 로컬 MCP 서버
100
+
101
+ ```
102
+ ┌──────────────┐ stdio ┌──────────────┐ stdio ┌──────────────┐
103
+ │ MCP Client │ ────────────→ │ MCP Guard │ ────────────→ │ MCP Server │
104
+ │ (Claude 등) │ ←──────────── │ (Proxy) │ ←──────────── │ (로컬) │
105
+ └──────────────┘ └──────┬───────┘ └──────────────┘
106
+
107
+ ┌──────┴───────┐
108
+ │ Rule Engine │
109
+ └──────────────┘
110
+ ```
111
+
112
+ ### HTTP 모드 — 원격 MCP 서버
113
+
114
+ ```
115
+ ┌──────────────┐ HTTP POST ┌──────────────┐ HTTP POST ┌──────────────┐
116
+ │ MCP Client │ ────────────→ │ MCP Guard │ ────────────→ │ MCP Server │
117
+ │ │ ←──SSE/JSON── │ (:9090) │ ←──SSE/JSON── │ (원격) │
118
+ └──────────────┘ └──────┬───────┘ └──────────────┘
119
+
120
+ ┌──────┴───────┐
121
+ │ Rule Engine │
122
+ └──────────────┘
123
+ ```
124
+
125
+ **기본 동작: Fail-Close.** 정책 엔진에 오류가 발생하면 안전을 위해 모든 트래픽을 차단합니다.
126
+
127
+ ---
128
+
129
+ ## 빠른 시작
130
+
131
+ ```bash
132
+ # 설치
133
+ npm install -g mcp-guard
134
+
135
+ # stdio 모드: 로컬 MCP 서버 보호
136
+ mcp-guard -- npx @modelcontextprotocol/server-fetch
137
+
138
+ # HTTP 모드: 원격 MCP 서버 보호
139
+ mcp-guard http --upstream http://mcp-server:8080/mcp --port 9090
140
+ ```
141
+
142
+ ### Claude Desktop 연동
143
+
144
+ ```json
145
+ {
146
+ "mcpServers": {
147
+ "fetch-guarded": {
148
+ "command": "npx",
149
+ "args": ["-y", "mcp-guard", "--", "npx", "-y", "@modelcontextprotocol/server-fetch"]
150
+ }
151
+ }
152
+ }
153
+ ```
154
+
155
+ > 자세한 설치, 설정, 정책 작성법은 **[사용 가이드(USAGE.md)](USAGE.md)** 를 참고하세요.
156
+
157
+ ---
158
+
159
+ ## 제품 특장점
160
+
161
+ | 특장점 | 설명 |
162
+ |--------|------|
163
+ | **마이크로초 검사** | 동기적 패턴 매칭으로 메시지당 마이크로초 수준 지연. 사용자 경험 영향 없음 |
164
+ | **46KB 초경량** | 의존성 3개, 단일 파일 번들. 공급망 공격 표면 최소화 |
165
+ | **Node.js 단독** | 별도 데몬/컨테이너 불필요. 어디서나 즉시 배포 |
166
+ | **YAML 정책** | 룰별 활성화/비활성화, 심각도 조정, 차단/경고 세밀 제어 |
167
+ | **Dry-Run** | 차단 없이 관찰 모드. 새 MCP 서버 안전 테스트 |
168
+
169
+ ---
170
+
171
+ ## 기술 사양
172
+
173
+ | 항목 | 내용 |
174
+ |------|------|
175
+ | Language | TypeScript (strict mode, ESM-only) |
176
+ | Runtime | Node.js 20+ |
177
+ | Bundle Size | 46KB (단일 파일) |
178
+ | Dependencies | 3개 |
179
+ | Transport | stdio + HTTP (Streamable HTTP, Legacy SSE) |
180
+ | 보안 룰 | 3종, 탐지기 7개 모듈 |
181
+ | 인젝션 패턴 | 21개+, 프롬프트 인젝션 구절 33개+ (영/한/중/일) |
182
+ | CWE 커버리지 | 7개 (CWE-22, 78, 79, 89, 94, 200, 209) |
183
+ | OS | macOS, Linux, Windows |
184
+
185
+ ---
186
+
187
+ ## 관련 프로젝트
188
+
189
+ - **[AIclude ASVS](https://vs.aiclude.com)** — AI Agent 보안 취약점 종합 진단 플랫폼
190
+ - **[OWASP MCP Top 10](https://owasp.org/www-project-mcp-top-10/)** — MCP 보안 위협 분류 체계
191
+
192
+ ---
193
+
194
+ ## 문서
195
+
196
+ | 문서 | 내용 |
197
+ |------|------|
198
+ | **[사용 가이드 (USAGE.md)](USAGE.md)** | 설치, 설정, CLI 옵션, 정책 작성법, 연동 가이드, FAQ |
199
+ | **[라이선스 (LICENSE.md)](LICENSE.md)** | AICLUDE Proprietary License |
200
+
201
+ ---
202
+
203
+ ## 라이선스
204
+
205
+ MCP Guard는 **AICLUDE Proprietary License**에 의해 보호됩니다. AIclude Inc.의 명시적 서면 허가 없이 복제, 수정, 배포, 상업적 사용이 금지됩니다.
206
+
207
+ 자세한 내용은 [LICENSE.md](LICENSE.md)를 참고하세요.
208
+
209
+ Copyright © 2026 AIclude Inc. All rights reserved.
@@ -0,0 +1 @@
1
+ #!/usr/bin/env node