@bimatrix-aud-platform/aud_mcp_server 1.1.75 → 1.1.77

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 CHANGED
@@ -1,275 +1,492 @@
1
- # @bimatrix-aud-platform/aud_mcp_server
2
-
3
- i-AUD 플랫폼용 MCP(Model Context Protocol) Server입니다.
4
-
5
- MTSD 문서 검증/생성, 모듈 JSON 검증, MTSD 자동 보정, 컨트롤 정보 추출
6
- Claude AI가 i-AUD 보고서를 정확하게 개발할 수 있도록 11개의 도구를 제공합니다.
7
-
8
- ## 설치 및 등록
9
-
10
- ### 방법 1: npx로 바로 사용 (권장)
11
-
12
- 별도 설치 없이 MCP 설정에 다음을 추가합니다.
13
-
14
- **Claude Code 프로젝트 설정** (`.mcp.json`):
15
-
16
- ```json
17
- {
18
- "mcpServers": {
19
- "aud_mcp_server": {
20
- "command": "npx",
21
- "args": ["-y", "@bimatrix-aud-platform/aud_mcp_server"]
22
- }
23
- }
24
- }
25
- ```
26
-
27
- **Claude Desktop 전역 설정** (`%APPDATA%\Claude\claude_desktop_config.json`):
28
-
29
- ```json
30
- {
31
- "mcpServers": {
32
- "aud_mcp_server": {
33
- "command": "npx",
34
- "args": ["-y", "@bimatrix-aud-platform/aud_mcp_server"]
35
- }
36
- }
37
- }
38
- ```
39
-
40
- ### 방법 2: 글로벌 설치 후 사용
41
-
42
- ```bash
43
- npm install -g @bimatrix-aud-platform/aud_mcp_server
44
- ```
45
-
46
- MCP 설정:
47
-
48
- ```json
49
- {
50
- "mcpServers": {
51
- "aud_mcp_server": {
52
- "command": "aud_mcp_server"
53
- }
54
- }
55
- }
56
- ```
57
-
58
- ### 방법 3: 로컬 경로 직접 지정
59
-
60
- ```json
61
- {
62
- "mcpServers": {
63
- "aud_mcp_server": {
64
- "command": "node",
65
- "args": ["C:/source/aud_report_develop/aud_mcp_server/dist/index.js"]
66
- }
67
- }
68
- }
69
- ```
70
-
71
- ## 제공 도구 (11개)
72
-
73
- ### MTSD 검증 도구
74
-
75
- #### validate_mtsd
76
- MTSD 문서 전체를 스키마 검증합니다.
77
-
78
- ```
79
- 입력: { document: <JSON 문자열 또는 객체> }
80
- 출력: { valid: boolean, errors?: [...] }
81
- ```
82
-
83
- #### validate_part
84
- MTSD 문서의 특정 부분만 검증합니다. 점진적 문서 생성 시 유용합니다.
85
-
86
- ```
87
- 입력: { partName: "Form", data: <JSON> }
88
- 출력: { valid: boolean, errors?: [...] }
89
-
90
- partName 목록:
91
- ReportInfo, DataSource, DataSources, Form, Element,
92
- LabelElement, ButtonElement, DataGridElement, GroupElement,
93
- ComboBoxElement, CheckBoxElement, TextBoxElement, NumberBoxElement,
94
- Variable, Module, ExecutionPlan, ServerScript, MetaDataSources
95
- ```
96
-
97
- ### MTSD 스키마 조회 도구
98
-
99
- #### get_schema_info
100
- 특정 타입의 스키마 정보(필수/선택 속성, 속성별 설명)를 반환합니다.
101
-
102
- ```
103
- 입력: { typeName: "Form" }
104
- 출력: { required: [...], optional: [...], properties: {...} }
105
-
106
- typeName 목록:
107
- ReportInfo, DataSource, DataSources, Form, Element,
108
- Position, Style, Font, Border, Background,
109
- LabelElement, ButtonElement, DataGridElement, GroupElement,
110
- ComboBoxElement, CheckBoxElement, TextBoxElement, NumberBoxElement,
111
- GridColumn, Variable, Module, ExecutionPlan, ServerScript,
112
- MetaDataSources, MetaField, ConditionSet
113
- ```
114
-
115
- #### get_element_types
116
- 사용 가능한 모든 Element 타입(Label, Button, DataGrid 등 24종)의 목록과 설명을 반환합니다.
117
-
118
- ```
119
- 입력: {} (파라미터 없음)
120
- 출력: { elementTypes: [{ type, description }, ...] }
121
- ```
122
-
123
- #### get_root_structure
124
- MTSD 문서의 루트 구조(최상위 필수/선택 속성)를 반환합니다.
125
-
126
- ```
127
- 입력: {} (파라미터 없음)
128
- 출력: { required: [...], properties: {...} }
129
- ```
130
-
131
- ### MTSD 생성 도구
132
-
133
- #### generate_element
134
- 간소화된 입력으로 완전한 Element JSON을 생성합니다. 도킹, 폰트, 배경, 테두리 등의 단축 표기를 지원합니다.
135
-
136
- ```
137
- 입력: {
138
- type: "Label", // 필수. Element 타입
139
- id: "LBL001", // 선택. 생략 시 자동 생성
140
- text: "제목", // 선택. 표시 텍스트
141
- position: { left: 10, top: 10, width: 200, height: 30 },
142
- docking: "top", // 단축: left, right, top, bottom, fill, left+right 등
143
- font: { size: 14, bold: true, color: "#333333", align: "center" },
144
- background: "#FFFFFF",
145
- border: "solid 1px #DDD",
146
- visible: true
147
- }
148
- 출력: { success: true, element: <완전한 Element JSON>, warnings?: [...] }
149
- ```
150
-
151
- #### generate_grid_column
152
- 간소화된 입력으로 DataGrid의 GridColumn 배열을 생성합니다.
153
-
154
- ```
155
- 입력: {
156
- columns: [
157
- { name: "USER_ID", header: "사용자ID", width: 120 },
158
- { name: "CHK", type: "checkbox", width: 40, editable: true },
159
- { name: "STATUS", type: "combo", width: 100 },
160
- { name: "AMOUNT", align: "right", format: "#,##0" }
161
- ]
162
- }
163
- 출력: { success: true, columns: [...], count: 4 }
164
- ```
165
-
166
- #### generate_datasource
167
- 간소화된 입력으로 완전한 DataSource JSON을 생성합니다. SQL에서 파라미터를 자동 추출합니다.
168
-
169
- ```
170
- 입력: {
171
- name: "DS_USER", // 필수
172
- connection: "CONN_CODE", // 필수
173
- sql: "SELECT * FROM USERS WHERE USER_ID = @VS_USER_ID",
174
- columns: [{ name: "USER_ID" }, { name: "USER_NM" }],
175
- dsType: 0, // 0:DataSource, 1:MetaData, 2:Template, 3:ServerDataSource
176
- useMeta: false,
177
- useCache: false
178
- }
179
- 출력: { success: true, dataSource: <완전한 DataSource JSON> }
180
- ```
181
-
182
- ### MTSD 보정 도구
183
-
184
- #### fix_mtsd
185
- MTSD 파일을 읽어 자동 보정 규칙을 적용하고 파일을 덮어씁니다.
186
-
187
- ```
188
- 입력: { path: "C:/reports/sample/sample.mtsd" }
189
- 출력: { success: true, fixCount: 5, fixes: [...] }
190
-
191
- 보정 항목:
192
- - DataSource Name→Id 참조 보정
193
- - Params Value 누락 보정
194
- - Columns Type 누락 보정
195
- - Docking/Border 필수 속성 보정
196
- ```
197
-
198
- ### 모듈 검증 도구
199
-
200
- #### validate_module
201
- 모듈 JSON(.module.json) 파일을 스키마 검증합니다. 비즈니스 로직 경고(ATTR3="MTX", INP999 ATTR1 누락, PARAM_SEQ 불일치)도 포함합니다.
202
-
203
- ```
204
- 입력 (둘 중 하나):
205
- { path: "C:/reports/sample/모듈제목.module.json" }
206
- { document: <JSON 문자열 또는 객체> }
207
- 출력: { valid: boolean, warnings?: [...], errors?: [...] }
208
- ```
209
-
210
- ### 컨트롤 정보 도구
211
-
212
- #### get_control_info
213
- MTSD 파일에서 컨트롤의 Name과 Type 매핑 정보를 추출합니다. TypeScript 스크립트 작성 시 컨트롤 변수의 타입을 확인하거나 import 문을 생성할 때 사용합니다.
214
-
215
- ```
216
- 입력: { path: "C:/reports/sample/sample.mtsd", name: "GRD001" }
217
- - name 생략 시 전체 컨트롤 목록 반환
218
- 출력: { controls: [{ name: "GRD001", type: "DataGrid" }, ...] }
219
- ```
220
-
221
- ## 프로젝트 구조
222
-
223
- ```
224
- aud_mcp_server/
225
- ├── src/
226
- │ ├── index.ts # MCP 서버 메인 (도구 정의 + 핸들러)
227
- │ ├── generators/
228
- │ │ ├── element.ts # generate_element 구현
229
- │ │ ├── grid-column.ts # generate_grid_column 구현
230
- │ │ ├── datasource.ts # generate_datasource 구현
231
- │ │ ├── fixer.ts # fix_mtsd 구현
232
- │ │ ├── control-info.ts # get_control_info 구현
233
- │ │ └── defaults.ts # Element 기본값 정의
234
- │ └── utils/
235
- │ ├── color.ts # 색상 변환 유틸
236
- │ ├── docking.ts # 도킹 단축 표기 변환
237
- │ └── uuid.ts # UUID 생성
238
- ├── schemas/
239
- │ ├── mtsd.schema.json # MTSD JSON Schema (AJV 검증용)
240
- │ └── module.schema.json # 모듈 JSON Schema (AJV 검증용)
241
- ├── dist/ # 빌드 결과물
242
- ├── package.json
243
- ├── tsconfig.json
244
- └── README.md
245
- ```
246
-
247
- ## 사용 예시
248
-
249
- ### MTSD 문서 생성 워크플로우
250
-
251
- 1. `get_root_structure`로 전체 구조 파악
252
- 2. `get_schema_info`로 섹션의 필수/선택 속성 확인
253
- 3. `generate_element`, `generate_grid_column`, `generate_datasource`로 각 파트 생성
254
- 4. `validate_part`로 부분별 즉시 검증
255
- 5. 전체 완성 후 `validate_mtsd`로 최종 검증
256
- 6. `fix_mtsd`로 자동 보정 적용
257
-
258
- ### 모듈 생성 워크플로우
259
-
260
- 1. JavaScript 스크립트 작성
261
- 2. `.module.json` 파일 구성 (TYPE, MTX_MODULE_INFO, MTX_MODULE_PARAMS)
262
- 3. `validate_module`로 스키마 + 비즈니스 로직 검증
263
-
264
- ### TypeScript 전환 워크플로우
265
-
266
- 1. `get_control_info`로 MTSD에서 컨트롤 Name→Type 매핑 추출
267
- 2. 타입 정보를 기반으로 `Matrix.getObject()` 호출에 타입 어노테이션 추가
268
-
269
- ## 요구사항
270
-
271
- - Node.js >= 18.0.0
272
-
273
- ## 라이선스
274
-
275
- MIT
1
+ # @bimatrix-aud-platform/aud_mcp_server
2
+
3
+ i-AUD 플랫폼용 MCP(Model Context Protocol) Server입니다.
4
+
5
+ MTSD/design.json 검증·생성·보정, DB 쿼리 실행, 보고서 저장/동기화, MX-GRID 검증, BoxStyle 관리, WorkFlow 모듈 조회
6
+ Claude AI가 i-AUD 보고서를 정확하게 개발할 수 있도록 **26개의 도구**를 제공합니다.
7
+
8
+ ## 설치 및 등록
9
+
10
+ ### 방법 1: npx로 바로 사용 (권장)
11
+
12
+ 별도 설치 없이 MCP 설정에 다음을 추가합니다.
13
+
14
+ **Claude Code 프로젝트 설정** (`.mcp.json`):
15
+
16
+ ```json
17
+ {
18
+ "mcpServers": {
19
+ "aud_mcp_server": {
20
+ "command": "npx",
21
+ "args": ["-y", "@bimatrix-aud-platform/aud_mcp_server"]
22
+ }
23
+ }
24
+ }
25
+ ```
26
+
27
+ **Claude Desktop 전역 설정** (`%APPDATA%\Claude\claude_desktop_config.json`):
28
+
29
+ ```json
30
+ {
31
+ "mcpServers": {
32
+ "aud_mcp_server": {
33
+ "command": "npx",
34
+ "args": ["-y", "@bimatrix-aud-platform/aud_mcp_server"]
35
+ }
36
+ }
37
+ }
38
+ ```
39
+
40
+ ### 방법 2: 글로벌 설치 후 사용
41
+
42
+ ```bash
43
+ npm install -g @bimatrix-aud-platform/aud_mcp_server
44
+ ```
45
+
46
+ MCP 설정:
47
+
48
+ ```json
49
+ {
50
+ "mcpServers": {
51
+ "aud_mcp_server": {
52
+ "command": "aud_mcp_server"
53
+ }
54
+ }
55
+ }
56
+ ```
57
+
58
+ ### 방법 3: 로컬 경로 직접 지정
59
+
60
+ ```json
61
+ {
62
+ "mcpServers": {
63
+ "aud_mcp_server": {
64
+ "command": "node",
65
+ "args": ["C:/source/aud_report_develop/aud_mcp_server/dist/index.js"]
66
+ }
67
+ }
68
+ }
69
+ ```
70
+
71
+ ## 제공 도구 (26개)
72
+
73
+ ### MTSD 검증 도구
74
+
75
+ #### validate_mtsd
76
+ MTSD 또는 `.design.json` 문서 전체를 스키마 검증합니다. `format='design'`이면 간소화된 스키마(기본값 생략 허용)로 검증합니다.
77
+
78
+ ```
79
+ 입력: { document: <JSON 문자열 또는 객체>, format?: "mtsd" | "design" }
80
+ 출력: { valid: boolean, errors?: [...] }
81
+ ```
82
+
83
+ #### validate_part
84
+ MTSD 또는 `.design.json` 문서의 특정 부분만 검증합니다. 점진적 문서 생성 시 유용합니다.
85
+
86
+ ```
87
+ 입력: { partName: "Form", data: <JSON>, format?: "mtsd" | "design" }
88
+ 출력: { valid: boolean, errors?: [...] }
89
+
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 목록 (공통):
103
+ ReportInfo, DataSource, DataSources, Form, Element,
104
+ Variable, Module, ExecutionPlan, ServerScript, MetaDataSources
105
+ ```
106
+
107
+ ### MTSD 스키마 조회 도구
108
+
109
+ #### get_schema_info
110
+ 특정 타입의 스키마 정보(필수/선택 속성, 속성별 설명)를 반환합니다.
111
+
112
+ ```
113
+ 입력: { typeName: "Form" }
114
+ 출력: { required: [...], optional: [...], properties: {...} }
115
+
116
+ typeName 목록 (공통):
117
+ ReportInfo, DataSource, DataSources, Form, Element,
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,
129
+ MetaDataSources, MetaField, ConditionSet
130
+ ```
131
+
132
+ #### get_element_types
133
+ 사용 가능한 모든 Element 타입의 목록과 설명을 반환합니다.
134
+
135
+ ```
136
+ 입력: {} (파라미터 없음)
137
+ 출력: { elementTypes: [{ type, description }, ...] }
138
+ ```
139
+
140
+ #### get_root_structure
141
+ MTSD 문서의 루트 구조(최상위 필수/선택 속성)를 반환합니다.
142
+
143
+ ```
144
+ 입력: {} (파라미터 없음)
145
+ 출력: { required: [...], properties: {...} }
146
+ ```
147
+
148
+ ### MTSD 생성 도구
149
+
150
+ #### generate_element
151
+ 간소화된 입력으로 완전한 Element JSON을 생성합니다. 도킹, 폰트, 배경, 테두리 등의 단축 표기를 지원합니다.
152
+
153
+ ```
154
+ 입력: {
155
+ type: "Label", // 필수. Element 타입
156
+ id: "LBL001", // 선택. 생략 시 자동 생성
157
+ text: "제목", // 선택. 표시 텍스트
158
+ position: { left: 10, top: 10, width: 200, height: 30 },
159
+ docking: "top", // 단축: left, right, top, bottom, fill, left+right 등
160
+ font: { size: 14, bold: true, color: "#333333", align: "center" },
161
+ background: "#FFFFFF",
162
+ border: "solid 1px #DDD",
163
+ compact: false // true이면 기본값과 동일한 속성 제거 (.design.json용)
164
+ }
165
+ 출력: { success: true, element: <완전한 Element JSON>, warnings?: [...] }
166
+ ```
167
+
168
+ #### generate_grid_column
169
+ 간소화된 입력으로 DataGrid의 GridColumn 배열을 생성합니다.
170
+
171
+ ```
172
+ 입력: {
173
+ columns: [
174
+ { name: "USER_ID", header: "사용자ID", width: 120 },
175
+ { name: "CHK", type: "checkbox", width: 40, editable: true },
176
+ { name: "STATUS", type: "combo", width: 100 },
177
+ { name: "AMOUNT", align: "right", format: "#,##0" }
178
+ ],
179
+ compact: false
180
+ }
181
+ 출력: { success: true, columns: [...], count: 4 }
182
+ ```
183
+
184
+ #### generate_datasource
185
+ 간소화된 입력으로 완전한 DataSource JSON을 생성합니다. SQL에서 파라미터를 자동 추출합니다.
186
+
187
+ ```
188
+ 입력: {
189
+ name: "DS_USER", // 필수
190
+ connection: "CONN_CODE", // 필수
191
+ sql: "SELECT * FROM USERS WHERE USER_ID = @VS_USER_ID",
192
+ columns: [{ name: "USER_ID" }, { name: "USER_NM" }],
193
+ dsType: 0, // 0:DataSource, 1:MetaData, 2:Template, 3:ServerDataSource
194
+ useMeta: false,
195
+ useCache: false,
196
+ compact: false
197
+ }
198
+ 출력: { success: true, dataSource: <완전한 DataSource JSON> }
199
+ ```
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
+
238
+ ### MTSD 보정 도구
239
+
240
+ #### fix_mtsd
241
+ MTSD 문서 파일(`.design.json`, `.mtsd`, `.sc`)을 읽어 자동 보정 규칙을 적용하고 파일을 덮어씁니다.
242
+
243
+ ```
244
+ 입력: { path: "C:/reports/sample/sample.design.json" }
245
+ 출력: { success: true, fixCount: 5, fixes: [...] }
246
+
247
+ 보정 항목:
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 누락 보정
253
+ ```
254
+
255
+ ### 검증 도구
256
+
257
+ #### validate_module
258
+ 모듈 JSON(`.module.json`) 파일을 검증합니다. 스키마 준수 여부 및 비즈니스 로직 경고를 포함합니다.
259
+
260
+ ```
261
+ 입력 ( 하나):
262
+ { path: "C:/reports/sample/모듈제목.module.json" }
263
+ { document: <JSON 문자열 또는 객체> }
264
+ 출력: { valid: boolean, warnings?: [...], errors?: [...] }
265
+ ```
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
+
278
+ ### 컨트롤 정보 도구
279
+
280
+ #### get_control_info
281
+ MTSD 파일에서 컨트롤의 Name과 Type 매핑 정보를 추출합니다. TypeScript 스크립트 작성 시 타입 확인 또는 import 문 생성에 사용합니다.
282
+
283
+ ```
284
+ 입력: { path: "C:/reports/sample/sample.mtsd", name: "GRD001" }
285
+ - name 생략 시 전체 컨트롤 목록 반환
286
+ 출력: { controls: [{ name: "GRD001", type: "DataGrid" }, ...] }
287
+ ```
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
+
413
+ ## 프로젝트 구조
414
+
415
+ ```
416
+ aud_mcp_server/
417
+ ├── src/
418
+ │ ├── index.ts # MCP 서버 메인 (도구 정의 + 핸들러)
419
+ │ ├── generators/
420
+ │ │ ├── element.ts # generate_element 구현
421
+ │ │ ├── grid-column.ts # generate_grid_column 구현
422
+ │ │ ├── datasource.ts # generate_datasource 구현
423
+ │ │ ├── olap-field.ts # generate_olap_fields 구현
424
+ │ │ ├── compact.ts # compact 출력 변환
425
+ │ │ ├── mtsd-builder.ts # build_mtsd 구현
426
+ │ │ ├── fixer.ts # fix_mtsd 구현
427
+ │ │ ├── control-info.ts # get_control_info 구현
428
+ │ │ └── defaults.ts # Element 기본값 정의
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 파일 경로 참조 처리
433
+ │ ├── color.ts # 색상 변환 유틸
434
+ │ ├── docking.ts # 도킹 단축 표기 변환
435
+ │ └── uuid.ts # UUID 생성
436
+ ├── schemas/
437
+ │ ├── mtsd.schema.json # MTSD JSON Schema (AJV 검증용)
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
442
+ ├── dist/ # 빌드 결과물
443
+ ├── package.json
444
+ ├── tsconfig.json
445
+ └── README.md
446
+ ```
447
+
448
+ ## 사용 예시
449
+
450
+ ### MTSD 문서 생성 워크플로우
451
+
452
+ 1. `get_root_structure`로 전체 구조 파악
453
+ 2. `get_schema_info`로 각 섹션의 필수/선택 속성 확인
454
+ 3. `generate_element`, `generate_grid_column`, `generate_datasource`로 각 파트 생성
455
+ 4. `validate_part`로 부분별 즉시 검증
456
+ 5. 전체 완성 후 `validate_mtsd`로 최종 검증
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 생성
474
+
475
+ ### 모듈 생성 워크플로우
476
+
477
+ 1. JavaScript 스크립트 작성
478
+ 2. `.module.json` 파일 구성 (TYPE, MTX_MODULE_INFO, MTX_MODULE_PARAMS)
479
+ 3. `validate_module`로 스키마 + 비즈니스 로직 검증
480
+
481
+ ### TypeScript 전환 워크플로우
482
+
483
+ 1. `get_control_info`로 MTSD에서 컨트롤 Name→Type 매핑 추출
484
+ 2. 타입 정보를 기반으로 `Matrix.getObject()` 호출에 타입 어노테이션 추가
485
+
486
+ ## 요구사항
487
+
488
+ - Node.js >= 18.0.0
489
+
490
+ ## 라이선스
491
+
492
+ MIT