# kordoc (npm · kordoc)

Parse Korean documents (HWP, HWPX, PDF, XLSX, DOCX, PPTX) to Markdown; fill forms, diff, render.

- Trust score: 55/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-18

## Components

- npm · `kordoc`: 55/100 (this document), [markdown](https://verifymcp.io/servers/chrisryugj-kordoc/kordoc.md), [page](https://verifymcp.io/servers/chrisryugj-kordoc/kordoc)

## Channel facts

- Registry: `npm`
- Package: `kordoc`
- Version: `4.22.13`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-18.

- **Supply Chain Security**: 63/100
  - No malware found by supply-chain analysis.
  - Known CVEs could not be checked: the version this server declares is not published in its registry.
  - No install/post-install scripts declared.
  - Dependency health could not be checked: the version this server declares is not published in its registry.
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 0 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 55/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 8240 tokens (~484/item across 17 items; 17 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 10/100
  - Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 99/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 98% of tool parameters carry a description.
- **Tool Safety**: 50/100
  - Injection-marker check failed: the description of parameter "table_format" on tool "parse_document" contains hidden, non-rendering content, an HTML comment, at byte 118 of that field.
  - We read all 17 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 17 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the kordoc MCP server?

kordoc runs locally as an npm package, launched with npx -y kordoc. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add chrisryugj-kordoc -- npx -y kordoc
```

### Cursor

```json
{
  "mcpServers": {
    "chrisryugj-kordoc": {
      "command": "npx",
      "args": [
        "-y",
        "kordoc"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "chrisryugj-kordoc": {
      "command": "npx",
      "args": [
        "-y",
        "kordoc"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add chrisryugj-kordoc -- npx -y kordoc
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "chrisryugj-kordoc": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "kordoc"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add chrisryugj-kordoc --command npx --arg -y --arg kordoc
```

### Hermes

```yaml
mcp_servers:
  chrisryugj-kordoc:
    command: "npx"
    args: ["-y", "kordoc"]
```

### Netclaw

```json
{
  "McpServers": {
    "chrisryugj-kordoc": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "kordoc"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add chrisryugj-kordoc -t stdio -c npx -a -y kordoc
```

### Other

```json
{
  "mcpServers": {
    "chrisryugj-kordoc": {
      "command": "npx",
      "args": [
        "-y",
        "kordoc"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-18 (score 55, +16)

- [security regression] Stability: 0.07 → unverified
- [security regression] Tool safety: fail → unverified
- [security improvement] Malware scan: unverified → pass
- [security improvement] Known CVEs: unverified → pass
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Dependency health: unverified → 0.88
- [functional] Package version: 4.21.32 → 4.22.13
- [functional] Package version: 4.22.8 → 4.22.13
- [functional] Package version: 4.22.8 → 4.22.12
- [functional] Package version: 4.22.8 → 4.22.11
- [functional] Package version: 4.22.8 → 4.22.10
- [functional] Package version: 4.22.8 → 4.22.9

### 2026-10-17 (score 39, −26)

- [security regression] Known CVEs: pass → unverified
- [security regression] Malware scan: pass → unverified
- [functional regression] Dependency health: 0.88 → unverified
- [functional] Package version: 4.22.5 → 4.22.8
- [functional] Package version: 4.22.5 → 4.22.7
- [functional] Package version: 4.22.5 → 4.22.6
- [functional] Package version: 4.21.32 → 4.22.5

### 2026-10-16 (score 65, +16)

- [security regression] Tool safety: fail → unverified
- [security regression] Known CVEs: pass → unverified
- [security regression] Tool safety: fail → unverified
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: this package could not be installed in a clean environment, so we have no schema to compare.
- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Dependency health: 0.88 → unverified
- [functional improvement] Stability: unverified → 0.03
- [functional] Schema quality: Schema quality not yet verified: this package could not be installed in a clean environment, so we have no schema to assess.
- [functional] Package version: 4.22.0 → 4.22.5
- [functional] Package version: 4.22.0 → 4.22.3
- [functional] Package version: 4.22.0 → 4.22.2
- [functional] Package version: 4.22.0 → 4.22.1

### 2026-10-15 (score 49, +10)

- [security regression] Injection markers: unverified → fail
- [security regression] Malware scan: pass → unverified
- [security] First check of Judged manipulation: pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] MCP protocol: unverified → pass
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: excellent
- [functional] First check of Destructive annotations: pass
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 98
- [functional] Package version: 4.21.32 → 4.22.0
- [functional] Package version: 4.21.32 → 4.21.33

### 2026-10-14 (score 39, 0)

- [functional] Package version: 4.21.31 → 4.21.32

### 2026-10-13 (score 39)

First indexed and scored.

## MCP tools (17)

### `parse_document` (~1180 tokens)

한국 문서 파일(HWP, HWPX, PDF, XLSX, DOCX)과 이미지(PNG/JPG/WebP)를 마크다운으로 변환합니다. 파일 경로를 입력하면 포맷을 자동 감지하여 텍스트를 추출합니다. 이미지는 OCR(내장 PP-OCRv5)이 자동 적용되고 표 괘선도 복원됩니다.

Input parameters:

- `dedupe_running_headers` (boolean): HWP5 레이아웃 표 페이지 반복 러닝 헤더 중복 제거 (기본 off — 붙임별 재번호 오삭제 주의, CLI --dedupe-headers 대응)
- `file_path` (string, required): 파싱할 문서 파일의 절대 경로 (HWP, HWPX, PDF, XLSX, DOCX, PNG/JPG/WebP)
- `formula_ocr` (boolean): PDF 수식 OCR 활성화 (MFD+MFR ONNX, 첫 사용 시 모델 ~155MB 자동 다운로드, CLI --formula-ocr 대응)
- `html_tables` (boolean): 모든 표를 HTML 로 — 파이프 표도 HTML 표로, 태그마다 한 줄씩 들여써 냄 (기본 off, CLI --html-tables 대응)
- `include_field_placeholders` (boolean): 미기입 누름틀 안내문도 출력 — 빈 서식 문서의 칸 용도 보존 (#92, 기본 off, CLI --include-field-placeholders 대응)
- `keep_empty_paragraphs` (boolean): 빈 문단 보존 — 본문은 빈 paragraph 블록, 표 셀은 빈 줄 (#57, 기본 off, CLI --keep-empty-paragraphs 대응)
- `keep_layout_tables` (boolean): 테두리가 안 보이는 틀 표도 원본 표 구조 그대로 (기본 off = 보이는 대로: 틀은 글, 칸으로 조립한 분수는 수식). patch_document 로 되돌릴 편집본은 켜서 뽑는다 (CLI --keep-layout-tables)
- `keep_trailing_empty_cols` (boolean): 표 오른쪽 끝 빈 열(서식 입력란) 보존 (#47, 기본 off: 후행 빈 열 트림, CLI --keep-empty-cols 대응)
- `ocr`: 스캔/이미지 PDF 텍스트 OCR (내장 PP-OCRv5 korean, 첫 사용 시 ~18MB 자동 다운로드). true=텍스트층이 없거나 깨진 페이지만 인식하고 정상 페이지는 그대로 둡니다. "force"=텍스트층이 있어도 무시하고 전 페이지 강제 재인식. parse 결과에 NEEDS_OCR 경고가 있으면 이 옵션으로 재시도하세요
- `ocr_det` (string): OCR 글줄 검출 모델 — "mobile"(기본) | "server"(첫 사용 시 ~88MB 다운로드) (CLI --ocr-det 대응)
- `ocr_det_long_side` (integer): OCR 글줄 검출 입력 긴 변 픽셀 (32~4096, 기본 960) — 키우면 작은 글씨를 더 잡고 느려진다 (CLI --ocr-det-long-side 대응)
- `ocr_rec` (string): OCR 글자 인식 모델 — "handwriting": 수기 서류용 한국어 손글씨 rec(첫 사용 시 ~15MB 다운로드). 손글씨 칸이 많은 서식용이며 금액·날짜·전화번호의 쉼표·마침표·하이픈을 빠뜨리는 경우가 있다. OCR 이 도는 곳(이미지, PDF 는 ocr: true·"force" — ocr 을 빼면 고른 모델이 캐시에 있을 때만 자동 OCR)에…
- `password` (string): 암호로 보호된 문서의 열기 암호 (#59, HWPX·HWP3·HWP5 지원. 파싱이 ENCRYPTED로 실패하면 이 옵션으로 재시도하세요. 한컴 DRM 보호 문서는 해당 없음)
- `plain` (boolean): 평문 Markdown — 그림 자리 표시·링크 URL·밑줄/굵게 표기를 빼고 글만 (제목·목록·표 구조는 유지, 기본 off, CLI --plain 대응)
- `remove_header_footer` (boolean): PDF 머리글/바닥글 자동 제거 (기본 true — false로 끄기, CLI --no-header-footer 대응)
- `script_tags` (boolean): 위·아래첨자를 <sup>·<sub> 로 표기("10⁴ m²" 가 "104 m2" 로 펴지지 않게) — 기본: HWPX·HWP·DOCX 켬, PDF 끔(논문·수식 PDF 는 true 권장), false 면 모두 평문. CLI --script-tags / --no-script-tags 대응
- `table_format` (string): "gfm": 모든 표를 HTML 없이 GFM 파이프 표로 — 셀 안 표는 부모 뒤 독립 표로 꺼내고 관계를 <!-- <table id parent_id /> --> 표지로 남김 (RAG 색인용, html_tables 와 함께 못 씀, CLI --table-format 대응)
- `tables` (boolean): PDF 표 감지 (기본 true — false로 끄기, CLI --no-tables 대응). 테두리 박스를 표로 오인해 읽기 순서가 뒤집히는 문서(2단 시험지 등)에서 자연 읽기순 텍스트만 뽑습니다 (#64)

### `detect_format` (~79 tokens)

파일의 포맷을 매직 바이트와 컨테이너 내부 구조로 감지합니다 (hwpx, hwp, hwp3, hwpml, pdf, xls, xlsx, docx, pptx, image, unknown).

Input parameters:

- `file_path` (string, required): 감지할 파일의 절대 경로

### `parse_metadata` (~71 tokens)

문서의 메타데이터(제목, 작성자, 날짜 등)만 빠르게 추출합니다. 전체 파싱 없이 헤더/매니페스트만 읽습니다.

Input parameters:

- `file_path` (string, required): 메타데이터를 추출할 문서 파일의 절대 경로

### `parse_pages` (~109 tokens)

문서의 특정 페이지 범위만 파싱합니다. PDF와 한컴 저장본 HWP/HWPX는 실제 페이지 기준(metadata.pageMode=layout), 조판 캐시가 없는 생성 파일은 섹션 단위 근사(pageMode=section)입니다.

Input parameters:

- `file_path` (string, required): 파싱할 문서 파일의 절대 경로
- `pages` (string, required): 페이지 범위 (예: '1-3', '1,3,5-7')

### `parse_table` (~83 tokens)

문서에서 N번째 테이블만 추출합니다 (0-based index). 테이블이 없거나 인덱스 범위를 초과하면 오류를 반환합니다.

Input parameters:

- `file_path` (string, required): 파싱할 문서 파일의 절대 경로
- `table_index` (integer, required): 추출할 테이블 인덱스 (0부터 시작)

### `compare_documents` (~93 tokens)

두 한국 문서 파일을 비교하여 추가/삭제/변경된 블록을 표시합니다. 신구대조표 생성에 활용됩니다. 크로스 포맷(HWP↔HWPX) 비교 가능.

Input parameters:

- `file_path_a` (string, required): 비교 원본 문서의 절대 경로
- `file_path_b` (string, required): 비교 대상 문서의 절대 경로

### `parse_chunks` (~188 tokens)

문서를 RAG용 구조 청크 JSON으로 파싱합니다. 헤딩·개조식 위계(□○- / 1.·가.·1))가 breadcrumb 경로로 보존되고 표는 독립 청크로 나옵니다 — 임베딩·인덱싱 전처리용. 자르기(토큰 상한·오버랩)는 소비자 몫입니다.

Input parameters:

- `file_path` (string, required): 대상 문서의 절대 경로 (HWP/HWPX/PDF/XLSX/DOCX)
- `granularity` (string): section=같은 breadcrumb 아래 연속 텍스트 병합(기본), block=IRBlock 1개=청크 1개
- `include_table_cells` (boolean): 표 청크에 셀 텍스트 2차원 배열 포함 여부

### `parse_form` (~61 tokens)

한국 서식 문서에서 레이블-값 쌍을 구조화된 JSON으로 추출합니다. 양식/서식 문서에 최적화.

Input parameters:

- `file_path` (string, required): 서식 문서 파일의 절대 경로

### `fill_form` (~654 tokens)

한국 서식 문서의 빈칸을 채워서 새 문서로 출력합니다. hwpx-preserve를 사용하면 원본 서식(테두리, 폰트, 병합 등)을 100% 유지합니다. HWPX 누름틀(CLICK_HERE) 필드는 이름으로 정확 매칭되어 우선 채워집니다. file_path 대신 template으로 내장 정부 표준 기안문 서식을 쓸 수 있습니다 — gian(일반기안문, 별지 제1호서식: 행정기관명·수신자·경유·제목·본문·붙임·발신명의·기안자·검토자·결재권자 등 23필드) / gian-simple(간이기안문, 별지 제2호서식: 내부결재용 13필드).

Input parameters:

- `fields` (object): 채울 필드 맵 (라벨 → 값). 예: {"성명": "홍길동", "전화번호": "010-1234-5678"}. 개인정보는 fields_file 로
- `fields_file` (string): 채울 필드 JSON 파일의 절대 경로 — fields 대신. {"성명": "홍길동"} 모양(반복 양식은 값 배열). 값이 도구 인자로 대화에 남지 않고, 응답도 값 대신 글자 수만 낸다(mask_values: false 로 끔)
- `file_path` (string): 서식 템플릿 문서의 절대 경로 (HWP, HWPX, PDF, XLSX, DOCX). template 사용 시 생략
- `formats` (object): 필드별 값 서식 (라벨 → 포맷). 정준값 하나로 서식마다 다른 모양을 채울 때: date:yy.mm.dd / phone:hyphen·dot·digits / rrn:hyphen·masked / mask:###-## / 자유 패턴(yyyy년 m월 d일, ###-####-####)
- `mask_values` (boolean): 응답에 값 대신 글자수만 표시 — 개인정보 채움 시 값이 대화 로그에 남지 않게 (fields_file 이면 기본 켬)
- `output_format` (string): 출력 포맷: hwpx-preserve (원본 스타일 보존, HWPX 전용), hwpx (새 HWPX 생성), markdown
- `output_path` (string): 출력 파일 저장 경로 (선택). 지정 시 파일로 저장, 미지정 시 텍스트로 반환
- `require_unique` (boolean): 한 키가 서식의 2곳 이상에 매칭되면 채우지 않고 거부 — 반복 라벨 양식에서 남의 블록 오염 방지 (배열 값은 예외)
- `template` (string): 내장 정부 표준 서식 이름 — file_path 대신 사용. gian=일반기안문(별지 제1호서식), gian-simple=간이기안문(별지 제2호서식)

### `place_seal` (~255 tokens)

도장/서명 이미지를 앵커 문구("(인)"·"서명 또는 인" 등) 위에 부유(글 앞) 배치합니다. 표/페이지를 키우지 않습니다 (HWPX 전용).

Input parameters:

- `anchor` (string): 앵커 문구 — 이 문구 기준으로 배치
- `dx_mm` (number): x 미세조정 mm
- `dy_mm` (number): y 미세조정 mm
- `file_path` (string, required): 대상 HWPX 문서의 절대 경로
- `image_path` (string, required): 도장/서명 이미지 절대 경로 (투명 배경 PNG 권장)
- `mode` (string): overlap=문구 위 겹침, right=문구 오른쪽 옆, auto=공간 있으면 right
- `occurrence` (integer): 같은 앵커가 여럿일 때 0-based 선택
- `output_path` (string, required): 출력 HWPX 저장 경로
- `size_mm` (number): 도장 한 변 크기 mm (기본: 줄높이×1.6, 7~18 클램프)

### `patch_document` (~253 tokens)

원본 HWPX/HWP의 서식(글꼴·표·도장칸·이미지)을 1바이트도 건드리지 않고, 편집된 마크다운의 바뀐 텍스트만 제자리 치환해 새 문서로 출력합니다. parse_document로 얻은 마크다운을 수정해 넘기세요 — 양식 빈칸 채우기·문구 수정에 적합하며 한컴 한글에서 변조 경고 없이 열립니다. (블록 추가/삭제·표 구조 변경은 미지원, 미적용 항목은 결과에 보고)

Input parameters:

- `edited_markdown` (string, required): parse_document(keep_layout_tables: true) 출력 마크다운을 편집한 전체 마크다운. 바뀐 문단/셀 텍스트만 반영하고 블록 수·순서는 원본과 같게 유지하세요
- `file_path` (string, required): 원본 문서의 절대 경로 (HWPX 또는 HWP 5.x)
- `output_path` (string, required): 출력 파일 저장 절대 경로 (원본과 같은 확장자: .hwpx 또는 .hwp)

### `redact_document` (~389 tokens)

문서의 개인정보(주민·외국인등록번호·전화·이메일·카드·계좌·사업자등록번호·여권·운전면허, rules 로 인명·주소 opt-in)를 탐지해 서식 보존 마스킹합니다. HWPX/HWP는 원본 서식 그대로 같은 길이로 가린 파일 — 본문·표·중첩표·머리말/꼬리말·각주·글상자·필드·미리보기(텍스트·이미지)·문서 정보(제목·작성자)까지 가리고, 저장 전 결과 파일을 다시 훑어 남은 PII를 보고합니다. 그 외 포맷(PDF·DOCX·XLSX 등)은 원본을 건드리지 않고 마스킹된 마크다운만 출력합니다. 자동 검출 보조 도구 — 결과 리포트를 사람이 최종 확인해야 하며 이미지 속 글자는 탐지하지 못합니다. 마스킹 후 render_document로 눈으로 확인하는 것을 권장합니다.

Input parameters:

- `dry_run` (boolean): 탐지 리포트만 반환, 파일 미생성
- `file_path` (string, required): 대상 문서의 절대 경로
- `mask_char` (string): 마스크 문자 1글자 (기본: ●)
- `output_path` (string): 출력 경로 (HWPX/HWP는 같은 확장자, 그 외는 .md) — dry_run이 아니면 필수
- `rules` (array): 적용 룰 (기본: rrn·phone·email·card·account·brn·passport·driver — crn(법인등록번호)·ip·name(인명, 문맥 게이트)·address(주소)는 opt-in)

### `render_document` (~469 tokens)

HWPX·HWP 문서를 실제 조판 그대로 렌더해 PNG/JPEG 이미지로 응답하거나 SVG·HTML·PDF 파일로 저장합니다. generate_document·fill_form·patch_document·place_seal 결과물을 눈으로 확인하는 용도 — 생성/수정 후 이 도구로 렌더해 깨짐·잘림·배치를 검증하고 다시 고치는 루프를 권장합니다. 한컴 저장본(HWPX·HWP 모두)은 조판 캐시로 정확히, AI 생성본(캐시 없음)은 순수 조판 엔진(reflow)으로 렌더되며 후자는 한컴 실조판의 근사입니다 (참고용 미리보기).

Input parameters:

- `file_path` (string, required): 렌더할 HWPX 또는 HWP(5.x) 파일의 절대 경로
- `format` (string): png/jpeg=이미지로 응답에 직접 반환(output_path 는 선택) / svg·html·pdf=output_path 에 파일 저장(필수). svg 는 pages 미지정 HWPX 면 전체 세로 스택 1파일, 그 외 페이지별 파일. html=자급자족 레이아웃 HTML 1파일, pdf=Chromium 필요
- `highlights` (array): 형광펜 표시할 검색어 목록 — 채운 값·수정 문구 위치 확인용
- `max_width_px` (integer): 래스터(png/jpeg) 최대 폭 px — 큰 문서 응답 부피 조절
- `output_path` (string): 결과 저장 경로 (확장자는 format 과 일치 — .png/.jpg/.svg/.html/.pdf). 페이지별 산출은 _page_NNN 접미
- `pages` (string): 페이지 선택(1-based: '3', '1-3', '1,3,7-9') — 지정하면 페이지별 산출(이미지 응답은 최대 8쪽). HWPX png/svg 에서 미지정이면 전체를 세로 스택 1장으로
- `reflow_mode` (string): reflow 줄바꿈: keep=어절 단위, charAll=글자 단위

### `crop_regions` (~214 tokens)

HWPX·HWP 문서를 렌더해 표·이미지·문단·도형 영역을 페이지 이미지에서 잘라 파일로 저장합니다(render_document 와 같은 조판 엔진, 페이지 로컬 pt bbox 를 실배율로 환산). 표가 진짜 데이터표인지 조직도인지는 판단하지 않습니다(그건 extract_tables) — 렌더러가 아는 개체를 자를 뿐. 결과: output_dir/<유형>_<번호>_page_<쪽>.png + regions.json(id·유형·페이지·bbox pt).

Input parameters:

- `file_path` (string, required): HWPX 또는 HWP(5.x) 파일 절대 경로
- `format` (string)
- `output_dir` (string, required): crop 파일 저장 디렉토리
- `padding_pt` (number): bbox 둘레 여백 pt
- `pages` (string): 대상 페이지(1-based 범위)
- `target` (array): 잘라낼 개체 유형

### `extract_tables` (~299 tokens)

HWPX·HWP 문서의 표를 추출·분류합니다(#76). 표마다 semantic-table(데이터표) / non-tabular-layout(조직도·연락망·결재란처럼 표를 캔버스로 쓴 것) / uncertain 분류와 근거 신호, 페이지·bbox(pt, 렌더 region 조인), 정책(visual)에 따른 crop 이미지를 돌려줍니다 — 조직도는 이미지로, 데이터표는 셀 구조로 넘기는 멀티모달 파이프라인용. 휴리스틱(네트워크·LLM 없음), 중첩표도 독립 분류. crop 은 output_dir 에 저장하고 8장까지 응답에 함께 담습니다.

Input parameters:

- `cells` (boolean): 응답 JSON 에 셀 텍스트 격자 포함
- `file_path` (string, required): HWPX 또는 HWP(5.x) 파일 절대 경로
- `format` (string)
- `output_dir` (string): crop 파일·tables.json 저장 디렉토리 (visual 이 none 이 아니면 필수)
- `padding_pt` (number): crop 둘레 여백 pt
- `visual` (string): crop 대상: none=분류·bbox 만 / non-tabular=조직도류만 / non-tabular-and-uncertain(권장) / all

### `extract_profile` (~138 tokens)

참조 HWPX 문서에서 표 서식 프로필(테두리·음영·열 너비·셀 글꼴)을 JSON으로 추출합니다. 추출한 프로필을 generate_document의 profile_path로 넘기면 원본 문서 없이 같은 표 서식을 재현합니다 — "이 문서 표 서식 그대로 만들어줘" 워크플로의 1단계.

Input parameters:

- `hwpx_path` (string, required): 서식을 추출할 참조 HWPX 파일의 절대 경로
- `output_path` (string, required): 프로필 JSON 출력 절대 경로 (.json 권장)

### `generate_document` (~3705 tokens)

마크다운을 HWPX 한글 문서로 생성합니다. "보고서로/공문서로/개조식으로/계획서로 뽑아줘·만들어줘" 요청이 이 도구입니다. 프리셋 매핑: 정부 표준 보고서(표지·목차·로마숫자 장헤더 자동)='개조식', 중앙부처 업무보고·국회 서면보고(재경부 실측: 장 띠·절 숫자칸·소제목 박스·① 항목 띠·연노랑 성과 요약박스·별첨 띠, □ 뒤 (키워드) 파랑)='업무보고', 지방자치단체 방침서·추진계획(서울시 시장방침 실측: 제목표·파랑 부제·요약박스·[Ⅰ] 장 상자·절 띠)='서울방침' — 보고서·계획서를 만들 때 정부(업무보고)형과 지방(서울방침)형 중 무엇으로 할지 불명확하면 사용자에게 물어보세요, 기안문·시행문·알림공문='기안문', 1페이지 요약보고서='보고서', 추진계획='계획서'. 표는 실측 정부 서식(헤더 음영+이중선·외곽 굵은선·내용 비례 열폭), 쪽번호·결재란·'끝.' 표시 지원. ⚠ 생성 전 확인 권장: 문서종류(보고서/기안문)·제목·기관명(org)·날짜·목차 여부가 불명확하면 사용자에게 물어보세요 — 엉뚱한 프리셋 선택이 가장 흔한 오생성 원인. 마크다운 규칙(v4.13 서울 실결재 실측 위계): #(h1)=문서 제목, ##(h2)=장(보고서 Ⅰ Ⅱ / 기안문·통지는 법정 1.), ###(h3)=□ 대항목(기안문 가.), 그 아래 리스트=ㅇ → - → ㆍ(기안문 가. → 1) → 가)), 본문에 □/ㅇ/-/1./가. 를 직접 써도 같은 위계로 정규화, ※시작·'출처:'·'자료:'=참고(13pt), 제목 직후 인용문(>)=요약박스(보고서·계획서·개조식·서울방침 — 개조식은 표지(기본) 다음 본문 첫 쪽 제목 상자 아래·첫 장 앞 — cover:false 면 ※ 참고, 그 밖의 자리 인용문은 ※ 참고 / 업무보고는 `> ▪ …`=연노랑 성과 요약박스, 자리 무관) — ★보고서·개조식은 반드시 제목 직후 `> …하고자 함` 한 문장(쉼표 허용·부호 없음·3줄 이내 약 90~100자)로 보고 목적을 넣을 것(3줄 초과·두 문장 이상이면 경고, 보고서·계획서·서울방침은 없어도 경고), <right>텍스트</right>=우측정렬. □·제목은 한 줄에 자동 축소, 본문은 어절 단위 줄바꿈(낱말·날짜가 줄 끝에서 안 쪼개짐)·부호 뒤 탭 정렬(둘째 줄이 첫 줄 내용과 같은 위치), 마지막 줄이 짧은 고아 줄과 공백이 크게 벌어지는 줄은 자간 축소로 정리, 곧은따옴표는 ‘’“”로. 법령 코드 (282791)·KOSIS 표 ID DT_…·(법정동코드 …)·○○ MCP 조회 같은 내부 식별자·도구 언급은 자동 제거 — 출처는 기관·자료명만 쓸 것. (원본 서식 보존 제자리 수정은 patch_document, 서식 빈칸 채우기는 fill_form)

Input parameters:

- `agency` (string): 기관 서식 — 중앙행정기관 이름 또는 '공통'(기관 간 최빈값). 정책브리핑 보도자료 2,670건 실측으로 그 기관의 □·ㅇ·- 글꼴·크기, 2단계 부호, 표 머리, 기관 색을 기본값으로 깐다(명시 옵션이 우선). 보고서·계획서·업무보고·개조식·보도자료 전용
- `approval` (array): 결재란 직위 라벨 (최대 6개, 예: ['담당','팀장','과장']) — 문서 최상단 우측에 서명 공란 결재 표 생성
- `band_color` (string): 띠 제목 번호칸 채움색 #RRGGBB (기본 #003366 실측 최다. 교육청형 밝은 띠는 #DFE6F7 + band_text_color #000000)
- `band_text_color` (string): 띠 제목 번호 글자색 #RRGGBB (기본 #FFFFFF)
- `body_pt` (integer): 본문 글자 크기(pt, 공문서 모드). 기본: 기안문 12, 보고서·계획서·통지 15
- `body_title_box` (boolean): 본문 첫 페이지 제목 반복 박스 (개조식 실측 관행). 미지정 시 개조식+표지 조합에서 켜짐
- `bullet2` (string): 2단계 항목부호 — 'ㅇ'(이응, 전자결재 기안문·공고문 실측 지배) / '○'(원, 보고서 양식) / '◦'·'❍'(일부 중앙부처). 미지정 시 통지·보도자료 ㅇ, 그 외 ○
- `chapter_fit` (boolean): 개조식 장 헤더 제목 칸을 글자 폭에 맞춤. 미지정 시 제목 칸이 본문 폭까지
- `checklist`: 서울 사전 검토항목 점검표(표지 다음 쪽, 보고서·계획서·서울방침) — true=표시 없는 빈 서식, {na:[6,7,…]}=적은 문항(1~14)은 해당없음·나머지 검토완료, notes={"7":"교육"}=비고
- `columns` (integer): 다단 개수 (v4.5.0). 기본 1단
- `cover` (boolean): 표지 페이지 생성 여부 — 첫 h1을 제목으로 파랑 장식 표지. 전 프리셋 사용 가능(보도자료 제외 — 머리박스 서식과 양립 불가). 미지정 시 개조식 프리셋만 켜짐 (org/date 지정 시 자동 켜짐)
- `cover_label` (string): 표지 우상단 취급 표시 — '대외주의'·'비공개' 빨간 테두리 박스 (업무보고 프리셋 실측, cover와 함께)
- `date` (string): 표지 날짜 ('YYYY. M. D.' 표기 권장). 미지정 시 오늘 날짜
- `dept` (string): 표지 부서명 — 기관명 아래 '(스마트도시과)' (cover와 함께)
- `doc_foot` (object): 기안문 결문표 — sender=발신명의(18pt bold 중앙)/drafter·reviewer·approver='직위 성명' 결재선/cooperator=협조자/recipients=수신자 목록/docNum=시행 '과-번호 (날짜)'/receive=접수/zip·address·site/phone·fax·email/disclosure=공개구분. 기안문 프리셋 전용
- `doc_head` (object): 기안문 두문표(별지 제1호서식·서울 실결재 6행 표) — org=행정기관명(굴림 20pt bold 자간띄움)/slogan=원훈(상단 10pt)/to=수신('내부결재'면 발신명의 생략)/via=경유/title=제목(미지정 시 첫 h1). 기안문 프리셋 전용
- `doc_info` (object): 보고서 표지 문서정보표 — docNum=문서번호/date=결재일자/disclosure=공개여부/policyNo=방침번호 (cover=true와 함께)
- `end_mark` (boolean): 본문 끝 '끝.' 표시 (행정업무규정). 미지정 시 기안문만 켜짐, 본문이 이미 '끝.'으로 끝나면 중복 생성 안 함
- `font` (string): 본문 글꼴(공문서 모드): myeongjo=명조 계열(개조식·보고서·계획서는 실측 휴먼명조, 그 외 함초롬바탕), gothic=맑은 고딕
- `fonts` (object): 요소별 글꼴 오버라이드(공문서 모드) — body=본문(○·-)/heading=제목 계열(□·장헤더·표지·목차)/ref=※ 참고/table=표 셀. 개조식·보고서·계획서는 네 역할 전부, 그 외 프리셋은 body만 적용
- `footer` (string): 꼬리말 텍스트 — 모든 쪽 하단 (v4.5.0)
- `h2_marker` (string): h2 장 제목 표기: band=로마자 채움 칸+제목 띠 표(보고서·계획서 기본), roman='Ⅰ. 제목' 텍스트, number='1. 제목'(통지 기본), box=장 없이 □ 대항목으로, none=번호 없음. 기안문 본문의 h2는 항상 법정 '1.' 항목
- `header` (string): 머리말 텍스트 — 모든 쪽 상단, 인라인 마크다운 허용 (v4.5.0)
- `image_dir` (string): 마크다운 이미지 참조(![](x.png))를 이 디렉토리에서 읽어 실데이터 임베드 (v4.5.0, PNG/JPEG/GIF/BMP). 미지정 시 참조만 placeholder로 보존
- `inline_math` (boolean): 본문·표 셀의 인라인 수식 $…$ 를 한글 수식 개체로 생성 (블록 $$…$$ 는 늘 수식). 미지정 시 글자 그대로 — 가격 표기 같은 일반 $ 오인 방지. 켜도 짝이 맞는 $…$ 만(공백으로 시작·끝나거나 \$ 이스케이프면 제외)
- `landscape` (boolean): 용지 가로 방향 (v4.5.0). 기본 세로
- `levels` (object): 항목부호 단계별 위계 타이포(공문서 모드, v4.12.3) — {"0":{font:"HY견고딕",pt:17,bold:true},"1":{font:"한컴돋움",bold:true}} 꼴(depth 0~7). 실측: 전자결재 기안문 □/ㅇ/- 계열은 □=HY견고딕 +2~3pt 굵게·ㅇ=한컴돋움 굵게·-=휴먼명조 본문. 법정 8단계(1. 가.)는 본문 동일이 관…
- `line_spacing` (integer): 본문 줄간격(%, 공문서 모드). 기본: 프리셋별 실측값(기안문 160, 회의록 130 등)
- `markdown` (string, required): HWPX로 변환할 마크다운 전문. 표는 GFM 문법 사용 (예: '| 이름 | 부서 |\n| --- | --- |\n| 홍길동 | 기획팀 |')
- `notice_head` (object): 공고문 두문·결문 — no=공고번호(본문 위 bold)/date=날짜(본문 아래 우측)/sender=발신명의(우측 bold). 통지 프리셋 전용
- `org` (string): 표지 기관명 (표지를 켜는 모든 프리셋에서 사용 가능). 미지정 시 표지에 기관명 생략
- `output_path` (string, required): 출력 HWPX 파일의 절대 경로 (.hwpx 권장)
- `page_numbers` (boolean): 쪽번호(하단 중앙 '- 1 -', 표지·목차 카운트 제외). 미지정 시 개조식·보고서·계획서 켜짐
- `paper` (string): 용지 크기 (v4.5.0). 기본 A4
- `preset` (string): 공문서 프리셋 — 지정 시 한국 행정 공문서 표준 서식 적용. '개조식'=정부 표준 개조식 보고서(표지·목차·로마숫자 장 헤더 자동 + □○-※ 부호별 폰트), '업무보고'=중앙부처 업무보고(##=Ⅰ 장 띠, ###=파란 숫자칸 절, ####=남색 소제목 박스, #####=① 하늘색 항목 띠, > ▪…=연노랑 성과 요약박스, ## 별첨 …=별첨 띠, ❶⇒…
- `press` (object): 보도자료 옵션 — release=보도시점/distribute=배포일(머리박스)/sub=부제 배열('- … -')/contact=담당 표: dept=담당 부서, people=[{role:'책임자',title:'과장',name:'이○○',phone:'044-000-0000'},{role:'담당자',…}] 사람마다 한 행(실물 보도자료 꼴). people 없으…
- `profile_path` (string): 서식 프로필 JSON 경로 (extract_profile로 추출) — 참조 문서의 표 테두리·음영·열폭·셀 글꼴을 재현. 표 행·열 수와 첫 셀 텍스트가 일치하는 표에만 적용
- `report_info` (string): 보고서: 제목표 아래 담당자 행 '(2026. 9. 6., 스마트도시과 홍길동, ☎450-1234)' / 기안문: 우상단 12pt 보고정보 행
- `sizes` (object): 개조식 요소별 글자 크기(pt) 오버라이드 — dae=□/cham=※/chapter=장헤더/coverTitle·coverSub=표지/tocLabel·tocRoman·tocItem=목차/table=표 셀/bodyTitle=본문 첫 페이지 제목 반복 박스. 미지정 요소는 body_pt 비례 기본값
- `summary` (string): 요약 박스(보고서·계획서·개조식·서울방침) — 제목표(개조식은 본문 첫 쪽 제목 상자) 아래 #DFE6F7 음영 상자(서울 실결재 관행). 마크다운 제목 직후 인용문(> …)으로도 지정 가능
- `suppress_single` (boolean): 단일 형제 항목 부호 생략(편람 규정, 법정 번호 standard 전용 — 불릿 체계인 보고서·계획서·개조식·보도자료엔 무효). 기본 false — 하나뿐인 항목에도 부호(1. 가.)를 부여 (부호 없는 계단 들여쓰기가 실무 눈에 어색)
- `toc` (boolean): 목차 페이지 생성 여부 — h2 목록을 Ⅰ Ⅱ Ⅲ 장으로 자동 구성. 전 프리셋 사용 가능(보도자료 제외). 미지정 시 개조식 프리셋만 켜짐

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/chrisryugj-kordoc/kordoc#diagnostics

## Score history

- 2026-10-18: 55
- 2026-10-17: 39
- 2026-10-16: 65
- 2026-10-15: 49
- 2026-10-14: 39
- 2026-10-13: 39

## Common questions

### What is the kordoc MCP server?

kordoc is an MCP server listed in the public MCP registry as io.github.chrisryugj/kordoc. Parse Korean documents (HWP, HWPX, PDF, XLSX, DOCX, PPTX) to Markdown; fill forms, diff, render. This page covers its npm package (kordoc).

### Is the kordoc MCP server safe to use?

kordoc scores 55 out of 100 on VerifyMCP. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the kordoc MCP server expose?

kordoc exposes 17 tools: parse_document, detect_format, parse_metadata, parse_pages, parse_table, and 12 more. Their descriptions and schemas cost roughly 8,240 tokens of context every time the server is loaded.

### Is the kordoc MCP server still maintained?

kordoc is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the kordoc MCP server under?

kordoc declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/kordoc
- Socket report: https://socket.dev/npm/package/kordoc
- Repository: https://github.com/chrisryugj/kordoc
- Changelog RSS feed: https://verifymcp.io/servers/chrisryugj-kordoc/kordoc.xml
- Changelog JSON feed: https://verifymcp.io/servers/chrisryugj-kordoc/kordoc.json
- HTML version of this page: https://verifymcp.io/servers/chrisryugj-kordoc/kordoc
