@bcdflow/dev-inspector 2.0.0 → 2.0.1
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/README.md +192 -0
- package/package.json +11 -2
package/README.md
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# @bcdflow/dev-inspector
|
|
2
|
+
|
|
3
|
+
AI 코딩 어시스턴트(Claude Code)와 연동하여 웹 페이지를 실시간으로 검사, 어노테이션, 감사할 수 있는 Express 미들웨어입니다.
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
Claude Code → MCP Server (stdio) → Express API (SSE+REST) → Client JS (in-page) → DOM
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Quick Start
|
|
10
|
+
|
|
11
|
+
### 1. 설치
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install -D @bcdflow/dev-inspector
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### 2. Express 앱에 미들웨어 추가
|
|
18
|
+
|
|
19
|
+
```javascript
|
|
20
|
+
const { devInspector } = require('@bcdflow/dev-inspector');
|
|
21
|
+
|
|
22
|
+
// 개발 환경에서만 활성화 (production에서 자동 비활성)
|
|
23
|
+
app.use(devInspector({ autoInject: true }));
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 3. MCP 서버 등록 (Claude Code 연동)
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npx dev-inspector setup
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 4. 사용
|
|
33
|
+
|
|
34
|
+
- 서버 시작 후 브라우저에서 페이지 열기
|
|
35
|
+
- 우하단 돋보기 버튼 클릭 또는 `Ctrl+Shift+X`로 인스펙터 토글
|
|
36
|
+
- Claude Code에서 MCP 도구로 DOM 검사, 어노테이션, 접근성 감사 등 사용
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## License Key (Pro)
|
|
41
|
+
|
|
42
|
+
Free tier는 11개 기본 도구를 제공합니다. Pro 라이선스를 활성화하면 34개 전체 도구를 사용할 수 있습니다.
|
|
43
|
+
|
|
44
|
+
### 활성화 방법
|
|
45
|
+
|
|
46
|
+
**방법 1: CLI로 활성화** (권장)
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npx dev-inspector activate DI-XXXX-XXXX-XXXX
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
키가 `~/.dev-inspector/config.json`에 저장되어 모든 프로젝트에서 자동 적용됩니다.
|
|
53
|
+
|
|
54
|
+
**방법 2: 환경변수**
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# .env
|
|
58
|
+
DEV_INSPECTOR_KEY=DI-XXXX-XXXX-XXXX
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**방법 3: 미들웨어 옵션**
|
|
62
|
+
|
|
63
|
+
```javascript
|
|
64
|
+
app.use(devInspector({
|
|
65
|
+
licenseKey: process.env.DEV_INSPECTOR_KEY,
|
|
66
|
+
autoInject: true,
|
|
67
|
+
}));
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### 상태 확인
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
npx dev-inspector status
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Free vs Pro
|
|
77
|
+
|
|
78
|
+
| 기능 | Free | Pro |
|
|
79
|
+
|------|:----:|:---:|
|
|
80
|
+
| DOM 검사 (`inspect_element`) | O | O |
|
|
81
|
+
| 요소 선택/하이라이트 (`select_element`) | O | O |
|
|
82
|
+
| 어노테이션 관리 (acknowledge, resolve, dismiss, reply) | O | O |
|
|
83
|
+
| 버그 컨텍스트 (`get_bug_context`) | O | O |
|
|
84
|
+
| 텍스트 어노테이션 (`annotate_text`) | - | O |
|
|
85
|
+
| 애니메이션 제어 (`pause_animations`) | - | O |
|
|
86
|
+
| React 컴포넌트 검사 (`inspect_component`, `find_components`) | - | O |
|
|
87
|
+
| 스크린샷 캡처 (`capture_page`, `capture_labeled`) | - | O |
|
|
88
|
+
| 접근성 감사 (`audit_accessibility`, `check_contrast`) | - | O |
|
|
89
|
+
| CSS 규칙 검사 (`inspect_css_rules`) | - | O |
|
|
90
|
+
| 디자인 토큰 추출 (`extract_design_tokens`) | - | O |
|
|
91
|
+
| React 상태 검사 (`inspect_react_state`) | - | O |
|
|
92
|
+
| 페이지 구조 검증 (`validate_page_structure`) | - | O |
|
|
93
|
+
| Tailwind 매핑 (`map_to_tailwind`) | - | O |
|
|
94
|
+
| 성능 메트릭 (`get_performance_metrics`) | - | O |
|
|
95
|
+
| 테스트 코드 생성 (`generate_test_code`) | - | O |
|
|
96
|
+
| 탭 순서 검사 (`inspect_tab_order`) | - | O |
|
|
97
|
+
| 에셋 목록 (`list_assets`) | - | O |
|
|
98
|
+
| 버그 리포트 내보내기 (`export_bug_report`) | - | O |
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 미들웨어 옵션
|
|
103
|
+
|
|
104
|
+
```javascript
|
|
105
|
+
app.use(devInspector({
|
|
106
|
+
// 라이선스 키 (없으면 DEV_INSPECTOR_KEY 환경변수 또는 ~/.dev-inspector/config.json)
|
|
107
|
+
licenseKey: 'DI-XXXX-XXXX-XXXX',
|
|
108
|
+
|
|
109
|
+
// API 라우트 접두사 (기본: '/api/v1/dev-inspector')
|
|
110
|
+
prefix: '/api/v1/dev-inspector',
|
|
111
|
+
|
|
112
|
+
// production에서도 활성화 (기본: false — production에서 자동 비활성)
|
|
113
|
+
enabled: false,
|
|
114
|
+
|
|
115
|
+
// HTML 응답에 클라이언트 스크립트 자동 주입 (기본: false)
|
|
116
|
+
autoInject: true,
|
|
117
|
+
}));
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### autoInject 없이 수동으로 스크립트 추가
|
|
121
|
+
|
|
122
|
+
```html
|
|
123
|
+
<script src="/api/v1/dev-inspector/client.js" defer></script>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## CLI 명령어
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
npx dev-inspector setup # Claude Code MCP 서버 등록
|
|
132
|
+
npx dev-inspector setup --global # 전역 등록 (모든 프로젝트)
|
|
133
|
+
npx dev-inspector activate <key> # Pro 라이선스 활성화
|
|
134
|
+
npx dev-inspector status # 라이선스 상태 확인
|
|
135
|
+
npx dev-inspector mcp # MCP 서버 직접 실행 (디버그)
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## API 엔드포인트
|
|
141
|
+
|
|
142
|
+
미들웨어가 자동으로 마운트하는 엔드포인트:
|
|
143
|
+
|
|
144
|
+
| Method | Path | 설명 |
|
|
145
|
+
|--------|------|------|
|
|
146
|
+
| GET | `{prefix}/stream` | SSE 스트림 (브라우저 연결) |
|
|
147
|
+
| POST | `{prefix}/call` | 도구 호출 (MCP → 브라우저) |
|
|
148
|
+
| POST | `{prefix}/result` | 도구 결과 (브라우저 → MCP) |
|
|
149
|
+
| GET | `{prefix}/tools` | 사용 가능한 도구 목록 |
|
|
150
|
+
| GET | `{prefix}/license-status` | 라이선스 상태 |
|
|
151
|
+
| GET | `{prefix}/status` | 연결 상태 |
|
|
152
|
+
| GET | `{prefix}/client.js` | 클라이언트 번들 |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 스크린샷 기능
|
|
157
|
+
|
|
158
|
+
스크린샷 도구(`capture_page`, `capture_labeled`)를 사용하려면 html2canvas가 필요합니다:
|
|
159
|
+
|
|
160
|
+
```html
|
|
161
|
+
<script src="https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"></script>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## 아키텍처
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
┌─────────────┐ stdio ┌─────────────┐ HTTP ┌─────────────────┐
|
|
170
|
+
│ Claude Code │ ──────────────→ │ MCP Server │ ────────────→ │ Express 미들웨어 │
|
|
171
|
+
│ │ ←────────────── │ (server.js) │ ←──────────── │ (SSE + REST) │
|
|
172
|
+
└─────────────┘ JSON-RPC └─────────────┘ POST/GET └────────┬────────┘
|
|
173
|
+
│ SSE
|
|
174
|
+
↓
|
|
175
|
+
┌───────────────┐
|
|
176
|
+
│ Client JS │
|
|
177
|
+
│ (브라우저 내) │
|
|
178
|
+
│ → DOM 접근 │
|
|
179
|
+
└───────────────┘
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## 요구 사항
|
|
185
|
+
|
|
186
|
+
- Node.js >= 16
|
|
187
|
+
- Express >= 4.0
|
|
188
|
+
- Claude Code (MCP 연동 시)
|
|
189
|
+
|
|
190
|
+
## License
|
|
191
|
+
|
|
192
|
+
MIT
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bcdflow/dev-inspector",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "DOM inspector + MCP bridge for AI coding assistants. Express middleware that enables Claude Code to inspect, annotate, and audit web pages in real-time.",
|
|
5
5
|
"main": "dist/middleware/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -17,7 +17,15 @@
|
|
|
17
17
|
"clean": "rm -rf dist",
|
|
18
18
|
"prepublishOnly": "npm run build"
|
|
19
19
|
},
|
|
20
|
-
"keywords": [
|
|
20
|
+
"keywords": [
|
|
21
|
+
"mcp",
|
|
22
|
+
"dom-inspector",
|
|
23
|
+
"claude",
|
|
24
|
+
"ai",
|
|
25
|
+
"express-middleware",
|
|
26
|
+
"accessibility",
|
|
27
|
+
"devtools"
|
|
28
|
+
],
|
|
21
29
|
"license": "MIT",
|
|
22
30
|
"peerDependencies": {
|
|
23
31
|
"express": ">=4.0.0"
|
|
@@ -28,6 +36,7 @@
|
|
|
28
36
|
}
|
|
29
37
|
},
|
|
30
38
|
"devDependencies": {
|
|
39
|
+
"@bcdflow/dev-inspector": "^2.0.0",
|
|
31
40
|
"esbuild": "^0.24.0",
|
|
32
41
|
"typescript": "^5.7.0"
|
|
33
42
|
},
|