@clazic/kordoc 2.1.2 → 2.1.4

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
@@ -106,9 +106,6 @@ HWP, HWPX, PDF, XLSX, DOCX — 관공서에서 쏟아지는 모든 문서를 파
106
106
 
107
107
  ```bash
108
108
  npm install @clazic/kordoc
109
-
110
- # PDF 파싱이 필요하면 (선택)
111
- npm install pdfjs-dist
112
109
  ```
113
110
 
114
111
  ## 빠른 시작
@@ -195,28 +192,55 @@ kordoc watch ./수신함 -d ./변환결과 # 폴더 감시 모드
195
192
  kordoc watch ./문서 --webhook https://api/hook # 웹훅 알림
196
193
  ```
197
194
 
198
- ## MCP 서버 (Claude / Cursor / Windsurf)
195
+ ## MCP 서버
196
+
197
+ AI 도구에서 직접 문서를 파싱할 수 있습니다. **로컬 MCP**와 **원격 MCP** 두 가지 방식을 지원합니다.
198
+
199
+ | | 로컬 MCP | 원격 MCP |
200
+ |---|---|---|
201
+ | 지원 포맷 | HWP, HWPX, PDF, XLSX, DOCX | HWPX, PDF, XLSX, DOCX |
202
+ | 설치 | `npm install -g @clazic/kordoc` 필요 | 설치 불필요 |
203
+ | 파일 전달 | 파일 경로 직접 | base64 인코딩 |
204
+
205
+ ---
206
+
207
+ ### 로컬 MCP (전 포맷 지원, 권장)
208
+
209
+ **1. 전역 설치**
210
+
211
+ ```bash
212
+ npm install -g @clazic/kordoc
213
+ ```
214
+
215
+ **2. AI 도구별 설정**
216
+
217
+ #### Claude Code
199
218
 
200
- ### 원격 MCP (설치 불필요 — 파일을 base64로 전송)
219
+ `~/.claude.json` 추가:
201
220
 
202
221
  ```json
203
222
  {
204
223
  "mcpServers": {
205
224
  "kordoc": {
206
- "serverUrl": "https://kordoc-mcp.clazic.workers.dev"
225
+ "type": "stdio",
226
+ "command": "kordoc-mcp",
227
+ "args": [],
228
+ "env": {}
207
229
  }
208
230
  }
209
231
  }
210
232
  ```
211
233
 
212
- > HWPX, XLSX, DOCX, PDF 지원. HWP 5.x는 로컬 MCP 사용.
213
-
214
- ### 로컬 MCP (HWP 5.x 포함 전 포맷, 파일 경로 직접 접근)
234
+ 또는 터미널에서:
215
235
 
216
236
  ```bash
217
- npm install -g @clazic/kordoc
237
+ claude mcp add kordoc -- kordoc-mcp
218
238
  ```
219
239
 
240
+ #### Gemini CLI
241
+
242
+ `~/.gemini/settings.json` 에 추가:
243
+
220
244
  ```json
