@bimatrix-aud-platform/aud_mcp_server 1.1.76 → 1.1.78
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 +246 -29
- package/dist/index.js +1 -1
- package/dist/resources/encrypted-commands.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
i-AUD 플랫폼용 MCP(Model Context Protocol) Server입니다.
|
|
4
4
|
|
|
5
|
-
MTSD
|
|
6
|
-
Claude AI가 i-AUD 보고서를 정확하게 개발할 수 있도록
|
|
5
|
+
MTSD/design.json 검증·생성·보정, DB 쿼리 실행, 보고서 저장/동기화, MX-GRID 검증, BoxStyle 관리, WorkFlow 모듈 조회 등
|
|
6
|
+
Claude AI가 i-AUD 보고서를 정확하게 개발할 수 있도록 **26개의 도구**를 제공합니다.
|
|
7
7
|
|
|
8
8
|
## 설치 및 등록
|
|
9
9
|
|
|
@@ -68,29 +68,39 @@ MCP 설정:
|
|
|
68
68
|
}
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
-
## 제공 도구 (
|
|
71
|
+
## 제공 도구 (26개)
|
|
72
72
|
|
|
73
73
|
### MTSD 검증 도구
|
|
74
74
|
|
|
75
75
|
#### validate_mtsd
|
|
76
|
-
MTSD 문서 전체를 스키마 검증합니다.
|
|
76
|
+
MTSD 또는 `.design.json` 문서 전체를 스키마 검증합니다. `format='design'`이면 간소화된 스키마(기본값 생략 허용)로 검증합니다.
|
|
77
77
|
|
|
78
78
|
```
|
|
79
|
-
입력: { document: <JSON 문자열 또는
|
|
79
|
+
입력: { document: <JSON 문자열 또는 객체>, format?: "mtsd" | "design" }
|
|
80
80
|
출력: { valid: boolean, errors?: [...] }
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
#### validate_part
|
|
84
|
-
MTSD 문서의 특정 부분만 검증합니다. 점진적 문서 생성 시 유용합니다.
|
|
84
|
+
MTSD 또는 `.design.json` 문서의 특정 부분만 검증합니다. 점진적 문서 생성 시 유용합니다.
|
|
85
85
|
|
|
86
86
|
```
|
|
87
|
-
입력: { partName: "Form", data: <JSON
|
|
87
|
+
입력: { partName: "Form", data: <JSON>, format?: "mtsd" | "design" }
|
|
88
88
|
출력: { valid: boolean, errors?: [...] }
|
|
89
89
|
|
|
90
|
-
partName
|
|
90
|
+
partName 목록 (Display):
|
|
91
|
+
LabelElement, ButtonElement, ImageElement
|
|
92
|
+
partName 목록 (Input):
|
|
93
|
+
TextBoxElement, MaskTextBoxElement, NumberBoxElement, RichTextBoxElement,
|
|
94
|
+
ComboBoxElement, MultiComboBoxElement, PickListElement,
|
|
95
|
+
CheckBoxElement, RadioButtonElement, ColorSelectorElement, SliderElement,
|
|
96
|
+
CalendarElement, FileUploadButtonElement
|
|
97
|
+
partName 목록 (Grid):
|
|
98
|
+
DataGridElement, TreeGridElement, OlapGridElement, iGridElement
|
|
99
|
+
partName 목록 (Chart/Container):
|
|
100
|
+
ChartElement, GroupElement, TabElement, TableLayoutElement,
|
|
101
|
+
UserComponentElement, WebContainerElement
|
|
102
|
+
partName 목록 (공통):
|
|
91
103
|
ReportInfo, DataSource, DataSources, Form, Element,
|
|
92
|
-
LabelElement, ButtonElement, DataGridElement, GroupElement,
|
|
93
|
-
ComboBoxElement, CheckBoxElement, TextBoxElement, NumberBoxElement,
|
|
94
104
|
Variable, Module, ExecutionPlan, ServerScript, MetaDataSources
|
|
95
105
|
```
|
|
96
106
|
|
|
@@ -103,17 +113,24 @@ partName 목록:
|
|
|
103
113
|
입력: { typeName: "Form" }
|
|
104
114
|
출력: { required: [...], optional: [...], properties: {...} }
|
|
105
115
|
|
|
106
|
-
typeName
|
|
116
|
+
typeName 목록 (공통):
|
|
107
117
|
ReportInfo, DataSource, DataSources, Form, Element,
|
|
108
|
-
Position, Style, Font, Border, Background
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
118
|
+
Position, Style, Font, Border, Background
|
|
119
|
+
typeName 목록 (Element 타입):
|
|
120
|
+
LabelElement, ButtonElement, ImageElement, TextBoxElement, MaskTextBoxElement,
|
|
121
|
+
NumberBoxElement, RichTextBoxElement, ComboBoxElement, MultiComboBoxElement,
|
|
122
|
+
PickListElement, CheckBoxElement, RadioButtonElement, ColorSelectorElement,
|
|
123
|
+
SliderElement, CalendarElement, FileUploadButtonElement,
|
|
124
|
+
DataGridElement, TreeGridElement, OlapGridElement, iGridElement, GridColumn,
|
|
125
|
+
ChartElement, GroupElement, TabElement, TableLayoutElement,
|
|
126
|
+
UserComponentElement, WebContainerElement
|
|
127
|
+
typeName 목록 (비 Element):
|
|
128
|
+
Variable, Module, ExecutionPlan, ServerScript,
|
|
112
129
|
MetaDataSources, MetaField, ConditionSet
|
|
113
130
|
```
|
|
114
131
|
|
|
115
132
|
#### get_element_types
|
|
116
|
-
사용 가능한 모든 Element
|
|
133
|
+
사용 가능한 모든 Element 타입의 목록과 설명을 반환합니다.
|
|
117
134
|
|
|
118
135
|
```
|
|
119
136
|
입력: {} (파라미터 없음)
|
|
@@ -143,7 +160,7 @@ MTSD 문서의 루트 구조(최상위 필수/선택 속성)를 반환합니다.
|
|
|
143
160
|
font: { size: 14, bold: true, color: "#333333", align: "center" },
|
|
144
161
|
background: "#FFFFFF",
|
|
145
162
|
border: "solid 1px #DDD",
|
|
146
|
-
|
|
163
|
+
compact: false // true이면 기본값과 동일한 속성 제거 (.design.json용)
|
|
147
164
|
}
|
|
148
165
|
출력: { success: true, element: <완전한 Element JSON>, warnings?: [...] }
|
|
149
166
|
```
|
|
@@ -158,7 +175,8 @@ MTSD 문서의 루트 구조(최상위 필수/선택 속성)를 반환합니다.
|
|
|
158
175
|
{ name: "CHK", type: "checkbox", width: 40, editable: true },
|
|
159
176
|
{ name: "STATUS", type: "combo", width: 100 },
|
|
160
177
|
{ name: "AMOUNT", align: "right", format: "#,##0" }
|
|
161
|
-
]
|
|
178
|
+
],
|
|
179
|
+
compact: false
|
|
162
180
|
}
|
|
163
181
|
출력: { success: true, columns: [...], count: 4 }
|
|
164
182
|
```
|
|
@@ -174,31 +192,70 @@ MTSD 문서의 루트 구조(최상위 필수/선택 속성)를 반환합니다.
|
|
|
174
192
|
columns: [{ name: "USER_ID" }, { name: "USER_NM" }],
|
|
175
193
|
dsType: 0, // 0:DataSource, 1:MetaData, 2:Template, 3:ServerDataSource
|
|
176
194
|
useMeta: false,
|
|
177
|
-
useCache: false
|
|
195
|
+
useCache: false,
|
|
196
|
+
compact: false
|
|
178
197
|
}
|
|
179
198
|
출력: { success: true, dataSource: <완전한 DataSource JSON> }
|
|
180
199
|
```
|
|
181
200
|
|
|
201
|
+
#### generate_olap_fields
|
|
202
|
+
OlapGrid의 `iOLAPView.Fields` 배열을 생성합니다. Dimension/Measure 분류, Area 자동 배치, SummaryType 설정이 완료된 OlapField 배열을 반환합니다.
|
|
203
|
+
|
|
204
|
+
```
|
|
205
|
+
입력: {
|
|
206
|
+
columns: [
|
|
207
|
+
{ name: "DEPT_NM", caption: "부서명", type: "string" },
|
|
208
|
+
{ name: "SALE_AMT", caption: "매출액", type: "number", summaryType: "sum" }
|
|
209
|
+
],
|
|
210
|
+
autoPlace: true, // Area 자동 배치 (기본: true)
|
|
211
|
+
includeOptions: false, // iOLAPView 전체 구조 포함 여부
|
|
212
|
+
compact: false
|
|
213
|
+
}
|
|
214
|
+
출력: { success: true, fields: [...] }
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
#### generate_uuid
|
|
218
|
+
i-AUD 보고서용 UUID를 생성합니다. `prefix + 32자리 HEX` 형식입니다.
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
입력 (단일):
|
|
222
|
+
{ prefix: "Label", count: 3 }
|
|
223
|
+
입력 (다중 prefix):
|
|
224
|
+
{ items: [{ prefix: "Label", count: 2 }, { prefix: "DS", count: 1 }] }
|
|
225
|
+
출력: { ids: [...] }
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
#### build_mtsd
|
|
229
|
+
MtsdBuilder Fluent API를 사용하는 JavaScript 스크립트를 실행하여 MTSD 문서를 생성합니다.
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
입력: {
|
|
233
|
+
script: "const doc = new MtsdBuilder('보고서명'); doc.addLabel(...); return doc.build();"
|
|
234
|
+
}
|
|
235
|
+
출력: <완전한 MTSD JSON>
|
|
236
|
+
```
|
|
237
|
+
|
|
182
238
|
### MTSD 보정 도구
|
|
183
239
|
|
|
184
240
|
#### fix_mtsd
|
|
185
|
-
MTSD
|
|
241
|
+
MTSD 문서 파일(`.design.json`, `.mtsd`, `.sc`)을 읽어 자동 보정 규칙을 적용하고 파일을 덮어씁니다.
|
|
186
242
|
|
|
187
243
|
```
|
|
188
|
-
입력: { path: "C:/reports/sample/sample.
|
|
244
|
+
입력: { path: "C:/reports/sample/sample.design.json" }
|
|
189
245
|
출력: { success: true, fixCount: 5, fixes: [...] }
|
|
190
246
|
|
|
191
247
|
보정 항목:
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
-
|
|
195
|
-
|
|
248
|
+
[Rule1] DataSource Name→Id 참조 보정
|
|
249
|
+
[Rule2] OlapGrid DataSource 기반 Fields 자동 생성
|
|
250
|
+
[Rule2-2] OlapGrid Fields 내 CreateType=1 중복 보정 (#MEASURES_HEADER#만 허용)
|
|
251
|
+
[Rule3] Enum/Range 값 범위 초과 보정 (Border.LineType, Font 정렬, Color RGBA clamp, GridColumn/OlapField 속성 등)
|
|
252
|
+
Params ParamType 누락 보정
|
|
196
253
|
```
|
|
197
254
|
|
|
198
|
-
###
|
|
255
|
+
### 검증 도구
|
|
199
256
|
|
|
200
257
|
#### validate_module
|
|
201
|
-
모듈 JSON(
|
|
258
|
+
모듈 JSON(`.module.json`) 파일을 검증합니다. 스키마 준수 여부 및 비즈니스 로직 경고를 포함합니다.
|
|
202
259
|
|
|
203
260
|
```
|
|
204
261
|
입력 (둘 중 하나):
|
|
@@ -207,10 +264,21 @@ MTSD 파일을 읽어 자동 보정 규칙을 적용하고 파일을 덮어씁
|
|
|
207
264
|
출력: { valid: boolean, warnings?: [...], errors?: [...] }
|
|
208
265
|
```
|
|
209
266
|
|
|
267
|
+
#### validate_mxgrid
|
|
268
|
+
MX-GRID 템플릿(`.json2`) 및 데이터셋(`.ds`) 파일을 검증합니다. 스타일/시트 참조 불일치 등 비즈니스 로직 경고도 포함합니다.
|
|
269
|
+
|
|
270
|
+
```
|
|
271
|
+
입력 (파일 경로):
|
|
272
|
+
{ path: "C:/reports/sample/template.json2" }
|
|
273
|
+
입력 (JSON 직접):
|
|
274
|
+
{ document: <JSON>, type: "json2" | "ds" }
|
|
275
|
+
출력: { valid: boolean, warnings?: [...], errors?: [...] }
|
|
276
|
+
```
|
|
277
|
+
|
|
210
278
|
### 컨트롤 정보 도구
|
|
211
279
|
|
|
212
280
|
#### get_control_info
|
|
213
|
-
MTSD 파일에서 컨트롤의 Name과 Type 매핑 정보를 추출합니다. TypeScript 스크립트 작성 시
|
|
281
|
+
MTSD 파일에서 컨트롤의 Name과 Type 매핑 정보를 추출합니다. TypeScript 스크립트 작성 시 타입 확인 또는 import 문 생성에 사용합니다.
|
|
214
282
|
|
|
215
283
|
```
|
|
216
284
|
입력: { path: "C:/reports/sample/sample.mtsd", name: "GRD001" }
|
|
@@ -218,6 +286,130 @@ MTSD 파일에서 컨트롤의 Name과 Type 매핑 정보를 추출합니다. Ty
|
|
|
218
286
|
출력: { controls: [{ name: "GRD001", type: "DataGrid" }, ...] }
|
|
219
287
|
```
|
|
220
288
|
|
|
289
|
+
### i-AUD 서버 연동 도구
|
|
290
|
+
|
|
291
|
+
#### get_dbms_list
|
|
292
|
+
현재 사용자에게 권한이 있는 데이터베이스 연결(DBMS) 목록을 조회합니다.
|
|
293
|
+
|
|
294
|
+
```
|
|
295
|
+
입력: {} (파라미터 없음)
|
|
296
|
+
출력: { connections: [{ connectionCode, name, dbType }, ...] }
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
#### execute_query
|
|
300
|
+
i-AUD 서버를 통해 SQL 쿼리를 실행하고 결과를 반환합니다.
|
|
301
|
+
|
|
302
|
+
```
|
|
303
|
+
입력: {
|
|
304
|
+
connectionCode: "AUD_SAMPLE_DB",
|
|
305
|
+
sql: "SELECT * FROM USERS WHERE USER_ID = :VS_USER_ID",
|
|
306
|
+
limitRows: 100, // 기본: 100, 최대: 1000
|
|
307
|
+
params: { "VS_USER_ID": "U001" }
|
|
308
|
+
}
|
|
309
|
+
출력: { rows: [...], columns: [...] }
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
#### get_table_list
|
|
313
|
+
i-AUD 메타 데이터에서 테이블/뷰 목록을 조회합니다.
|
|
314
|
+
|
|
315
|
+
```
|
|
316
|
+
입력: {
|
|
317
|
+
connectionCode: "AUD_SAMPLE_DB",
|
|
318
|
+
filter: "USER", // 검색어 (선택)
|
|
319
|
+
limitRows: 500
|
|
320
|
+
}
|
|
321
|
+
출력: { tables: [{ TABLE_ID, SCHEMA_NM, TABLE_NM, TABLE_DESC }, ...] }
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
#### get_table_columns
|
|
325
|
+
특정 테이블의 컬럼 목록을 조회합니다.
|
|
326
|
+
|
|
327
|
+
```
|
|
328
|
+
입력: {
|
|
329
|
+
connectionCode: "AUD_SAMPLE_DB",
|
|
330
|
+
tableId: "TABLE_ID값" // get_table_list 결과의 TABLE_ID
|
|
331
|
+
}
|
|
332
|
+
출력: { columns: [{ COLUMN_NM, DATA_TYPE, DATA_LEN, IS_PK, NULLABLE, COLUMN_DESC }, ...] }
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
#### get_boxstyle_list
|
|
336
|
+
i-AUD 서버에서 BoxStyle 목록을 조회합니다.
|
|
337
|
+
|
|
338
|
+
```
|
|
339
|
+
입력: {} (파라미터 없음)
|
|
340
|
+
출력: { boxStyles: [{ Name, StyleName, Background, Border, Font }, ...] }
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
#### save_boxstyle
|
|
344
|
+
i-AUD 서버에 BoxStyle을 저장(생성/수정)합니다. 단일 객체 또는 배열로 여러 개를 한 번에 저장할 수 있습니다.
|
|
345
|
+
|
|
346
|
+
```
|
|
347
|
+
입력: {
|
|
348
|
+
boxStyle: {
|
|
349
|
+
Name: "BTN_DEFAULT",
|
|
350
|
+
StyleName: "기본 버튼 스타일",
|
|
351
|
+
Background: { ColorR: 66, ColorG: 133, ColorB: 244, ColorA: 1 },
|
|
352
|
+
Border: { LineType: "solid", Thickness: "1,1,1,1", CornerRadius: "4,4,4,4" },
|
|
353
|
+
Font: { Bold: true, Size: 13, HorizontalAlignment: "center" }
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
출력: { success: true }
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
#### save_report
|
|
360
|
+
보고서를 i-AUD 서버에 저장(Publish)합니다. MTSD, DataSource, ServerScript, JScript를 수집하여 서버에 전송하고 `.mtsd` 및 `.design.json` 파일을 갱신합니다.
|
|
361
|
+
|
|
362
|
+
```
|
|
363
|
+
입력: {
|
|
364
|
+
reportPath: "C:/reports/sample", // .design.json 또는 .mtsd가 있는 폴더
|
|
365
|
+
build: false // TypeScript 빌드(tsc) 실행 여부
|
|
366
|
+
}
|
|
367
|
+
출력: { success: true, ... }
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
#### pull_report
|
|
371
|
+
i-AUD 서버에서 보고서의 최신 내용을 로컬 폴더에 동기화합니다. `.mtsd` 및 `.design.json`을 생성/갱신합니다.
|
|
372
|
+
|
|
373
|
+
```
|
|
374
|
+
입력: {
|
|
375
|
+
reportPath: "C:/reports/sample"
|
|
376
|
+
}
|
|
377
|
+
출력: { success: true, ... }
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
#### run_designer
|
|
381
|
+
i-AUD Designer를 브라우저에서 실행합니다.
|
|
382
|
+
|
|
383
|
+
```
|
|
384
|
+
입력: {
|
|
385
|
+
reportPath: "C:/reports/sample"
|
|
386
|
+
}
|
|
387
|
+
출력: { success: true, url: "..." }
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
### WorkFlow 모듈 도구
|
|
391
|
+
|
|
392
|
+
#### get_module_list
|
|
393
|
+
i-AUD 서버에서 WorkFlow 모듈 목록을 조회합니다.
|
|
394
|
+
|
|
395
|
+
```
|
|
396
|
+
입력: {
|
|
397
|
+
filter: "검색어", // 선택. 모듈명/설명에서 검색
|
|
398
|
+
limitRows: 500
|
|
399
|
+
}
|
|
400
|
+
출력: { modules: [{ MODULE_CODE, MODULE_NM, ... }, ...] }
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
#### get_module_params
|
|
404
|
+
특정 모듈의 파라미터 목록을 조회합니다.
|
|
405
|
+
|
|
406
|
+
```
|
|
407
|
+
입력: {
|
|
408
|
+
moduleCode: "MODULE_CODE값" // get_module_list로 조회
|
|
409
|
+
}
|
|
410
|
+
출력: { params: [{ PARAM_NM, PARAM_TYPE, ... }, ...] }
|
|
411
|
+
```
|
|
412
|
+
|
|
221
413
|
## 프로젝트 구조
|
|
222
414
|
|
|
223
415
|
```
|
|
@@ -228,16 +420,25 @@ aud_mcp_server/
|
|
|
228
420
|
│ │ ├── element.ts # generate_element 구현
|
|
229
421
|
│ │ ├── grid-column.ts # generate_grid_column 구현
|
|
230
422
|
│ │ ├── datasource.ts # generate_datasource 구현
|
|
423
|
+
│ │ ├── olap-field.ts # generate_olap_fields 구현
|
|
424
|
+
│ │ ├── compact.ts # compact 출력 변환
|
|
425
|
+
│ │ ├── mtsd-builder.ts # build_mtsd 구현
|
|
231
426
|
│ │ ├── fixer.ts # fix_mtsd 구현
|
|
232
427
|
│ │ ├── control-info.ts # get_control_info 구현
|
|
233
428
|
│ │ └── defaults.ts # Element 기본값 정의
|
|
234
429
|
│ └── utils/
|
|
430
|
+
│ ├── aud-api-client.ts # i-AUD 서버 API 클라이언트
|
|
431
|
+
│ ├── report-publisher.ts # save_report / pull_report 구현
|
|
432
|
+
│ ├── mtsd-file-ref.ts # .design.json 파일 경로 참조 처리
|
|
235
433
|
│ ├── color.ts # 색상 변환 유틸
|
|
236
434
|
│ ├── docking.ts # 도킹 단축 표기 변환
|
|
237
435
|
│ └── uuid.ts # UUID 생성
|
|
238
436
|
├── schemas/
|
|
239
437
|
│ ├── mtsd.schema.json # MTSD JSON Schema (AJV 검증용)
|
|
240
|
-
│
|
|
438
|
+
│ ├── design.schema.json # .design.json JSON Schema (간소화 형식)
|
|
439
|
+
│ ├── module.schema.json # 모듈 JSON Schema
|
|
440
|
+
│ ├── json2.schema.json # MX-GRID 템플릿 Schema
|
|
441
|
+
│ └── ds.schema.json # MX-GRID 데이터셋 Schema
|
|
241
442
|
├── dist/ # 빌드 결과물
|
|
242
443
|
├── package.json
|
|
243
444
|
├── tsconfig.json
|
|
@@ -254,6 +455,22 @@ aud_mcp_server/
|
|
|
254
455
|
4. `validate_part`로 부분별 즉시 검증
|
|
255
456
|
5. 전체 완성 후 `validate_mtsd`로 최종 검증
|
|
256
457
|
6. `fix_mtsd`로 자동 보정 적용
|
|
458
|
+
7. `save_report`로 서버에 저장
|
|
459
|
+
|
|
460
|
+
### 보고서 서버 동기화 워크플로우
|
|
461
|
+
|
|
462
|
+
1. `pull_report`로 서버→로컬 최신 내용 동기화
|
|
463
|
+
2. 로컬에서 코드 수정
|
|
464
|
+
3. `save_report`(build: true)로 빌드 후 서버에 저장
|
|
465
|
+
4. `run_designer`로 브라우저에서 결과 확인
|
|
466
|
+
|
|
467
|
+
### DB 스키마 탐색 워크플로우
|
|
468
|
+
|
|
469
|
+
1. `get_dbms_list`로 연결 코드 확인
|
|
470
|
+
2. `get_table_list`로 테이블 검색
|
|
471
|
+
3. `get_table_columns`로 컬럼 구조 확인
|
|
472
|
+
4. `execute_query`로 샘플 데이터 조회
|
|
473
|
+
5. `generate_datasource`로 DataSource JSON 생성
|
|
257
474
|
|
|
258
475
|
### 모듈 생성 워크플로우
|
|
259
476
|
|