221
245
  {
222
246
  "mcpServers": {
@@ -227,6 +251,51 @@ npm install -g @clazic/kordoc
227
251
  }
228
252
  ```
229
253
 
254
+ #### Cursor / Windsurf / VS Code
255
+
256
+ 프로젝트 루트 `.mcp.json` 또는 설정 파일에 추가:
257
+
258
+ ```json
259
+ {
260
+ "mcpServers": {
261
+ "kordoc": {
262
+ "command": "kordoc-mcp"
263
+ }
264
+ }
265
+ }
266
+ ```
267
+
268
+ #### Windows
269
+
270
+ Windows에서는 `cmd`를 통해 실행해야 합니다:
271
+
272
+ ```json
273
+ {
274
+ "mcpServers": {
275
+ "kordoc": {
276
+ "command": "cmd",
277
+ "args": ["/c", "kordoc-mcp"]
278
+ }
279
+ }
280
+ }
281
+ ```
282
+
283
+ ---
284
+
285
+ ### 원격 MCP (설치 없이 바로 사용)
286
+
287
+ HWP 5.x를 제외한 모든 포맷 지원. 설치 없이 바로 연결 가능합니다.
288
+
289
+ ```json
290
+ {
291
+ "mcpServers": {
292
+ "kordoc": {
293
+ "serverUrl": "https://kordoc-mcp.clazic.workers.dev"
294
+ }
295
+ }
296
+ }
297
+ ```
298
+
230
299
  **7개 도구:**
231
300
 
232
301
  | 도구 | 설명 |
@@ -6,7 +6,7 @@ import {
6
6
  precheckZipSize,
7
7
  sanitizeHref,
8
8
  toArrayBuffer
9
- } from "./chunk-PKIJLEV6.js";
9
+ } from "./chunk-NNYD6QUN.js";
10
10
  import {
11
11
  parsePageRange
12
12
  } from "./chunk-MOL7MDBG.js";
@@ -309,7 +309,7 @@ var HEADING_RATIO_H2 = 1.3;
309
309
  var HEADING_RATIO_H3 = 1.15;
310
310
 
311
311
  // src/hwpx/parser.ts
312
- var MAX_DECOMPRESS_SIZE = 100 * 1024 * 1024;
312
+ var MAX_DECOMPRESS_SIZE = 500 * 1024 * 1024;
313
313
  var MAX_ZIP_ENTRIES = 500;
314
314
  function clampSpan(val, max) {
315
315
  return Math.max(1, Math.min(val, max));
@@ -1135,7 +1135,7 @@ function readRecords(data) {
1135
1135
  }
1136
1136
  return records;
1137
1137
  }
1138
- var MAX_DECOMPRESS_SIZE2 = 100 * 1024 * 1024;
1138
+ var MAX_DECOMPRESS_SIZE2 = 500 * 1024 * 1024;
1139
1139
  function decompressStream(data) {
1140
1140
  const opts = { maxOutputLength: MAX_DECOMPRESS_SIZE2 };
1141
1141
  if (data.length >= 2 && data[0] === 120) {
@@ -1969,7 +1969,7 @@ var END_OF_CHAIN = 4294967294;
1969
1969
  var FREE_SECT = 4294967295;
1970
1970
  var MAX_CHAIN_LENGTH = 1e6;
1971
1971
  var MAX_DIR_ENTRIES = 1e5;
1972
- var MAX_STREAM_SIZE = 100 * 1024 * 1024;
1972
+ var MAX_STREAM_SIZE = 500 * 1024 * 1024;
1973
1973
  function parseLenientCfb(data) {
1974
1974
  if (data.length < 512) throw new Error("CFB \uD30C\uC77C\uC774 \uB108\uBB34 \uC9E7\uC2B5\uB2C8\uB2E4 (\uCD5C\uC18C 512\uBC14\uC774\uD2B8)");
1975
1975
  if (!data.subarray(0, 8).equals(CFB_MAGIC)) throw new Error("CFB \uB9E4\uC9C1 \uBC14\uC774\uD2B8 \uBD88\uC77C\uCE58");
@@ -2147,7 +2147,7 @@ import { createRequire } from "module";
2147
2147
  var require2 = createRequire(import.meta.url);
2148
2148
  var CFB = require2("cfb");
2149
2149
  var MAX_SECTIONS = 100;
2150
- var MAX_TOTAL_DECOMPRESS = 100 * 1024 * 1024;
2150
+ var MAX_TOTAL_DECOMPRESS = 500 * 1024 * 1024;
2151
2151
  function parseHwp5Document(buffer, options) {
2152
2152
  let cfb = null;
2153
2153
  let lenientCfb = null;
@@ -3410,7 +3410,7 @@ g.pdfjsWorker = pdfjsWorker;
3410
3410
  import { getDocument, GlobalWorkerOptions } from "pdfjs-dist/legacy/build/pdf.mjs";
3411
3411
  GlobalWorkerOptions.workerSrc = "";
3412
3412
  var MAX_PAGES = 5e3;
3413
- var MAX_TOTAL_TEXT = 100 * 1024 * 1024;
3413
+ var MAX_TOTAL_TEXT = 500 * 1024 * 1024;
3414
3414
  var PDF_LOAD_TIMEOUT_MS = 3e4;
3415
3415
  async function loadPdfWithTimeout(buffer) {
3416
3416
  const loadingTask = getDocument({
@@ -4375,7 +4375,7 @@ import { readFile } from "fs/promises";
4375
4375
  import JSZip3 from "jszip";
4376
4376
  import { DOMParser as DOMParser2 } from "@xmldom/xmldom";
4377
4377
  var MAX_SHEETS = 100;
4378
- var MAX_DECOMPRESS_SIZE3 = 100 * 1024 * 1024;
4378
+ var MAX_DECOMPRESS_SIZE3 = 500 * 1024 * 1024;
4379
4379
  var MAX_ROWS2 = 1e4;
4380
4380
  var MAX_COLS2 = 200;
4381
4381
  function cleanNumericValue(raw) {
@@ -4655,7 +4655,7 @@ async function parseXlsxDocument(buffer, options) {
4655
4655
  // src/docx/parser.ts
4656
4656
  import JSZip4 from "jszip";
4657
4657
  import { DOMParser as DOMParser3 } from "@xmldom/xmldom";
4658
- var MAX_DECOMPRESS_SIZE4 = 100 * 1024 * 1024;
4658
+ var MAX_DECOMPRESS_SIZE4 = 500 * 1024 * 1024;
4659
4659
  function getChildElements(parent, localName) {
4660
4660
  const result = [];
4661
4661
  const children = parent.childNodes;
@@ -5491,4 +5491,4 @@ export {
5491
5491
  extractFormFields,
5492
5492
  parse
5493
5493
  };
5494
- //# sourceMappingURL=chunk-R6J5ZSDL.js.map
5494
+ //# sourceMappingURL=chunk-N2UPMKGJ.js.map