Hangeul-mcp
The Hangeul-mcp server provides tools to detect, analyze, and fill Korean HWP/HWPX form documents while preserving original formatting, plus COM-based live editing on Windows.
detect_format(path): Identify whether a file is HWPX, HWP, or unknown format.analyze_form(path): Extract all fillable fields (empty cells, inline blanks, placeholders, markpen fields, checkboxes, form fields/누름틀) with theirfield_id,label, andkind.fill_form(path, values, out_path, ...): Fill values into form fields byfield_idorlabel, preserving all original formatting, bullet styles, and spacing. Outputs a new.hwpxfile with unmodified regions byte-identical to the original.analyze_formfit: Estimate whether filled values will overflow cells and cause page drift (heuristic, no renderer required).extract_text(path): Extract plain text from an HWPX document, returning one line per text node.hwp_status(): Check whether the COM live-apply bridge is available (requires Windows + Hangul). Safe to call — does not launch Hangul.apply_to_open_hwp(values)(Windows only): Fill named fields in a currently open Hangul document in one shot via COM (PutFieldText). Returnsneeds_field_registration: trueif the document has no named fields, oravailable: falseif COM is unavailable.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Hangeul-mcpFill in 강사카드.hwpx with name 홍길동 and phone 010-1234-5678"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Hangeul-mcp
AI 클라이언트가 한글(HWP/HWPX) 문서를 읽고, 양식을 찾고, 값을 채우도록 돕는 로컬 MCP 서버입니다.
Hangeul-mcp 자체에는 문장을 생성하는 AI가 없습니다. Claude Desktop, Codex처럼 사용자가 선택한 MCP 클라이언트가 문안과 값을 만들고, Hangeul-mcp는 로컬 PC에서 문서를 분석·편집·검증합니다.
지금 무엇이 되나요?
사용 상황 | 현재 상태 | 설명 |
| 핵심 경로 구현·자동 테스트 완료 | Windows·macOS·Linux에서 한글 프로그램 없이 실행할 수 있습니다. |
텍스트 검색·검증·PII 검사 | 사용 가능 | 문서 구조, 표, 스타일, 예상 값 반영 여부를 확인합니다. |
표·이미지·문단·페이지 편집 | 선택 기능 |
|
PNG 미리보기 | 선택 기능 | Playwright와 Chromium이 필요합니다. |
열린 한글 창에 값 넣기 | Windows 전용·검증 진행 중 | 한글과 COM 의존성이 필요합니다. exact-path 안전장치는 구현됐지만 일부 실제 데스크톱 시나리오는 아직 QA가 남았습니다. |
경로 없이 “현재 문서 채워줘” | 실기기 QA 통과(2026-07-15) | 저장된 |
| 아직 미지원 | 비COM reader가 확정되지 않아 |
가장 안전하고 완성도가 높은 사용법
원본을 직접 수정하지 않는 파일 모드 fast path입니다.
inspect_editable_regions("신청서.hwpx", compact=true)
→ 한 번만 구조를 검토
→ AI가 채울 모든 값과 addressed edits를 한 번에 생성
→ complete_addressed_template("신청서.hwpx", edits, "신청서_완성.hwpx")
→ 결과를 열기 전에 verify/validate가 통과했는지 확인
→ 검증된 "신청서_완성.hwpx" 열기새 파일로 저장하므로 원본을 보존합니다.
whole-template completion은 값을 전부 모은 뒤 한 번에
complete_addressed_template(...)로 보내는 경로를 기준으로 설명합니다.같은 문서가 이미 한글 창에 열려 있어도 이 fast path는 그 창을 직접 수정하지 않고
out_path새 파일만 만듭니다.수동 검토가 더 중요하면
preview_addressed_edits(path, edits)→apply_addressed_edits(session_id, out_path)로 preview→apply session을 유지합니다.표·페이지·이미지 같은 위임 편집은
python-hwpx가 문서를 재직렬화하므로 바이트 보존이 아니라 재검증 통과를 기준으로 합니다.
Related MCP server: hwp-mcp
어떤 양식을 이해하나요?
라벨 옆이나 아래의 빈 셀
병합된 표의 실제 입력 셀
은행명: ___,∘ 프로그램명 ___같은 문장·셀 중간 빈칸{학교명}같은 플레이스홀더형광펜으로 표시한 예시 값
체크박스(☑/□)
한글 누름틀(form field)
표 밖 본문 문단과 목록형 마커
모든 문서를 완벽하게 자동 해석하는 것은 아닙니다. 특히 중첩 표, 복잡한 병합, 특수 컨트롤이 많은 문서는 analyze_form 결과를 먼저 검토한 뒤 채우는 것을 권장합니다.
빠른 시작
Python 3.10 이상이 필요합니다.
가장 간단한 설치: PyPI + 관리 CLI
hangeul-mcp는 PyPI에 게시되어 있습니다. Python 3.10 이상에서 다음 명령으로 설치합니다.
pip install --upgrade hangeul-mcpWindows에서 열린 한글 문서에 연결하려면 live extra를 함께 설치합니다.
py -m pip install --upgrade "hangeul-mcp[live]"
hangeul-mcp-manage setup --client all
hangeul-mcp-manage doctorWindows 관리형 설치와 자동 업데이트
자동 업데이트·rollback까지 사용하려면 관리형 설치 스크립트를 먼저 내려받아 내용을 검토한 뒤 게시된 버전을 지정해 실행합니다.
# 1) 저장소에서 scripts/install.ps1를 로컬에 저장 또는 내려받기
# 2) 내용을 검토
# 3) 로컬 파일로 실행
powershell -ExecutionPolicy Bypass -File .\scripts\install.ps1 -Version 0.5.3 -Client all설치 뒤에는 관리 CLI로 MCP 등록과 상태 점검을 진행합니다.
hangeul-mcp-manage setup --client claude
hangeul-mcp-manage doctor여러 클라이언트를 함께 등록하거나 변경 사항만 미리 확인할 수도 있습니다.
hangeul-mcp-manage setup --client all --dry-run
hangeul-mcp-manage setup --client codex
hangeul-mcp-manage setup --client antigravity클라이언트별 공식 MCP 문서 기준 검증 결과와 자동화 범위는 docs/clients/README.md에 기록돼 있습니다. 특히 Codex의 project-local .codex/config.toml이 이미 존재하면, 관리 CLI는 임의로 scope를 고르지 않고 수동 단계로 fail closed 합니다. Antigravity는 global ~/.gemini/config/mcp_config.json만 자동 수정하며, workspace-local .agents/mcp_config.json이 이미 존재하면 역시 수동 단계로 남겨 둡니다.
업데이트 확인은 관리 CLI로 수행합니다. PyPI 메타데이터를 읽지 못하면 성공한 것처럼 처리하지 않고 not_published 또는 구조화된 네트워크 오류를 반환합니다.
관리 CLI: 업데이트·정책·롤백
hangeul-mcp-manage update --check
hangeul-mcp-manage update
hangeul-mcp-manage update-config --auto notify --channel stable
hangeul-mcp-manage rollbackupdate --check는 현재 runtime 기준 최신 버전 메타데이터만 조회합니다.update는 관리형 install state가 있을 때만 다음 versioned runtime을 설치·검증한 뒤current.json을 전환합니다.update-config --auto off|notify|daily --channel stable|beta는 자동 정책을 저장합니다.daily는 launcher startup에서 24시간 TTL 기준으로 bounded background update를 스케줄합니다.rollback은previous_version이 남아 있는 managed runtime에 대해서만 지원됩니다. 수동 삭제되었거나 손상된 이전 runtime까지 복구를 보장하지는 않습니다.-Version 0.5.3처럼 PyPI 버전을 지정한 관리형 설치에서 versioned update와 rollback을 사용할 수 있습니다. Git checkout이나 source bootstrap 설치는 자동으로 덮어쓰지 않으며unsupported_install_source로 멈추는 것이 정상입니다.
수동 설치 / 수동 설정 fallback
관리형 설치를 쓰지 않는 경우에는 소스 기준으로 직접 설치하고, 클라이언트 설정에는 절대 경로의 Python으로 서버 모듈을 호출하는 방식을 권장합니다.
pip install git+https://github.com/pblsketch/Hangeul-mcp기존 stdio 서버 진입점은 그대로 동작합니다.
hangeul-mcp
# 또는
python -m hangeul_mcp.server수동 클라이언트 설정 예시는 다음 문서에 있습니다.
Hangeul-mcp는 표준 MCP stdio를 지원하는 클라이언트에서 사용할 수 있습니다. 실제 stdio 기동·도구 호출은 tests/test_client_stdio.py로 검증합니다.
클라이언트를 재시작한 뒤에는 다음처럼 요청할 수 있습니다.
이 HWPX 문서의 입력란을 분석해 줘.
분석 결과를 보여 준 뒤, 내가 확인한 값으로 새 파일을 만들어 줘.Windows 라이브 기능을 설치한 환경에서는 다음과 같은 요청도 가능합니다.
지금 열려 있는 한글 문서를 분석하고, 실제 반영 전에 어디에 무엇을 넣을지 먼저 보여 줘.선택 기능 설치
# 개발·테스트
pip install -e ".[dev]"
# 표·문단·이미지·페이지 편집 및 문서 생성
pip install -e ".[delegate]"
# PNG 미리보기
pip install -e ".[render]"
python -m playwright install chromium
# Windows 한글 COM
pip install -e ".[com]"
# Windows 열린 문서의 셀·본문 라이브 입력
pip install -e ".[live]"설치하지 않은 선택 기능은 성공한 것처럼 동작하지 않고 available:false와 필요한 의존성을 반환합니다. describe_capabilities()로 현재 PC에서 가능한 기능을 먼저 확인할 수 있습니다.
주요 MCP 워크플로우
1. HWPX 양식 채우기
기본 fast path:
inspect_editable_regions(path, compact=True)— 파일 모드 structural target을 한 번에 파악complete_addressed_template(path, edits, out_path, verify=True)— 값을 모두 모은 뒤 새 HWPX 파일을 한 번에 생성validate_hwpx(path)/verify_fill(path, expected)— 결과 무결성과 반영 여부 확인필요하면
analyze_form(path),analyze_formfit(path, values)— 라벨 기반 필드와 넘침 가능성 추가 점검
수동 addressed session:
preview_addressed_edits(path, edits)— 변경 엔트리/개수 audit 먼저 확인apply_addressed_edits(session_id, out_path)— 검토한 session만 새 파일로 반영find_text_occurrences()는 읽기용 위치 탐색이며, repeated text는 반드시 explicit scope로 다시 확정합니다.
기존 라벨 기반 fill:
fill_form(path, values, out_path, ...)— named field/placeholder 중심의 새 HWPX 파일 생성
형성평가 preview → apply
게시할 기존 exact 디렉터리를 서버 시작 전에
HANGEUL_MCP_ASSESSMENT_OUTPUT_ROOTS에 등록합니다. Windows에서 여러 root는;로 구분합니다. 이 startup allowlist는 apply에 필수입니다.preview_assessment(template_path, spec)을 호출해 strict spec/profile 검증과 학생용·교사용·정답지 plan을 확인합니다. 이 단계는 파일을 쓰지 않습니다.성공 응답의
session_id와 일회용possession_token을 보관합니다.apply_assessment(session_id, possession_token, output_dir)을 호출합니다.output_dir는 등록 root와 정확히 같아야 합니다. allowlist가 비어 있거나 경로가 등록되지 않았다면unregistered_output_root로 파일을 쓰지 않고 거부합니다. 세 HWPX와 safe manifest는 하나의 bundle로 원자 게시됩니다.
검증 실패 응답은 고정 error_code와 비민감 count만 반환하며 template path, spec 원문, token을 포함하지 않습니다. token은 현재 stdio 서버 인스턴스에만 유효합니다.
G005 출하 게이트는 단순 생성 성공이 아니라 다음 증거를 함께 요구합니다.
등록된 실제 HWPX fixture에서 학생용·교사용·정답지 정확히 3개가 하나의 immutable bundle로 게시되고 원본 SHA가 유지됩니다.
variant 하나라도 실패하면 staging/final 산출물을 남기지 않으며, 학생용에는 teacher-only 흐름이 없어야 합니다.
품질 검사는 visible placeholder, 빈 필수 target, marker 훼손, 구조 오류를 각각 거부합니다.
저장소 hygiene 검사는 staging·journal·snapshot·생성 HWPX residue와 공개 산출물에 부적절한 로컬 provenance가 없음을 검사합니다.
독립 검증은 pytest -q tests/test_assessment_e2e.py tests/test_assessment_quality.py tests/test_assessment_hygiene.py와 전체 회귀 suite로 수행합니다.
2. 읽기·검색·감사
extract_text,find_textget_document_outline,get_table_map,find_cell_by_labellist_styles,scan_pii
3. 파일 편집·생성
자체 바이트 보존 엔진:
search_and_replace,batch_replace,mail_mergepreview_search_and_replace,preview_batch_replace,apply_edit_session,restore_edit_sessionpreview_addressed_edits,apply_addressed_edits,complete_addressed_templatepreview는 변경 엔트리/개수 audit를 먼저 보여 줍니다.
apply는 단일 session 기준으로 journal/snapshot을 남깁니다.
complete_addressed_template는 값을 모두 모은 뒤 whole-template completion을 한 번에 끝내는 file fast path입니다.one-shot
search_and_replace는 2회 이상 일치 시 기본적으로 fail-closed이며, 전체 치환은scope="all"을 명시해야 합니다.rich formatting/image/undo를 가장하지 않고 텍스트 치환 경로만 다룹니다.
python-hwpx 위임 기능:
HTML/Markdown 변환
문단·표·이미지 추가
표 병합·병합 해제·셀 음영
글자 강조
용지·여백·단·쪽번호·머리말·꼬리말
표 문서·공문 스켈레톤·블록 문서·
DocumentSpec v1·Markdown 기반 HWPX 생성
위임 기능의 정확한 도구명은 describe_capabilities() 또는 서버의 도구 목록에서 확인할 수 있습니다.
4. 열린 한글 문서에 라이브 입력
Windows + 한컴오피스 한글이 필요합니다. 이 경로는 같은 한글 창을 직접 수정하는 live mode이고, 위 file fast path와 다릅니다.
경로를 알고 있을 때
open_in_hwp(path)
→ preview_small_live_label_cells(path, values)
→ apply_small_live_label_cells(path, values)누름틀이 있는 문서는 apply_to_open_hwp(path, values)로 exact-path 대상에 입력할 수 있습니다.
사용자가 경로를 말하지 않고 “지금 열린 문서 채워줘”라고 할 때
resolve_current_hwp_document()
→ preview_current_hwp_document(values, candidate_id?)
→ apply_to_current_hwp_document(preview_token)풀폼(전체 양식)을 열린 창에서 이어서 끝내고 싶을 때 — complete_and_load 하이브리드
현재문서 흐름은 values 대신 구조 주소 edits 배열을 받는 complete_and_load 라우트를 지원합니다.
resolve_current_hwp_document()
→ preview_current_hwp_document(edits=[...addressed edits...], output_path?)
→ apply_to_current_hwp_document(preview_token)검증된 완성본을 새 파일로 만들고(경로는 항상 응답에 반환), 그 파일을 한글에 새 문서 탭으로 자동으로 엽니다.
원본 문서는 저장·닫기·재열기 없이 그대로 남습니다(0-touch, 적용 전후 SHA 검증). 새 탭이 앞으로 오며 활성 뷰가 전환됩니다.
자동 열기가 실패해도 완성 파일은 남고,
completed_open_failed와 수동 열기 안내를 돌려줍니다.원본 창이 automation-visible이 아니면 완성본이 별도 창/새 인스턴스에 열릴 수 있습니다.
values와edits를 함께 보내면 fail-closed(route_conflict)입니다.
열린 창 셀을 직접 고치는 in-place 편집 — live_addressed 라우트 (2026-07-15 데스크톱 QA 게이트 통과로 승격)
preview_current_hwp_document(edits=[...], mode="live_addressed") → apply_to_current_hwp_document(preview_token)이 파일 산출 없이 열린 창의 셀을 직접 바꿉니다.
바이트보존이 아니며, 서버는 창을 저장하지 않습니다(디스크 파일은 사용자가 저장하기 전까지 불변 — 캡처에서 SHA 동일 확인).
각 edit에
expected_text가 필수이며, 파일 기준 사전 대조 + 교체 직전 창 안 실제 텍스트 재대조로 이중 확인합니다. 불일치 셀은 건드리지 않고 skip(expected_text_mismatch)됩니다.부분 실패 시
applied[]/skipped[]/remaining[]과 구조화 복구 지시(Ctrl-Z 횟수 또는 원본 재열기)를 반환하고, 적용 셀은 별도 COM 연결로 fresh read-back 재검증합니다.단일/최상위 표 문서만 지원 — 중첩 표 감지 시
nested_tables_unsupported로 fail-closed되며complete_and_load하이브리드를 안내합니다. 본문 문단(bN)·다문단 셀도 fail-closed입니다.preview token은 원본 파일 SHA에 결속되고(변경 시
stale_preview), COM 변이 전에 소비되는 단일 사용 토큰입니다.
이 흐름은 다음 규칙을 지킵니다.
v1은 저장된
.hwpx현재 문서만 지원합니다.여러 문서가 있으면 임의로 고르지 않고 후보 선택을 요청합니다.
resolve_current_hwp_document()후보에는picker_title/picker_subtitle/picker_badges/picker_label이 들어 있어 사람이 보고 고를 수 있습니다.preview에서 받은 일회용 token 없이는 쓰지 않습니다.
apply 직전에 COM 객체·문서 슬롯·전체 경로를 다시 확인합니다.
preview token은 해당 stdio 서버 인스턴스 범위이며, 문서가 바뀌거나 닫혔거나 token이 재사용되면 쓰지 않고 구조화된 오류를 반환합니다.
사용자가 연 문서를 자동 저장·닫기·재열기하지 않습니다. 유일하게 승인된 예외 경로(원본 교체+리로드)는 ADR D19의 4조건 — 명시적 consent 파라미터(기본 거부) + apply 직전 COM dirty-프로브
dirty:false판정(그 외 전부 무조건 거부) + 사전 백업 생성 + 백업 경로/SHA 반환 — 을 모두 갖춘 구현으로만 허용되며, 현재는 미출하 상태입니다(dirty-프로브만 실기기 검증 완료).파일 모드 addressed completion이 목적이면 live apply로 섞지 말고
inspect_editable_regions(...)→complete_addressed_template(...)또는preview_addressed_edits(...)→apply_addressed_edits(...)를 사용한 뒤, 검증된 출력 파일을 나중에 여는 방식으로 분리합니다.
라이브 기능의 정직한 검증 상태
확인된 것:
ROT 전체 열거와 normalized
FullNameexact match로 대상 문서를 찾는 코드다중 문서·같은 파일명·stale token·active race 등에 대한 fake-COM 자동 테스트
current-document 후보의 human-readable picker metadata(
picker_*) 추가Windows Shell
Start-Process로 연 기존.hwpx에open_if_needed=false로 값 2건 입력 후 별도 연결 read-back 성공Windows regression artifact template/validator(
docs/evidence/windows-live-regression-template.json,scripts/windows_live_regression_harness.py)complete_and_load컴포넌트 실기기 캡처 통과(2026-07-14): 실제 한글로 작성된 지도안 템플릿에서 검증 완성 → 새 탭으로 열기(open_as_new_tab,XHwpDocuments.Add) → 원본 탭 잔존 + 원본 SHA 불변 + fresh read-back 2/2 (docs/evidence/complete-and-load-desktop-capture-components.json)실기기 발견 반영: 일반
hwp.Open은 활성 탭을 내비게이션(탭 추가 아님)하므로 완성본 열기는 탭 추가 후 열기로 구현; 합성 zip 픽스처는 실제 한글이 열지 못하므로 데스크톱 캡처는 실제 저작 템플릿 사용다중 인스턴스 resolver 실기기 재캡처 통과(2026-07-15): 빈 탭/다중 문서 데스크톱에서
selection_required(후보 4) → 명시적candidate_id로preview_ready→completed_and_loaded6/6 체크 (docs/evidence/complete-and-load-desktop-capture-automation.json) — 이전current_document_unsaved전면 차단 결함 해소live_addressed실기기 캡처 통과(2026-07-15, 8/8 체크): 게이트 기본 차단 → 토큰 발급 → 사용자 수정 주입 셀만expected_text_mismatch로 무손상 skip + 나머지 17셀 in-place 적용 + fresh read-back 검증 + 토큰 단일 사용 + 디스크 파일 SHA 불변 (docs/evidence/live-addressed-desktop-capture.json). 이 캡처가 잡은 실결함(get_selected_text후 선택 해제로 Delete 무효 → append 오염)은 재선택 로직으로 수정 후 재검증Shell-open ROT 가시성 메커니즘 확정(2026-07-15, D18): Explorer 더블클릭 문서의 automation 가시성은 "열기 시점에 automation-visible 인스턴스가 존재하는가"로 결정됩니다 — 클린 데스크톱이면 영구 비가시(새 미등록 인스턴스), 인스턴스가 먼저 있으면 탭으로 합류해 즉시 가시(
docs/evidence/shell-rot-spike-probe.json). NATIVEOM/DDE 승격 채널은 실측 기각. 실무 지침: 라이브로 다룰 문서는open_in_hwp로 열거나, automation 인스턴스를 먼저 만든 뒤 여세요.
아직 남은 것:
복잡한 중첩 표에서의 라이브 셀 매핑 확대 검증(현행: 중첩 표 문서는
live_addressed에서 fail-closed)일부 본문 라이브 안전장치의 추가 실기기 실패 주입 검증
worker timeout 격리는 현재
open_in_hwp(timeout_seconds=...)경로에만 연결돼 있습니다. 다른 live apply 경로는 아직 동일한 timeout 계약을 약속하지 않습니다.
따라서 라이브 기능은 파일 모드보다 보수적으로 사용해야 합니다. 원자료와 완료 조건은 PENDING_DESKTOP_LIVE_QA.md, 절차는 docs/live-qa-runbook.md에서 확인할 수 있습니다.
개인정보와 로컬 실행 경계
Hangeul-mcp 서버는 OpenAI·Anthropic·Gemini API를 직접 호출하지 않습니다.
문서는 도구가 실행되는 로컬 PC에서 처리됩니다.
다만 MCP 클라이언트가 어떤 내용을 AI 모델에 보내는지는 해당 클라이언트의 설정과 정책에 따릅니다.
scan_pii와mask_pii는 보조 안전장치이며 개인정보 처리 책임을 대신하지 않습니다.
개발 상태와 품질
패키지 버전:
0.5.3(Pre-Alpha)런타임 MCP 도구: 62 tools
최신 로컬 검증: 668 passed, 16 skipped (+ 로컬 프로파일 한정 사전 환경 실패 6건 — 기준선 동일, 회귀 0)
Architect 최신 브랜치 리뷰: current branch evidence 참조
Critic 최신 브랜치 리뷰: current branch evidence 참조
마일스톤·유저 스토리: 72개 — 71 pass + 라이브/스파이크 pending
배포 채널과 release 증거 원칙
stable채널은 최종 semver release만 대상으로 합니다.beta채널은a/b/rcprerelease까지 포함합니다.GitHub release automation은 trusted publishing draft입니다. workflow 성공만으로 PyPI 게시 성공을 주장하지 않습니다.
실제 release를 공지할 때는 release notes와 함께 최소한 SHA256 checksum 또는 provenance 위치를 같이 제공해야 합니다.
skipped에는 Windows·한글·Playwright·python-hwpx처럼 현재 환경에 없는 선택 의존성 테스트가 포함될 수 있습니다. 최신 자동 검증 산출물은docs/evidence/에 있습니다.
여기서 71 pass는 PRD 장부의 인수조건 boolean 수치이며 “사용자 기능 66개가 모두 완성됐다”는 뜻이 아닙니다. desktop-live-pending, optional-gated, spike-pending 항목도 별도로 존재하므로 실제 지원 범위는 위 상태표와 docs/prd.json을 함께 봐야 합니다.
아직 하지 않는 것
서버 자체 LLM 또는 유료 AI API 제공
.hwp의 검증된 비COM 헤드리스 읽기임의 표의 행·열 추가/삭제, table compute, TOC 자동화
열린 문서의 글꼴·스타일을 라이브 COM으로 자유 편집
DocumentSpec v1에서 템플릿 전용 이미지 배치·정렬 힌트·숨은 본문 합성모든 HWPX 양식에 대한 무검토 자동 채우기 보장
로드맵은 docs/ROADMAP.md, 상태 원본은 docs/prd.json, 설계 결정은 docs/DECISIONS.md에서 관리합니다.
Python에서 직접 사용
from hangeul_core.understand import understand
from hangeul_core.inline import detect_inline
from hangeul_core.fill import fill
fields = understand("강사카드.hwpx").fields + detect_inline("강사카드.hwpx")
for field in fields:
print(field.field_id, field.label, field.kind)
result = fill(
"강사카드.hwpx",
{"성명": "홍길동", "학력": "○○대학교"},
"강사카드_완성.hwpx",
)
print(result.filled, result.skipped)프로젝트 구조
Hangeul-mcp/
├─ hangeul_core/ # HWPX 분석·채우기·검증 코어
│ └─ hwp/ # Windows 한글 COM·ROT·현재 문서 안전장치
├─ hangeul_mcp/ # FastMCP 도구 등록과 라이브 orchestration
├─ tests/ # 단위·통합·fake-COM 테스트와 PII 없는 fixtures
├─ docs/ # 설계, 상태, QA, 클라이언트 설정
├─ scripts/e2e_evidence.py # 파일 모드 E2E 증거 생성
├─ scripts/windows_live_regression_harness.py # Windows live artifact template/validator
└─ .github/workflows/ci.yml # CI
FastMCP stdio 서버에는 현재 62개의 도구가 등록됩니다 (62 tools).
관련 문서
라이선스
MIT — LICENSE
Available Tools
62 toolsadd_imageC
Insert an image file into the document and write a NEW file (delegate).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| out_path | Yes | ||
| width_mm | No | ||
| height_mm | No | ||
| image_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description alone must disclose behavior. It states the tool writes a new file, which implies it does not modify the original, but does not clarify side effects, permissions, or what 'delegate' means. Key behavioral aspects like whether the source document is altered remain ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but lacks essential information. It does not waste words, but it could be slightly expanded to improve clarity without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no annotations, and an output schema (not shown), the description is insufficient. It fails to explain key parameters like path and dimension properties. The agent cannot properly construct a valid call without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 5 parameters with 0% description coverage. The description mentions image_path (image file) and out_path (new file), but does not explain path (likely source document) or the optional width_mm and height_mm. The description adds minimal value beyond the schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (insert an image file) and the output (write a NEW file). The verb 'Insert' and resource 'image file' are specific. However, the parenthetical '(delegate)' is unclear and does not aid agent understanding. The distinction from sibling tools like add_paragraph or add_table is implicit but not explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use, or refer to any sibling tools. The agent receives no context for tool selection among the many sibling tools listed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_paragraphB
Append a text paragraph and write a NEW file (python-hwpx delegate; reserialized, re-validate after).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| text | Yes | ||
| out_path | Yes | ||
| section_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it is a delegate to python-hwpx and involves reserialization and re-validation after. However, it omits details like whether it overwrites existing files, required permissions, or side effects on the original file.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it packs multiple concepts (delegate, reserialize, re-validate) without clear structure. Could be more readable with separation into two sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description fails to cover important parameters like section_index and does not explain the return value or error conditions. It is incomplete for a tool with 4 parameters and no schema description coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must explain parameter meanings. It only mentions 'text paragraph' but does not clarify path, out_path, or section_index. The schema provides default for section_index but description adds no semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Append' and resource 'a text paragraph', and specifies it writes a NEW file. It distinguishes from sibling tools like add_image or add_table by focusing on paragraph addition and file creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The phrase 'write a NEW file' implies it creates new files rather than modifying existing ones, but no comparison with siblings is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_tableC
Append a rows x cols table and write a NEW file (python-hwpx delegate).
| Name | Required | Description | Default |
|---|---|---|---|
| cols | Yes | ||
| path | Yes | ||
| rows | Yes | ||
| out_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks disclosure of important behaviors: it does not confirm whether the input file is modified (it says 'new file', but the verb 'append' implies modification), does not mention overwrite behavior, permissions, or size limits. The phrase 'python-hwpx delegate' is cryptic and offers no behavioral clarity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it sacrifices necessary detail. It front-loads the action but lacks structure to convey parameter roles or usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 required parameters with no schema descriptions, an output schema exists but is not referenced, and many sibling tools for similar tasks, the description is insufficient. It does not explain what each parameter does, what the tool returns, or how it differs from alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must explain parameters, but it only hints at rows and cols ('rows x cols') and completely omits explanation of path (input file?) and out_path (output file?). The agent must infer semantics without sufficient context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb-resource pairs 'Append a rows x cols table' and 'write a NEW file', clearly indicating the tool adds a table and saves to a new file. However, it doesn't explicitly state that it appends to an existing document (via path) and whether the table is placed at the end or elsewhere, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings like create_hwpx_table or add_image. There is no mention of prerequisites, alternatives, or conditions for use, making it hard for an agent to decide correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_formC
Detect fillable fields in FILE MODE: labels, inline blanks, placeholders, checkboxes, form fields.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It only states the detection targets but does not cover side effects, permissions, data persistence, or return format. The read-only nature is implied but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence), but it front-loads the core purpose. However, it lacks structure (e.g., no parameter section) and feels incomplete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one parameter and an output schema, but the description does not clarify what the output contains, nor does it explain the term 'FILE MODE'. More context is needed for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention the single required parameter 'path' at all. Schema coverage is 0%, so the description fails to add meaning to the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb 'detect' and resource 'fillable fields', listing specific types. However, 'FILE MODE' is ambiguous and it does not explicitly differentiate from sibling tools like 'analyze_formfit'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. No mention of prerequisites, file requirements, or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_formfitC
Estimate overflow/fit risk for candidate values against detected field capacity.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| values | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It only says 'estimate', implying read-only, but provides no detail on side effects, permissions, or error conditions. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, achieving conciseness but at the expense of completeness. It is not verbose, but lacks sufficient detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the description does not explain what the tool returns or how the output relates to the input. For a tool with two required parameters and nested objects, this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description adds no information about the parameters ('path' and 'values'). The agent must rely solely on the schema, which lacks descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool estimates overflow/fit risk for candidate values against detected field capacity. It uses a specific verb and resource, though it does not distinguish from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor any context for its application. The description lacks usage prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_addressed_editsA
Write the previewed addressed edits to a NEW file-mode output copy.
The reviewed addressed plan came from structural addresses, not {} named
fields, so repeated "▶", repeated "○○○", ordinary table cells, and
paragraphs stay explicitly scoped. This applies the session_id returned by
preview_addressed_edits(...) together with the required out_path after
you already gathered all values first; do not turn whole-template completion
into one tool call per cell or mix live field writes and then fall back to
file mode. It does not mutate the already-open same Hangul window for the
same document. Keep repeated text explicit with structural scope instead of
an unscoped global replacement. After apply succeeds, open the verified output
file afterward if live review is needed.
| Name | Required | Description | Default |
|---|---|---|---|
| out_path | Yes | ||
| session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool does not mutate the open Hangul window, keeps repeated text explicit with structural scope, and that the plan came from structural addresses. This is comprehensive behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose at ~150 words with multiple long sentences. It could be more concise by trimming redundant explanations about structural scope and repeated text. The first sentence is good, but the rest is dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and 2 required params, the description adequately covers purpose, context, and behavioral traits. An output schema exists to cover return values. The description addresses when to use and what not to do, making it complete for task selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must add meaning. It explains that session_id comes from preview_addressed_edits and out_path is required. While minimal, it clarifies the role of each parameter, though no format or constraints are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Write the previewed addressed edits to a NEW file-mode output copy,' providing a specific verb and resource. It distinguishes from siblings like apply_to_current_hwp_document by emphasizing file-mode output and no mutation of open windows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear guidance: use after preview_addressed_edits, gather all values first, and avoid mixing with live field writes. It implies this is for file-mode, not for open documents, but does not explicitly list sibling alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_assessmentC
Atomically publish a reviewed three-variant assessment bundle to a safe root.
| Name | Required | Description | Default |
|---|---|---|---|
| output_dir | Yes | ||
| session_id | Yes | ||
| possession_token | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description should disclose behavioral traits. It mentions 'atomically' but does not specify mutation scope, required permissions, or side effects. Insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, concise and front-loaded. However, it uses jargon ('safe root') that may obscure meaning. Still earns a high score for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description fails to explain critical context: what a 'three-variant assessment bundle' is, what 'safe root' means, and what the parameters represent. Incomplete for a tool with three required params and no schema descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of the three required parameters (session_id, possession_token, output_dir). The agent cannot infer what values to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool atomically publishes a reviewed three-variant assessment bundle. It distinguishes from sibling 'preview_assessment' and other apply tools by specifying the atomic, reviewed, three-variant nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. No when-not or alternative tool mentions, leaving the agent to infer usage context from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_edit_sessionC
Write a previewed edit session to a NEW file with journal/snapshot for restore.
| Name | Required | Description | Default |
|---|---|---|---|
| out_path | No | ||
| session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only says it writes a new file with journal/snapshot. It does not disclose side effects (e.g., whether the preview session is consumed), required permissions, or behavior when out_path is empty. The 'journal/snapshot' jargon is ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with 14 words, making it very concise. However, the phrase 'with journal/snapshot for restore' could be clearer. No structural issues, but it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description is incomplete for a write tool with two parameters. It lacks details on error handling, output file naming, and the journal/snapshot mechanism. For a medium-complexity tool, it leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the parameters. It does not mention session_id (required) or out_path (optional), leaving the agent to infer their purposes from context alone. This is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool writes a previewed edit session to a new file with journal/snapshot for restore. It uses a specific verb ('write') and resource ('previewed edit session'), distinguishing it from siblings like 'apply_to_current_hwp_document' which modifies existing documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you want to save a previewed edit as a new file, contrasting with siblings that apply edits to existing documents. However, it does not explicitly state when not to use it or provide alternative tools, nor does it mention prerequisites like having a valid session_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_small_live_label_cellsA
Fill a small set of label:value CELLS in the OPEN Hangul window live.
Handles empty label:value cells AND inline blanks (colon "은행명:", marker "∘ 프로그램명", checkboxes). Value insertion only — no formatting/styling. Not for whole-template completion: use compact inspect plus complete_addressed_template(path, edits, out_path) or the complete_and_load route — new file created, original untouched, opened as a new tab (plain open_in_hwp may reuse the active tab). Attaches to the automation-visible instance on call and verifies the requested exact path is active; if not, it opens it there when open_if_needed=true. Cold start can take tens of seconds. Preview first with preview_small_live_label_cells.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| clear | No | ||
| values | Yes | ||
| visible | No | ||
| open_if_needed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses cold start latency, path verification, and attachment behavior, but could mention more about return value or error states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with front-loaded purpose and clear exclusions, but could be slightly more concise. Still earned its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, and behavior, but lacks parameter details. Assuming output schema provides return info, it's still not fully complete for an exhaustive agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description only minimally explains 'open_if_needed' and 'clear'. The 'values' dictionary, 'visible', and 'path' parameters are not described, leaving significant gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it fills a small set of label:value cells in the open Hangul window, differentiating from whole-template completion tools like complete_addressed_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when not to use (whole-template completion) and directs to alternative tools, with a recommendation to preview first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_to_current_hwp_documentA
Apply a previously previewed pathless current-document edit by token only.
The token is authoritative: no fresh values or target hints, and the selected broker and exact target are revalidated before mutating the live document. complete_and_load tokens instead write the verified completion to the NEW file from the preview and open it as a new tab — the original stays untouched and the created path is returned even if the open fails. This path does not expose a timeout_seconds worker-isolation contract.
| Name | Required | Description | Default |
|---|---|---|---|
| preview_token | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the token is authoritative, revalidation occurs, and differentiates between mutating the live document versus creating a new file with complete_and_load tokens. It also notes what the tool does not expose. This adds meaningful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that front-loads the main action. Every sentence adds value, though the second sentence is dense with two behavioral modes. Overall, it is efficient and avoids fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no annotations, output schema present), the description covers purpose, parameter semantics, and key behavioral distinctions. It implicitly assumes the agent knows to preview first. Explicit error conditions or side effects are not stated, but the output schema likely handles return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema for preview_token has 0% description coverage. The description fully compensates by explaining the token's role: a previously previewed pathless current-document edit, and further distinguishes between token types. This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it applies a previously previewed pathless current-document edit by token. It differentiates between normal apply and complete_and_load tokens. However, it does not explicitly distinguish this tool from sibling apply tools like apply_addressed_edits or apply_edit_session, which share a similar prefix.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the token-based invocation and mentions revalidation before mutation. It also notes the absence of a timeout_seconds worker-isolation contract. However, it does not specify when to use this tool versus alternatives, nor does it explicitly state prerequisites like 'must have previewed'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_to_open_hwpA
One-shot VALUE fill of named form fields (누름틀) in the OPEN Hangul window.
Value insertion only — formatting/styling edits are not supported live; use the file-mode delegate tools instead. Legacy pathless mode writes to the active automation document; with path=... it performs broker-targeted exact-path live apply and refuses to guess across multiple automation brokers. No timeout_seconds worker-isolation contract yet.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| values | Yes | ||
| visible | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral disclosure. It explicitly states that only value insertion is supported, no formatting live, details two modes (pathless vs broker-targeted), refuses to guess across brokers, and notes the lack of a timeout contract. This gives the agent a clear understanding of behavior and limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and adds detailed but relevant information in subsequent sentences. It avoids redundancy or filler, but could be slightly more concise by combining some clauses. Still, it efficiently conveys necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters and an output schema, the description covers purpose, behavior, modes, and limitations. It does not mention prerequisites (e.g., document must be open) or error handling (e.g., missing fields), but these are somewhat implied by the domain. Overall, it provides sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It explains the 'path' parameter's dual mode behavior and clarifies that 'values' maps field names to strings. The 'visible' parameter is not mentioned, but its default true is self-explanatory. Overall, it compensates well for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs one-shot value fill of named form fields in the open Hangul window. It differentiates from file-mode delegate tools for formatting/styling, and mentions legacy pathless vs broker-targeted modes, establishing a distinct purpose among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides when to use (value fill in open Hangul window) and when not (formatting/styling edits should use file-mode delegate tools). It also explains the two operation modes, but does not explicitly compare with all siblings like 'fill_form' or 'apply_to_current_hwp_document', leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_replaceA
Apply multiple find->replace pairs to a NEW file in one pass (text substitution only).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| out_path | Yes | ||
| replacements | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the operation is for text substitution only and produces a new file (non-destructive). However, it omits details like permissions needed, error cases (e.g., file not found), or whether substitutions are case-sensitive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It efficiently conveys the core purpose and constraints, making it easy for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool creates a new file with multiple replacements, the description is too brief. It does not address edge cases, behavior on overlapping replacements, or return value (despite having an output schema). Siblings like search_and_replace likely offer more context, making this feel incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does not explain the three parameters (path, out_path, replacements). The phrase 'find->replace pairs' loosely maps to the replacements object, but does not clarify the mapping or format. The description adds minimal value beyond the schema structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'Apply', the resource 'multiple find->replace pairs', and important qualifiers: 'to a NEW file' and 'text substitution only'. This distinguishes it from siblings like search_and_replace or preview_batch_replace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating a new file with substitutions applied, but does not explicitly state when not to use or suggest alternatives. The context of working on a 'NEW file' provides some guidance, but lacks exclusions like 'do not use on existing open documents'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_addressed_templateA
Complete a whole template in ONE addressed file-mode call and write a new copy.
Gather or generate all values first, then send one edits array here —
not one call per cell. edits do NOT require {} named fields; use
structural addresses for repeated "▶", repeated "○○○", ordinary table
cells, and paragraphs, and never treat repeated text as a document-wide
replace without explicit scope. Start in file mode for whole-template
completion instead of mixing live field writes and falling back to file mode
later. This addressed file-mode path writes out_path only and does not
mutate the already-open same Hangul window; open the verified output
afterward.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| edits | Yes | ||
| verify | No | ||
| out_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool 'writes out_path only and does not mutate the already-open same Hangul window,' and that edits use structural addresses. It also warns against treating repeated text as document-wide replace without explicit scope. This provides adequate behavioral transparency for a file-writing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a concise paragraph of 5-6 sentences, front-loaded with the purpose. It avoids unnecessary repetition and covers key points efficiently. While it could be slightly more structured (e.g., bullet points), it remains clear and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (4 parameters, nested AddressedEdit schema) and the large number of sibling tools, the description provides sufficient context. It explains the mode, output, address format, and key behavioral constraints. The output schema (not shown) likely covers return values, so the description is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for top-level parameters, but the description adds context: it explains that edits should be sent as one array, and that the tool writes a new copy to out_path. It also clarifies that 'edits do NOT require {} named fields; use structural addresses.' This adds meaning beyond the schema, compensating for the lack of parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: 'Complete a whole template in ONE addressed file-mode call and write a new copy.' It specifies the action (complete a whole template), the mode (addressed file-mode), and the output (write a new copy). It distinguishes itself from per-cell calls and live field writes, differentiating from siblings like apply_addressed_edits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Gather or generate all values first, then send one edits array here — not one call per cell.' It also advises to 'Start in file mode for whole-template completion instead of mixing live field writes and falling back to file mode later.' While it doesn't name specific alternatives, it clearly implies when to use this tool and what to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_document_from_blocksC
Create an HWPX from ordered content blocks (delegate).
| Name | Required | Description | Default |
|---|---|---|---|
| blocks | Yes | ||
| out_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose what 'delegate' means, side effects, permissions, or output format. The output schema exists but is not referenced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence with no extraneous content. Every part serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema coverage, and an output schema, the description should provide more context. It lacks details on return values, side effects, and input constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description only mentions 'ordered content blocks' but does not explain what blocks are or the meaning of 'out_path'. No parameter details are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create), the resource (HWPX document), and the input (ordered content blocks). It effectively distinguishes from sibling tools like create_document_from_spec.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The term '(delegate)' hints at delegation but is not explained, and no exclusions or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_document_from_specC
Create an HWPX from a DocumentSpec v1 payload (validated template union; delegate).
| Name | Required | Description | Default |
|---|---|---|---|
| spec | Yes | ||
| out_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states a mutation ('Create') but lacks details on validation, side effects, permissions, or response behavior. The reference to 'validated template union' is vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one sentence. It front-loads the primary purpose. However, it could be slightly more structured or include key behavioral hints without adding verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high number of sibling tools and the presence of nested objects in the schema, the description is incomplete. It fails to explain the 'DocumentSpec v1' structure or how this tool differs from other document creation tools, leaving significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% with no descriptions in the schema. The tool description adds minimal context: 'DocumentSpec v1 payload' for spec and 'out_path' is self-explanatory, but spec structure and constraints remain unclear. For a complex object parameter, more detail is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Create an HWPX', specifies the source 'DocumentSpec v1 payload', and distinguishes from sibling creation tools by mentioning 'validated template union; delegate', which implies a specific input format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like create_document_from_blocks or create_hwpx_from_markdown. The phrase 'delegate' hints at internal usage, but no when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_hwpx_from_markdownC
Create an HWPX from Markdown content (delegate).
| Name | Required | Description | Default |
|---|---|---|---|
| markdown | Yes | ||
| out_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'create HWPX from Markdown' and hints at delegation via '(delegate)', but does not explain delegation, side effects (e.g., file overwriting), permissions, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one phrase), which is concise but sacrifices completeness. It front-loads the key action but omits important details, making it insufficient for a 2-parameter tool with no parameter descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 required parameters and no output schema details in the description, it lacks completeness. No mention of return values, error conditions, or relationship to 58 sibling tools. The description does not adequately guide selection or usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning beyond the input schema. It mentions 'Markdown content' but does not clarify whether 'markdown' expects raw text or a file path (despite schema type 'string'), and 'out_path' is left unexplained. Schema coverage is 0%, and the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Create an HWPX from Markdown content', which specifies the action and output format. However, the parenthetical '(delegate)' introduces ambiguity, lacking sibling differentiation and leaving unclear whether the tool directly performs creation or delegates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not indicate when to prefer this tool over siblings like 'create_document_from_spec' or 'hwpx_to_html', nor any criteria for when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_hwpx_tableC
Create a new HWPX containing one table from headers/rows (delegate).
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | ||
| out_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided and description does not disclose side effects, overwrite behavior, or authentication requirements. Only states basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise single sentence that is front-loaded. However, the word 'delegate' is confusing and detracts from efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks details on row format, error handling, and output behavior. With no annotations and low schema coverage, incomplete for a tool with two required parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and description only adds 'from headers/rows' without explaining structure of rows parameter or behavior of out_path. Fails to compensate for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it creates a new HWPX file with one table from headers/rows. Distinguishes from siblings like add_table (adds to existing doc) and create_hwpx_from_markdown. However, 'delegate' is ambiguous and reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like add_table or create_document_from_blocks. Only states input format (headers/rows) without contextual advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_official_documentC
Create a Korean official-document (gongmun) skeleton HWPX from fields (delegate).
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | ||
| doc_type | No | 공문 | |
| out_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It only mentions creation but does not disclose side effects, authorization needs, or what 'delegate' means. No indication of whether it is destructive or modifies existing files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence) and front-loaded, but uses jargon ('gongmun', 'delegate') without explanation. It could be clearer while maintaining conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (creating official documents with nested parameters) and the existence of an output schema, the description is incomplete. It does not explain what a 'skeleton' is, what 'delegate' implies, or how fields should be structured.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description does not explain parameters like 'fields' (expected keys) or 'out_path'. It merely mentions 'fields (delegate)' without clarifying their structure or purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Create' and resource 'Korean official-document (gongmun) skeleton HWPX', specifying the operation. However, it does not distinguish from siblings like create_document_from_blocks or create_hwpx_from_markdown, lacking differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. With many sibling tools for HWPX creation, the description fails to provide context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_capabilitiesA
Report per-capability availability, tool buckets, and runtime identity for this PC.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It transparently states the outputs (capability availability, tool buckets, runtime identity). As a read-only introspection tool, no side effects need mentioning.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with clear front-loaded verb 'Report'. No wasted words, all content is essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 0 parameters, no annotations, and an output schema, the description fully covers the tool's purpose and outputs. It mentions three concrete aspects of what is reported.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is 4. The description adds no parameter info, which is acceptable since schema coverage is 100% and there are no parameters to describe.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports per-capability availability, tool buckets, and runtime identity. This distinguishes it from sibling tools focused on document manipulation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for capability introspection. While no explicit when-not or alternatives are given, the sibling context makes it clear this is for querying system capabilities, not document operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_formatB
Detect whether a path is HWPX (zip+mimetype), binary HWP, or unknown.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the detection purpose. It does not disclose side effects, permissions, or performance characteristics expected for a mutation-free inspection tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler words. Front-loaded with the verb 'Detect' followed by resource and outcomes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No information about return values or output schema behavior. For a detection tool, the output meaning should be clarified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description adds minimal context to the 'path' parameter beyond the schema's type definition, not specifying format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool detects file format (HWPX, binary HWP, or unknown) with specific verb and resource. It distinguishes from sibling tools like extract_hwp_text or validate_hwpx.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. Usage is implied (detect format before processing), but no alternatives or exclusions are discussed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
emphasize_textA
Apply bold/italic/underline/color/size to matched text and write a NEW file (delegate).
| Name | Required | Description | Default |
|---|---|---|---|
| bold | No | ||
| find | Yes | ||
| path | Yes | ||
| size | No | ||
| color | No | ||
| italic | No | ||
| out_path | Yes | ||
| underline | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool writes a new file, implying the original is unchanged. However, it lacks details on error behavior, pattern matching behavior, or how delegation works. With no annotations, this is minimal but not contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It efficiently conveys the core purpose and outcome.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with no annotations, the description is too brief. It does not explain how the 'find' pattern works, default values, output format (even with output schema), or edge cases like no matches. More context is needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description adds meaning to key parameters: bold, italic, underline, color, size, and find (matched text). It also implies path and out_path. This compensates well for the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool applies bold/italic/underline/color/size to matched text and outputs a new file. This is a specific verb+resource combination that distinguishes it from sibling tools which modify existing documents or perform other operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like apply_to_current_hwp_document or search_and_replace. The description does not mention prerequisites, limitations, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_hwp_textC
Headless .hwp text extraction gate; returns available:false until a verified non-COM reader lands.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The only behavioral trait disclosed is that it returns available:false until a non-COM reader is available. No annotations exist, so the description carries the full burden, but it fails to describe side effects, output format, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is efficient in length, but its cryptic phrasing ('gate', 'lands') wastes the short space. It could be clearer without adding length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description lacks essential context about the tool's current state (unavailable), what the output will contain, and any usage constraints. It feels incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for the 'path' parameter, and the tool description provides no additional meaning about what path refers to (e.g., file path, URL, etc.). This is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'text extraction' for .hwp files, which clarifies the resource and action. However, the 'gate' and 'returns available:false' caveat muddles whether the tool is currently functional, reducing clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings like 'extract_text'. The description does not mention prerequisites, alternatives, or appropriate contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_textC
Extract plain document text from an HWPX file (returns a string).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description is the sole source of behavioral information. It only states the return type (string) but omits details such as whether the operation is read-only, error conditions, encoding, or requirements for the input file.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly communicates the core functionality. There is no unnecessary information, achieving maximum conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one required parameter and an output schema, the description is too sparse. It lacks details on error handling, return format, and any prerequisites (e.g., file existence). While the tool is straightforward, completeness would require at least a note on limitations or typical use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'path' is not described beyond what the schema provides. The description hints that the path should point to an HWPX file, but no additional semantic information (e.g., format, allowed locations) is given. Since schema coverage is 0%, the description adds minimal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Extract'), the resource ('HWPX file'), and the output ('returns a string'). However, it does not differentiate from the sibling 'extract_hwp_text', which likely serves a similar purpose for HWP files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., extract_hwp_text for HWP files, or other text extraction tools). There is no mention of appropriate contexts or restrictions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fill_formC
Fill detected named/label fields and write a NEW byte-preserving HWPX copy (file mode).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| backup | No | ||
| values | Yes | ||
| dry_run | No | ||
| auto_fit | No | ||
| mask_pii | No | ||
| out_path | Yes | ||
| respect_bullets | No | ||
| normalize_spacing | No | ||
| checkbox_exclusive | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It mentions 'byte-preserving' and 'new copy', implying non-destructive behavior, but does not disclose what happens on error, how parameters like dry_run, auto_fit, etc. affect behavior, or any side effects beyond file creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundancy. It is concise, but it sacrifices clarity on parameter semantics and usage context. Could be expanded slightly without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, zero schema descriptions, no annotations, and many sibling tools, the description is severely incomplete. It does not explain what the tool returns (though output schema exists), how the boolean flags interact, or how to handle edge cases like missing fields or invalid paths.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only implicitly covers path, values, and out_path. The other 7 parameters (backup, dry_run, auto_fit, mask_pii, respect_bullets, normalize_spacing, checkbox_exclusive) are not explained at all. The description fails to add semantic meaning beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool fills detected named/label fields and writes a new byte-preserving HWPX copy. This clearly identifies the primary action and output, but it could elaborate on what 'fill' means or how fields are detected. It distinguishes from many sibling tools that perform other edits, but not from similar ones like apply_addressed_edits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, limitations, or scenarios where other sibling tools would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_cell_by_labelC
Locate the input cell next to or under a label cell in tables.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| label | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The term 'locate' implies a read operation, but no explicit behavioral details are given (e.g., returns cell address or content, requires cell to exist). Since no annotations are provided, the description should compensate but does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at one sentence, but this brevity sacrifices clarity and completeness. It's not well-structured beyond being short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description doesn't indicate what the tool returns (cell location? content?). For a relatively simple tool, it still lacks essential context for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds no meaning beyond the parameter names. It does not explain what 'path' (table path?) or 'label' (text of label cell?) represent, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'locate' and the resource 'input cell next to or under a label cell in tables'. It is specific enough to distinguish from many sibling tools, though it doesn't explicitly differentiate from similar find operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_table_map or find_text. No conditions or prerequisites are mentioned, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_textA
Count plain-text matches per cell in FILE MODE; for edit-ready structural addresses use find_text_occurrences.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates the tool operates in FILE MODE and counts matches, implying read-only behavior, but does not explicitly state side effects, permissions, or error conditions. Partial disclosure but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the purpose. No wasted words; every part is meaningful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists (not shown), so return values are presumably covered. However, the description lacks explanation of 'FILE MODE' and how the count is returned (per cell or aggregate). With two parameters and no schema descriptions, the context feels slightly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It implicitly references path and query but adds minimal detail beyond the parameter names. No format, constraints, or usage examples are provided, leaving ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool counts plain-text matches per cell in FILE MODE, using a specific verb and resource. It also distinguishes from the sibling tool find_text_occurrences by specifying the use case for structural addresses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use this tool (FILE MODE) and when to use an alternative (find_text_occurrences for structural addresses), providing direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_text_occurrencesA
Locate repeated visible text in FILE MODE so edits can be scoped, not guessed.
Named fields / {} placeholders are NOT required. Use this when the
template is driven by repeated ▶, repeated ○○○, ordinary table
cells, or paragraphs and you need structural addresses instead of a
blind text replace. Repeated text must NOT be globally replaced without
explicit scope; use the returned occurrences to choose exact structural
targets, then send ONE addressed edits array (gather all values first)
to preview_addressed_edits + apply_addressed_edits(session_id, out_path),
or complete_addressed_template. Addressed file mode produces a
completed copy and does not mutate the already-open same Hangul window.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description explains the tool's mode ('FILE MODE'), states it does not mutate the already-open Hangul window, and clarifies it returns structural addresses for subsequent editing tools. It implies it is a read-only find operation, which is transparent. Would benefit from explicitly stating it does not modify files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with a clear lead sentence, then context, usage conditions, and workflow. Every sentence adds value, though it is slightly verbose with the inline references to other tools. Could be tightened, but overall efficient for the information provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (so return details are covered elsewhere), the description adequately covers what the tool does, when to use it, and how it fits into a larger workflow. It mentions 'structural addresses' but does not detail their format; however, the agent can infer from the output schema. The description is complete for deciding to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not elaborate on the 'path' and 'query' parameters. While 'path' is implied by 'FILE MODE' and 'query' as the text to find, there is no detail on expected formats, valid values, or how to specify the query (e.g., plain text vs. regex). This leaves the agent guessing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Locate repeated visible text' and specifies the resource ('FILE MODE') and goal ('so edits can be scoped, not guessed'). It distinguishes from blind text replace and aligns with sibling tools like 'find_text' by emphasizing structural addresses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes when to use (template with repeated markers, table cells), what not to do (global replace without scope), and the complete workflow: get occurrences, then use 'preview_addressed_edits' and 'apply_addressed_edits' or 'complete_addressed_template'. Provides clear alternatives and next steps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_document_outlineC
Return the heading/outline structure of an HWPX document.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not state whether the operation is read-only, requires the document to be open, or has any side effects. Only the output type is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single uninformative sentence. While it is concise, it lacks essential details about parameters and behavior, making it inadequately specified rather than efficiently written.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description does not explain what the outline structure contains (e.g., hierarchy levels, headings) or any prerequisites. It fails to provide sufficient context for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the single parameter 'path' (e.g., file system path or URL). It adds no value beyond the schema's type declaration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the heading/outline structure of an HWPX document, specifying the verb 'Return' and the resource. It distinguishes itself from sibling tools like 'extract_hwp_text' or 'get_paragraph_map' by focusing on structure rather than content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'extract_text' or 'get_paragraph_map'. There is no mention of prerequisites, exclusions, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_paragraph_mapA
List body paragraphs with stable bN addresses for addressed edits.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It indicates a listing operation (non-destructive), but does not explicitly state read-only behavior, permissions, or other side effects. The description is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the key action. However, it could be slightly expanded to clarify the parameter without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown), the description does not need to detail return values. However, the lack of parameter explanation and usage guidance means the description is only moderately complete for such a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema provides no explanation for the single parameter 'path'. The description does not clarify what 'path' refers to (file path, document path, etc.), leaving the agent to infer. The description adds no semantic value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and the resource ('body paragraphs'), along with a specific qualifier ('stable bN addresses for addressed edits'). This distinguishes it from sibling tools like get_table_map and get_document_outline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when needing body paragraphs for addressed edits, but it does not explicitly state when to use it over alternatives, nor does it provide any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_table_mapC
Map tables with per-cell text and merge structure for label-to-cell reasoning.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as whether the tool is read-only, performance considerations, or error conditions. The description carries the full burden for transparency but fails to add meaningful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at one sentence, but it sacrifices essential details. It is front-loaded but not sufficiently informative for an agent to use it correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter and an output schema (unseen), the description partially covers the purpose. However, it lacks completeness in explaining the input, output, and use case. The sibling context shows many related tools, and the description does not differentiate enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'path' has 0% schema description coverage, and the tool description does not explain what 'path' refers to (e.g., file path, document ID). With no parameter documentation elsewhere, the description should clarify the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies mapping tables with per-cell text and merge structure, and connects to label-to-cell reasoning. It clearly distinguishes the tool from siblings like add_table or merge_table_cells, but could be more explicit about the output format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_paragraph_map or other table-related tools. With many sibling tools, the lack of usage context is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hwp_statusA
Live COM availability probe — side-effect-free, never launches Hangul.
connected:false is the NORMAL idle state (no attach is attempted here);
instances lists automation-visible Hangul instances in the COM ROT.
Attach by exact path first (open_in_hwp(path)) or use the saved-.hwpx
current-document flow (resolve -> preview -> apply).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explicitly states the tool is 'side-effect-free, never launches Hangul', and explains that 'connected:false is the NORMAL idle state' with no attach attempted. This is sufficient transparency for a probe tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief (three sentences) and front-loaded with the core purpose. Every sentence adds essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, side-effect-free probe) and the presence of an output schema (context signals), the description covers the core behavior and output meaning adequately. However, it could have elaborated slightly more on the output schema fields if needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (0 params, 100% schema coverage), so baseline is 4. The description adds value by explaining the output fields (connected, instances) and their meanings, which aids understanding beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a 'Live COM availability probe' that is 'side-effect-free, never launches Hangul'. It distinguishes from sibling tools by explaining that it does not attach or open documents, and instead advises to use open_in_hwp(path) for attaching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (to check COM status) and when to use alternatives ('Attach by exact path first (open_in_hwp(path))'). It does not explicitly state exclusions but provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hwpx_to_htmlC
Convert HWPX to HTML via python-hwpx (delegate extra required).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only mentions the method (python-hwpx) but omits behavioral traits like formatting preservation, limitations, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence front-loads the core information; however, it is slightly too brief missing some context that could be added without verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description lacks essential details about input constraints, output format, error scenarios, and prerequisites beyond a vague mention of delegate extra. The presence of an output schema is noted but not exploited.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has one parameter 'path' with no description; tool description adds no additional meaning to the parameter, leaving its semantics undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (convert) and resources (HWPX to HTML), and notes the use of python-hwpx delegation. This distinguishes it from sibling tools like hwpx_to_markdown.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only minimal guidance is given via 'delegate extra required', implying a prerequisite but no explicit comparison to alternatives or when to use this tool versus similar ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hwpx_to_markdownC
Convert HWPX to Markdown via python-hwpx (delegate).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Only mentions delegation to python-hwpx, but no details about error handling, permissions, or side effects. Without annotations, more behavioral context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. However, it could include more context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter, the description is too terse. Lacks details on path format (local/remote), expected file extensions, and output characteristics even though output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain the 'path' parameter beyond its name. Schema coverage is 0%, so description must compensate but fails to add any meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool converts HWPX to Markdown, using a specific library. Distinguishes from sibling tool hwpx_to_html which converts to a different format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like hwpx_to_html. No when-to-use or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_editable_regionsA
Inspect FILE-MODE structural edit targets before any addressed/template write.
Named fields / {} placeholders are NOT required. Use these structural
addresses for repeated ▶, repeated ○○○, ordinary table cells, and
paragraphs when the template lacks reliable field names. Never treat
repeated visible text as a global-replace target without explicit scope;
send ONE addressed edits array (gather all values first) to
preview_addressed_edits + apply_addressed_edits(session_id, out_path),
or complete_addressed_template. The output is a completed copy and
does not mutate the already-open same Hangul window — open it afterward.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| compact | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description reveals that the tool operates on file-mode, does not mutate the open window, and produces a completed copy. This is fairly transparent, though it could explicitly state read-only behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and provides essential usage guidance. It is not overly verbose, though the dense technical information could be slightly restructured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and many sibling tools, the description covers purpose, usage context, behavioral notes, and relationship to other tools. Output schema handles return values, so no further detail needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description should explain parameters. However, it does not mention 'path' or 'compact'. While 'path' is implied by file-mode context, 'compact' remains unexplained, leaving the agent guessing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool inspects file-mode structural edit targets before writes. It distinguishes itself from siblings like apply_addressed_edits and complete_addressed_template by specifying its role as a preparatory step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use structural addresses (for repeated elements, table cells, etc.) and warns against global replace without scope. It also names the appropriate follow-up tools (preview_addressed_edits, apply_addressed_edits, complete_addressed_template).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_stylesC
List charPr/paraPr style definitions available in the document.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states the tool lists style definitions, but omits critical details such as whether it is read-only, what happens if no document is open, or the structure of the output. The abbreviations 'charPr' and 'paraPr' may be unclear to some agents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no superfluous words, efficiently communicating the core purpose. However, it is too terse and could benefit from additional context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having one parameter and an output schema (not detailed here), the description lacks essential context such as the return format, error scenarios, and the exact meaning of 'charPr/paraPr'. The agent cannot reliably determine how to use the tool or interpret its results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for the 'path' parameter, and the tool description does not explain its meaning or format. The parameter's role is completely unspecified, forcing the agent to guess whether it refers to a document file path or an internal path to styles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'List' and resource 'charPr/paraPr style definitions', clearly distinguishing it from sibling tools which focus on other operations. The phrase 'in the document' implies the current open document, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it specify prerequisites or conditions. It simply states the action without any contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_delete_table_rowsA
Delete table ROWS in the OPEN Hangul window (live-only; Windows + Hangul).
Offline row delete is unsafe (cellAddr/rowCnt/merge recompute), so this
drives the open window — Hangul's TableSubtractRow recomputes merges.
rows are tN.rN addresses (global table number, 0-based row), e.g.
["t2.r3"]. Plans purely first (fails closed on nested tables / unknown
rows / duplicates), deletes bottom-up, and never opens/saves/closes the
document. Cold start can take tens of seconds.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| rows | Yes | ||
| visible | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description fully discloses behavior: uses Hangul's TableSubtractRow, recomputes merges, plans purely first, fails closed, deletes bottom-up, cold start delay. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise with effective structure, front-loads purpose. Every sentence adds value, though a bit dense. Could be slightly more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and lack of annotations, the description covers purpose, constraints, behavior, and main parameter. Lacks explanation for path and visible, but output schema exists and cold start note is helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Rows parameter is well explained with format and example. Path and visible parameters are not described. Schema coverage is 0%, so description partially compensates but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly specifies that the tool deletes table rows in the open Hangul window, live-only, with address format 'tN.rN'. Distinguishes from offline deletion which is unsafe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Describes when to use (live-only, open window) and when not (offline unsafe). Notes failure modes (nested tables, unknown rows, duplicates) and that it never opens/saves/closes the document. No explicit alternative tool names, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mail_mergeC
Generate one output per record from a template using the OWN byte-preserving fill engine.
| Name | Required | Description | Default |
|---|---|---|---|
| out_dir | Yes | ||
| records | Yes | ||
| mask_pii | No | ||
| template_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description mentions a proprietary engine but does not disclose side effects, read/write nature, permissions, or limitations. For a generation tool, it is likely non-destructive but unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, which is concise but lacks structure. It covers the core action and engine but omits important details about parameters and usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool generates multiple outputs from a template, the description is too minimal. There is no mention of error conditions, output format, or prerequisites. The presence of an output schema mitigates some need for describing return values, but other aspects are lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the four parameters (template_path, records, out_dir, mask_pii). It mentions 'template' and 'records' in context but adds no semantic detail beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates output per record from a template using a proprietary 'OWN byte-preserving fill engine'. The verb 'generate' and resource 'template' are specific, but the output type is not explicitly stated, though context from sibling tools suggests document outputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like fill_form, plan_template_completion, or verify_fill. No mention of prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merge_table_cellsB
Merge a table cell range (e.g. A1:B2) and write a NEW file (delegate).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| out_path | Yes | ||
| cell_range | Yes | ||
| table_index | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only mentions 'delegate' and creating a new file, but does not disclose side effects (e.g., whether the original file is modified), error conditions, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, front-loaded with the core action. Every word earns its place, and the parenthetical '(delegate)' adds key context without extra verbiage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema (not shown), the description omits critical context: whether the merge overwrites if 'out_path' exists, whether the original file is unchanged, and what 'delegate' entails. For a tool with 4 required params and a potentially destructive operation, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only gives an example for 'cell_range' (A1:B2) and mentions 'path' and 'out_path' implicitly, but does not explain 'table_index' or the meaning of 'delegate'. The schema itself provides no parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('merge a table cell range') and the output ('write a NEW file'), providing a specific verb and resource. It stands out from siblings like 'split_merged_cell' by emphasizing the file creation aspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Siblings like 'set_cell_shading' or 'split_merged_cell' exist, but the description does not explain when merging is appropriate or mention any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_in_hwpA
Open a .hwp/.hwpx file in a CONTROLLABLE Hangul window.
Hand-opened windows are not a safe exact-path live-attach anchor on their own. Use this tool to attach by exact path in the automation-visible window first, then apply_to_open_hwp / apply_small_live_label_cells. Leaves the window open; saves and closes nothing. If Hangul is not running, this launches it — cold start can take tens of seconds (see cold_start/elapsed_seconds). timeout_seconds > 0 runs in an isolated worker and returns timeout_outcome_unknown (state may be partially applied).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| visible | No | ||
| timeout_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavioral traits: it leaves the window open, saves and closes nothing, and cold start can take tens of seconds. It also explains timeout behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise and front-loaded with the main action. It includes necessary details without being overly verbose, though it could be slightly more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides key context such as workflow, cold start, and timeout handling. With an output schema present, return value explanation is less critical. Some details about parameters are missing, but overall it is fairly complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the timeout_seconds parameter and its effect (isolated worker, unknown outcome), but does not explain the path or visible parameters beyond implying file type. Given 0% schema coverage, more parameter details would be beneficial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool opens a .hwp/.hwpx file in a controllable Hangul window. It distinguishes itself by mentioning that hand-opened windows are not safe anchors and that this tool should be used first for attaching by exact path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: to attach by exact path before using apply_to_open_hwp or apply_small_live_label_cells. It also mentions cold start delays and timeout behavior, although it does not explicitly state when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_template_completionA
Plan whole-template completion in FILE MODE and return addressable edit targets.
Named fields / {} placeholders are NOT required: repeated ▶,
repeated ○○○, ordinary table cells, and paragraphs are addressed
structurally. Never replace repeated text without explicit scope. Gather
ALL values first, then hand one complete addressed edits array to
complete_addressed_template instead of one tool call per cell — start in
file mode instead of mixing live field writes. The completed copy
does not mutate the already-open same Hangul window — open it afterward.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| compact | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool plans edits and does not mutate the open Hangul window ('The completed copy does not mutate the already-open same Hangul window — open it afterward'). It also specifies structural addressing. Slightly missing details on error behavior, but overall transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main action but includes multiple clauses and instructions that could be condensed. It is functional but not maximally concise, e.g., the sentence about named fields could be shorter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and the presence of an output schema, the description provides workflow context (gather values first, use complete_addressed_template) and clarifies structural addressing. It lacks detail on the compact parameter, but overall is sufficiently complete for planning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It mentions 'file mode' but does not describe the 'path' parameter (file path) or the 'compact' boolean parameter. This leaves the agent guessing about their meaning and impact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool plans whole-template completion in file mode and returns addressable edit targets. It uses specific verbs ('plan', 'return') and distinguishes from siblings like 'complete_addressed_template' by specifying the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly guides when to use this tool: 'start in file mode instead of mixing live field writes' and 'Gather ALL values first, then hand one complete addressed edits array to complete_addressed_template'. It also forbids replacing repeated text without explicit scope, providing clear do's and don'ts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_addressed_editsA
Resolve STRUCTURAL addressed edits in file mode without writing output.
edits do NOT require {} named fields. Use structural addresses for
repeated "▶", repeated "○○○", ordinary table cells, and paragraphs.
Repeated text must never be treated as a global replace; require
explicit scope in the address. For whole-template completion, gather or
generate all values first and prepare one edits array here instead of
one tool call per cell. Start in file mode from the beginning instead
of mixing live field writes and then falling back to file mode. Preview
here first to confirm each edit resolves to the intended local target and
returns the reviewed session that apply_addressed_edits(session_id, out_path)
writes later as a completed copy. This addressed file-mode route does not mutate the already-open same Hangul window; open the verified output afterward if live review is needed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| edits | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool does not mutate the open Hangul window, returns a session for later application, and explains behavior of edits (no named fields, structural addresses, no global replace). No annotations exist, so description covers the burden fully.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph with multiple instructions. While it front-loads the main action, it could be more concise and better structured (e.g., bullet points) given the volume of detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers use cases, behavioral constraints, integration with apply_addressed_edits, and mentions output session. With an output schema present, return values need not be explained. Leaves minor ambiguity about session_id but is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Though top-level parameters lack descriptions (0% coverage per context), the description adds semantic value by explaining how to structure edits (no named fields, use structural addresses) and providing target format examples. This supplements the schema's nested descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it resolves structural addressed edits in file mode without writing output, distinguishing it from the sibling tool apply_addressed_edits that writes later. It specifies the purpose as previewing to confirm edits resolve to intended targets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: use for whole-template completion, gather values first, start in file mode, preview before applying. Also warns against mixing live field writes and falling back, and names the alternative apply_addressed_edits for writing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_assessmentA
Validate and preview three deterministic assessment variants without writing files.
| Name | Required | Description | Default |
|---|---|---|---|
| spec | Yes | ||
| template_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It states no files are written, indicating read-only behavior, but lacks details on side effects, error handling, or what happens on validation failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is front-loaded and compact, effectively communicating the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fails to explain the concept of 'three deterministic assessment variants' or what the output schema contains. For a tool with no annotations and an output schema, more context about return values and variant behavior is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the parameters. It does not explain 'spec' (an object with additional properties) or 'template_path' (a string), leaving the agent without context for correct parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates and previews three deterministic assessment variants without writing files. It uses specific verbs and resources, and distinguishes from siblings like 'apply_assessment' by emphasizing the non-write preview nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for preview before actual application, and the 'without writing files' constraint guides when to use it. However, it does not explicitly state when not to use it or mention alternatives like 'apply_assessment'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_batch_replaceA
Preview multiple find->replace pairs as one edit session without writing output.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| replacements | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description explicitly states 'without writing output', clearly indicating a non-destructive preview operation. Additional behavioral details (e.g., output format) are not included but are covered by the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, concise sentence that effectively communicates the tool's purpose without extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description adequately covers the preview nature. However, no prerequisites or constraints are mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description adds context that replacements are find->replace pairs and path is the document path, but with 0% schema coverage, more detailed parameter descriptions would be helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool previews multiple find->replace pairs as one edit session without writing output, distinguishing it from sibling tools like batch_replace and preview_search_and_replace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for previewing batch changes before execution but does not explicitly state when to use it versus alternatives or document prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_current_hwp_documentA
Preview the saved current .hwpx document pathlessly without writing it.
Pass values for small live fills OR edits (structural addressed edits)
for the complete_and_load route — never both. complete_and_load writes the
whole-template completion to a NEW verified file (optional output_path,
.hwpx, never the original) that apply opens as a new tab; the original
document stays untouched and the new path is always returned. Saved .hwp
returns preview_requires_hwpx; success returns the authoritative
preview_token for apply_to_current_hwp_document.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | auto | |
| edits | No | ||
| values | No | ||
| output_path | No | ||
| candidate_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fully discloses behavioral traits: it creates a new file (never touching the original), returns a preview_token, and requires .hwpx format. It also explains the effect of each route and the outcome for unsupported .hwp files. This provides complete transparency beyond what the schema offers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured. It starts with the core purpose, then breaks into two clearly separated usage paths, mentions the error case, and ends with the success result. Every sentence adds necessary detail without redundancy, achieving high density of useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown but indicated), the description does not need to detail return values. It covers the preview workflow, parameter constraints, error conditions, and the overall process (new file, untouched original). This provides a complete understanding for a preview tool with moderate complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning to key parameters (`values`, `edits`, `output_path`) by explaining their purpose, constraints (mutual exclusivity), and behavior (e.g., new file creation). However, it does not mention `mode` or `candidate_id`. Given the 0% schema coverage, the description compensates well for the most critical parameters but omits two.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Preview... pathlessly without writing it'), specifies the two routes (values vs. edits) with a clear distinction, and contrasts with likely siblings like apply_to_current_hwp_document by mentioning it returns a preview_token for later application. The verb 'Preview' is specific and accurately describes the output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to use either `values` or `edits`, never both, and explains the complete_and_load route. It also specifies that .hwp files are not supported. However, it does not directly compare against sibling preview tools (e.g., preview_addressed_edits) or state when to use this tool over them. The guidance is clear for the two main parameters but lacks broader context against alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_search_and_replaceB
Preview a text replace as an edit session (entry/count audit) without writing output.
| Name | Required | Description | Default |
|---|---|---|---|
| find | Yes | ||
| path | Yes | ||
| replace | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It states 'without writing output' but does not explain what the preview returns (e.g., count, list of changes) or whether an edit session is created. The lack of detail on side effects and output structure is a gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that efficiently conveys the core purpose. It front-loads the key information. However, it is slightly too brief given the lack of parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 params, no schema descriptions, output schema exists but not detailed), the description is adequate but incomplete. It covers the main idea but omits parameter semantics and output details. The existence of an output schema reduces the need to explain return values, but behavioral context is still lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description should add meaning to parameters. It does not describe any parameters at all. While names like path, find, replace are somewhat self-explanatory, no additional context (e.g., path format, regex support, case sensitivity) is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: previewing a text replace as an edit session without writing output. It distinguishes from sibling tools like search_and_replace (which writes output) and preview_batch_replace. However, it could be more explicit about what the preview returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when the agent wants to see the impact of a replace before committing, but it does not explicitly mention alternatives or when not to use this tool. No guidance on when to prefer this over search_and_replace or preview_batch_replace.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_small_live_label_cellsA
Preview small live label:value cell fills WITHOUT COM or ROT access.
This is not whole-template completion. For a full lesson plan or other structured form, use compact inspect then complete_addressed_template(path, edits, out_path) or the complete_and_load route — the verified NEW file opens as a new tab and the original stays untouched (plain open_in_hwp may reuse the active tab). This pure preview does not probe COM ROT or attach candidates; exact-path attachment is deferred to apply_small_live_label_cells.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| values | Yes | ||
| timeout_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool requires no COM or ROT access, is a pure preview without probing or attaching candidates, and defers attachment. This provides good behavioral context, though it does not detail the output or potential side effects beyond being a preview.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the primary purpose, and each sentence adds distinct value (behavior, alternatives, constraints). No redundant or unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers purpose, usage, and behavioral transparency well for a preview tool, it omits parameter guidance and does not hint at the output structure (though output schema exists). Given the complexity of the input (3 params, nested object) and low schema coverage, the description should provide more parameter context to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. It does not explain the required parameters 'path' and 'values' (an object of key-value pairs) or the optional 'timeout_seconds'. The description only discusses tool behavior, leaving parameter semantics entirely to the schema with no added context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Preview small live label:value cell fills' and explicitly distinguishes from whole-template completion and sibling tools like complete_addressed_template and apply_small_live_label_cells. The purpose is immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use and when-not-to-use guidance: it contrasts with full template completion, recommends complete_addressed_template for structured forms, and notes that exact-path attachment is deferred to apply_small_live_label_cells. Alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_previewC
Render page PNG previews via python-hwpx + Playwright/Chromium (render extra).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| width | No | ||
| format | No | png | |
| height | No | ||
| out_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only mentions technical stack (python-hwpx, Playwright/Chromium). It fails to disclose behavioral traits like read-only nature, prerequisites, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is concise and front-loaded, but it lacks critical details. It earns its place but could be more informative without significant length increase.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, return values are covered, but the description fails to explain parameter meanings and behavioral context, leaving the tool poorly specified for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description provides no information about any of the 5 parameters. The agent must rely solely on parameter names, which is insufficient for correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool renders page PNG previews using python-hwpx and Playwright/Chromium. However, it does not differentiate from other preview tools among siblings, such as preview_addressed_edits, which could cause confusion for an AI agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus other preview or rendering tools. The description lacks context for when to prefer this over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_current_hwp_documentA
Resolve the current/open Hangul document inventory without writing anything.
This is the side-effect-free entry point for the pathless current-document UX. It never auto-selects around an unsupported, unsaved, or unprovable current document.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clearly states the tool is side-effect-free, never writes, and never auto-selects, and explains its handling of unsupported/unsaved/unprovable documents. However, it does not detail potential error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core purpose, and every sentence adds unique value about behavior and limitations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description sufficiently covers its purpose, side-effect-free nature, and handling of edge cases. It could mention expected output format, but the output schema fulfills that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. According to guidelines, 0 parameters yields a baseline of 4, which is appropriate since the description does not need to add parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it resolves the current document inventory without writing, making the verb-resource relationship clear. It distinguishes itself from sibling tools that modify the document by emphasizing side-effect-free behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for getting document info without side effects, but it does not explicitly state when to use it versus similar tools like preview_current_hwp_document, nor does it provide exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_edit_sessionB
Restore the pre-apply snapshot of an applied edit session (file-mode undo).
| Name | Required | Description | Default |
|---|---|---|---|
| journal_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It discloses that the tool performs a restore/undo operation, but lacks details on side effects, permissions, or what happens to current state beyond restoration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with no extraneous information. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Has output schema so return values are covered, but missing parameter description and limited behavioral context leaves gaps for a tool with one required parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and description does not mention journal_path or explain its meaning. The parameter's purpose must be inferred from the tool name and description, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Restore the pre-apply snapshot of an applied edit session' with parenthetical 'file-mode undo', specifying the verb and resource well. Distinguishes from siblings like apply_edit_session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives guidance. The phrase 'file-mode undo' implies usage after applying an edit session, but does not exclude other scenarios or compare to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_piiB
Scan extracted document text for Korean PII patterns and return masked findings.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes returning masked findings but does not explain masking behavior, pattern coverage, or whether it modifies the document. No annotations to supplement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise, but lacks necessary detail for the parameter and behavioral context. Could be more informative without losing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter and an output schema (unseen), the description should clarify the input and output format. It mentions 'masked findings' but does not describe the structure. Incomplete for a scanning tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no description for 'path'). The description does not explain what 'path' refers to (file path, document ID, extracted text location).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action (scan), resource (extracted document text), and specific patterns (Korean PII). It distinguishes from siblings like extract_text and find_text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use or avoid this tool. No prerequisites mentioned, such as needing pre-extracted text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_and_replaceA
One-shot text replace written to a NEW file; fails closed on 2+ matches unless scope='all'.
| Name | Required | Description | Default |
|---|---|---|---|
| find | Yes | ||
| path | Yes | ||
| scope | No | ||
| replace | Yes | ||
| out_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool writes to a new file (non-destructive) and fails on multiple matches unless scope='all'. This covers key error behavior and safety, but omits return value or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded with the core action. It could be slightly improved by separating the failure condition, but it is efficient with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters with no schema descriptions, no annotations, and an output schema (unprovided), the description is incomplete. It fails to explain parameter syntax, return format, or usage context beyond the failure condition, leaving significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description adds no explicit parameter definitions. It only mentions 'scope' in a condition. For 5 parameters (find, path, replace, out_path, scope), the AI must infer meaning from names alone, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'One-shot text replace written to a NEW file', specifying the action (replace text) and output destination (new file). This distinguishes it from siblings like batch_replace (likely in-place) and find_text (no replace).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via the failure condition 'fails closed on 2+ matches unless scope="all"', guiding when to set scope. However, it does not explicitly compare to alternatives or state when to use this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_cell_shadingC
Set a table cell fill color and write a NEW file (delegate).
| Name | Required | Description | Default |
|---|---|---|---|
| col | Yes | ||
| row | Yes | ||
| path | Yes | ||
| out_path | Yes | ||
| fill_color | Yes | ||
| table_index | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behaviors. It correctly notes that a new file is created (non-destructive to original), but omits details on side effects, permissions, or what happens to the original file.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence), which is good, but the term 'delegate' is jargon and unclear. It could be more helpful while staying succinct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 required parameters and no schema descriptions, the description is insufficient. It does not explain output schema, color format, or cell identification, leaving many gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%. The description hints at some parameters (cell, color, file output) but does not explicitly map to the 6 required parameters or explain their formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (set fill color) and resource (table cell), and notes that it produces a new file. However, it does not distinguish this tool from siblings like 'set_columns' or 'merge_table_cells'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The term 'delegate' is ambiguous and does not clarify context of use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_columnsC
Set the body column count and write a NEW file (delegate).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| out_path | Yes | ||
| col_count | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must cover behavior. It mentions writing a NEW file but does not state whether the original is modified, if file overwriting occurs, or any safety considerations. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise single sentence, but underspecified. It is front-loaded but does not contain enough information to be fully effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 parameters, no annotations, and no schema descriptions, the description is far from complete. No mention of file types, return values, or what 'delegate' means. An output schema exists but is not provided here, so cannot compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It only hints at col_count. The required parameters 'path' and 'out_path' are not described at all. No explanation of what they represent (input file? output location?).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states clearly that the tool sets body column count and writes a new file. It distinguishes from sibling tools that deal with headers, footers, margins, etc. The term '(delegate)' is unclear but does not obscure the main purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like set_page_size or set_header. Implied usage from name and description, but no explicit conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_headerC
Set the page header text (page_type: BOTH/EVEN/ODD as accepted by python-hwpx) to a NEW file.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| text | Yes | ||
| out_path | Yes | ||
| page_type | No | BOTH |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full burden. It indicates a write operation ('set') and mentions creating a new file, but lacks details on side effects (e.g., overwriting, behavior with existing headers) or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, making it concise but lacking structure. It front-loads the action, but brevity comes at the cost of missing important details that could be organized in a clearer way.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, no annotations, no schema descriptions), the description is too incomplete. It does not cover all parameters or explain the output (though output schema exists, we don't see it). The tool's behavior around file creation and header setting needs more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only adds meaning for the page_type parameter (mentioning accepted values) but provides no explanation for path, text, or out_path. This is insufficient for a 4-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set') and the resource ('page header text'), and specifies the page_type values and that it operates on a new file. It differentiates from sibling tools like set_footer, but could be more explicit about the file-creation behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like set_footer or when not to use it. The description does not mention prerequisites or context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_page_marginsB
Set page margins (left/right/top/bottom/header/footer/gutter, HWPUNIT) to a NEW file (delegate).
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | ||
| left | No | ||
| path | Yes | ||
| right | No | ||
| bottom | No | ||
| footer | No | ||
| gutter | No | ||
| header | No | ||
| out_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates a new file is created, but does not explain the behavior of default values (-1), what happens if parameters are omitted, or any side effects. Missing crucial behavioral traits beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, efficiently stating the action and scope. However, the term 'delegate' may be unclear, and a slightly more structured presentation could improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, no annotations, and an output schema present, the description is incomplete. It does not explain default behavior, return values, error conditions, or unit details. More context is needed for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, requiring the description to compensate. It lists the margin parameters and mentions HWPUNIT but does not explain the meaning of -1 defaults, the unit HWPUNIT, or the roles of path and out_path. Adds little value beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set' and resource 'page margins', lists specific margins (left, right, top, bottom, header, footer, gutter), and distinguishes it from siblings by noting it applies to a NEW file (delegate), which differentiates it from tools that modify existing documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating a new file with margins set, but does not explicitly state when not to use it or provide alternatives. Sibling tools like apply_to_open_hwp suggest other use cases, but no guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_page_numberB
Place page numbers (position e.g. BOTTOM_CENTER, as accepted by python-hwpx) to a NEW file.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| out_path | Yes | ||
| position | No | BOTTOM_CENTER |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It indicates the tool writes to a new file but does not clarify whether the original file is modified, what permissions are needed, or any side effects. The description is too brief to fully inform the agent about the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that packs essential information: the action, a parameter hint, and the output context. It is concise, though the meaning of 'new file' could be made more explicit at the start.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, and the description, while missing details about valid positions and whether it applies to all pages, provides enough context for basic understanding. An output schema exists, so return values need not be described. However, the lack of behavioral details and incomplete parameter info reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no descriptions, leaving all three parameters (path, out_path, position) with minimal documentation. The description adds value for the position parameter by giving an example ('BOTTOM_CENTER') and mentioning the python-hwpx library, but does not explain path or out_path. This fails to compensate for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Place page numbers') and the target resource ('to a NEW file'). It provides a specific example of the position parameter, aiding understanding. It distinguishes itself from sibling tools like set_header or set_footer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating 'to a NEW file,' suggesting it creates a new output rather than modifying the input. However, it lacks explicit guidance on when to use this tool vs alternatives like set_header or set_footer, and does not mention prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_page_sizeC
Set paper width/height/orientation (e.g. PORTRAIT/LANDSCAPE) and write a NEW file (delegate).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| width | No | ||
| height | No | ||
| out_path | Yes | ||
| orientation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavior. It correctly says 'write a NEW file' indicating it doesn't modify input, but omits details like overwrite policy, required permissions, or side effects. 'Delegate' is unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loads purpose. However, the term '(delegate)' is unnecessary and harms clarity. Could be improved by removing the jargon.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters and no schema descriptions, the tool needs more context. Output schema exists but not described. For a tool that writes files, missing info on return values and error handling is a gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and description barely adds value. It mentions width, height, orientation but not path or out_path. Default values are not explained, and no constraints or valid values are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it sets paper width, height, or orientation and writes a new file. The verb 'set' and target 'paper size/orientation' are specific. However, the term '(delegate)' is ambiguous and may confuse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The mention of 'write a NEW file' hints at behavior but does not compare with sibling tools that might modify in-place or have different scopes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
split_merged_cellC
Split a previously merged table cell apart and write a NEW file (delegate).
| Name | Required | Description | Default |
|---|---|---|---|
| col | Yes | ||
| row | Yes | ||
| path | Yes | ||
| out_path | Yes | ||
| table_index | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden but only mentions splitting and writing a new file; it does not disclose whether the original file is modified, authentication needs, or other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but under-specifies crucial details; it could be expanded without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 required parameters, no schema descriptions, and no annotations, the description is insufficient for an agent to use the tool correctly; it lacks prerequisites, behavior details, and parameter explanations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description adds no parameter meaning beyond the field names, leaving the agent to infer the roles of path, table_index, row, col, and out_path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'split' and the resource 'previously merged table cell', and distinguishes it from siblings like 'merge_table_cells' by mentioning it writes a new file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for splitting merged cells, but lacks explicit guidance on when to use or not use this tool over alternatives, such as the inverse operation merge_table_cells.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_hwpxC
Validate HWPX package integrity (zip layout, mimetype, XML declarations); ok mirrors valid.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It mentions checking integrity but does not disclose error handling, side effects, or return behavior beyond cryptic 'ok mirrors valid'. Read/write nature is implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, concise. However, 'ok mirrors valid' is unclear jargon that may confuse agents. Could be restructured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema, return values need not be described. The tool has one parameter and no annotations; description is minimal but covers the core action. Lacks detail on integrity definition and output format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% meaning no parameter descriptions. The tool description does not explain what 'path' refers to (e.g., file system path, HWPX file). The only parameter is minimally documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Validate' and the resource 'HWPX package integrity', specifying sub-checks (zip layout, mimetype, XML declarations). It distinguishes itself from sibling tools, none of which perform validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not mention prerequisites, typical use cases, or what to do if validation fails.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_fillB
Verify expected label:value pairs actually appear in the (filled) document.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| expected | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It states verification of appearance but omits details on behavior on mismatch (e.g., return value, error handling) or whether it modifies state. The read-only nature is implied but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with action and object, no unnecessary words. Efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown), the description's brevity may be acceptable for simple verification. However, without annotations or usage guidance, the agent lacks full context for correct invocation among many siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains the 'expected' parameter as 'label:value pairs', but leaves 'path' entirely undefined. Adds some semantic value but incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Verify') and clearly identifies the resource ('expected label:value pairs' in the filled document). It conveys the core function but does not explicitly differentiate from sibling tools like verify_targets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With many related siblings (fill_form, verify_targets, etc.), the agent lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_targetsA
Verify expected_text at exact structural targets (tN.rN.cN[.pN] / bN) after edits.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| expected_targets | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It states the purpose but does not explain side effects, return values, or error handling. The token 'after edits' hints at context but lacks detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence front-loads verb and resource, zero filler. Information density is high for its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values may be covered there. However, with 2 params and no annotations, the description lacks details on parameter roles and expected usage. It is minimally complete but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It adds meaning by describing target syntax beyond schema, but does not explain 'path' or 'expected_targets' in detail. Baseline for 0% coverage is higher, but partial compensation earns a 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('verify') and resource ('expected_text at exact structural targets'), and provides the target syntax (tN.rN.cN[.pN] / bN). This distinguishes it from sibling tools like 'verify_fill' or 'find_text'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after edits ('after edits') but does not explicitly state when to use this tool versus alternatives like preview_batch_replace or verify_fill. No exclusions or when-not guidance are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.6.0- Added
apply_assessment - Changed
complete_addressed_template6 fields changed- added
Input schema / $defs / AddressedEdit / properties / boldAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional. true = bold the edited text (문항/제목), false = force non-bold (선지), omit = keep existing weight. Applies to every non-empty text run in the value, including multiline clones.", + "title": "Bold" +} - changed
Input schema / $defs / AddressedEdit / properties / operation / anyOfPrevious value: -[ - { - "enum": [ - "replace_text", - "preserve_marker_replace_tail" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "replace_text", + "preserve_marker_replace_tail", + "insert_blank_before", + "insert_blank_after", + "delete_paragraph", + "delete_table", + "delete_row" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / AddressedEdit / properties / operation / descriptionPrevious value: -"Usually omit; defaults to replace_text. preserve_marker_replace_tail keeps the ▶/-/□/○ marker (bN and tN.rN.cN.pN)."New value: +"Usually omit; defaults to replace_text. preserve_marker_replace_tail keeps the ▶/-/□/○ marker. insert_blank_before/after add an empty spacer paragraph around a bN body paragraph; delete_paragraph removes a bN body paragraph; delete_table removes a whole tN table (e.g. an unused <보기> box); delete_row is live-only (open Hangul window)." - added
Input schema / $defs / AddressedEdit / properties / value / defaultAdded value: +"" - changed
Input schema / $defs / AddressedEdit / properties / value / descriptionPrevious value: -"Replacement text; use \\n to split into consecutive paragraphs (개조식 lines)"New value: +"Replacement text; use \\n to split into consecutive paragraphs (개조식 lines). Ignored by delete_paragraph / insert_blank_* ops." - changed
Input schema / $defs / AddressedEdit / requiredPrevious value: -[ - "target", - "value" -]New value: +[ + "target" +]
- Added
live_delete_table_rows - Changed
preview_addressed_edits6 fields changed- added
Input schema / $defs / AddressedEdit / properties / boldAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional. true = bold the edited text (문항/제목), false = force non-bold (선지), omit = keep existing weight. Applies to every non-empty text run in the value, including multiline clones.", + "title": "Bold" +} - changed
Input schema / $defs / AddressedEdit / properties / operation / anyOfPrevious value: -[ - { - "enum": [ - "replace_text", - "preserve_marker_replace_tail" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "replace_text", + "preserve_marker_replace_tail", + "insert_blank_before", + "insert_blank_after", + "delete_paragraph", + "delete_table", + "delete_row" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / AddressedEdit / properties / operation / descriptionPrevious value: -"Usually omit; defaults to replace_text. preserve_marker_replace_tail keeps the ▶/-/□/○ marker (bN and tN.rN.cN.pN)."New value: +"Usually omit; defaults to replace_text. preserve_marker_replace_tail keeps the ▶/-/□/○ marker. insert_blank_before/after add an empty spacer paragraph around a bN body paragraph; delete_paragraph removes a bN body paragraph; delete_table removes a whole tN table (e.g. an unused <보기> box); delete_row is live-only (open Hangul window)." - added
Input schema / $defs / AddressedEdit / properties / value / defaultAdded value: +"" - changed
Input schema / $defs / AddressedEdit / properties / value / descriptionPrevious value: -"Replacement text; use \\n to split into consecutive paragraphs (개조식 lines)"New value: +"Replacement text; use \\n to split into consecutive paragraphs (개조식 lines). Ignored by delete_paragraph / insert_blank_* ops." - changed
Input schema / $defs / AddressedEdit / requiredPrevious value: -[ - "target", - "value" -]New value: +[ + "target" +]
- Added
preview_assessment - Changed
preview_current_hwp_document6 fields changed- added
Input schema / $defs / AddressedEdit / properties / boldAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional. true = bold the edited text (문항/제목), false = force non-bold (선지), omit = keep existing weight. Applies to every non-empty text run in the value, including multiline clones.", + "title": "Bold" +} - changed
Input schema / $defs / AddressedEdit / properties / operation / anyOfPrevious value: -[ - { - "enum": [ - "replace_text", - "preserve_marker_replace_tail" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "replace_text", + "preserve_marker_replace_tail", + "insert_blank_before", + "insert_blank_after", + "delete_paragraph", + "delete_table", + "delete_row" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / $defs / AddressedEdit / properties / operation / descriptionPrevious value: -"Usually omit; defaults to replace_text. preserve_marker_replace_tail keeps the ▶/-/□/○ marker (bN and tN.rN.cN.pN)."New value: +"Usually omit; defaults to replace_text. preserve_marker_replace_tail keeps the ▶/-/□/○ marker. insert_blank_before/after add an empty spacer paragraph around a bN body paragraph; delete_paragraph removes a bN body paragraph; delete_table removes a whole tN table (e.g. an unused <보기> box); delete_row is live-only (open Hangul window)." - added
Input schema / $defs / AddressedEdit / properties / value / defaultAdded value: +"" - changed
Input schema / $defs / AddressedEdit / properties / value / descriptionPrevious value: -"Replacement text; use \\n to split into consecutive paragraphs (개조식 lines)"New value: +"Replacement text; use \\n to split into consecutive paragraphs (개조식 lines). Ignored by delete_paragraph / insert_blank_* ops." - changed
Input schema / $defs / AddressedEdit / requiredPrevious value: -[ - "target", - "value" -]New value: +[ + "target" +]
3 tool updates
v0.5.1- Changed
complete_addressed_template2 fields changed- changed
Input schema / $defs / AddressedEdit / properties / operation / descriptionPrevious value: -"Usually omit; defaults to replace_text. preserve_marker_replace_tail is only for bN."New value: +"Usually omit; defaults to replace_text. preserve_marker_replace_tail keeps the ▶/-/□/○ marker (bN and tN.rN.cN.pN)." - changed
Input schema / $defs / AddressedEdit / properties / value / descriptionPrevious value: -"Complete replacement text for this exact target"New value: +"Replacement text; use \\n to split into consecutive paragraphs (개조식 lines)"
- Changed
preview_addressed_edits2 fields changed- changed
Input schema / $defs / AddressedEdit / properties / operation / descriptionPrevious value: -"Usually omit; defaults to replace_text. preserve_marker_replace_tail is only for bN."New value: +"Usually omit; defaults to replace_text. preserve_marker_replace_tail keeps the ▶/-/□/○ marker (bN and tN.rN.cN.pN)." - changed
Input schema / $defs / AddressedEdit / properties / value / descriptionPrevious value: -"Complete replacement text for this exact target"New value: +"Replacement text; use \\n to split into consecutive paragraphs (개조식 lines)"
- Changed
preview_current_hwp_document2 fields changed- changed
Input schema / $defs / AddressedEdit / properties / operation / descriptionPrevious value: -"Usually omit; defaults to replace_text. preserve_marker_replace_tail is only for bN."New value: +"Usually omit; defaults to replace_text. preserve_marker_replace_tail keeps the ▶/-/□/○ marker (bN and tN.rN.cN.pN)." - changed
Input schema / $defs / AddressedEdit / properties / value / descriptionPrevious value: -"Complete replacement text for this exact target"New value: +"Replacement text; use \\n to split into consecutive paragraphs (개조식 lines)"
1 tool update
v0.4.0- Changed
preview_current_hwp_document8 fields changed- added
Input schema / $defsAdded value: +{ + "AddressedEdit": { + "description": "One structural edit. Kind and operation are inferred when omitted.", + "properties": { + "expected_text": { + "default": "", + "description": "Optional current text copied from inspection; mismatch fails closed", + "title": "Expected Text", + "type": "string" + }, + "kind": { + "anyOf": [ + { + "enum": [ + "cell", + "paragraph", + "body_para" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Usually omit; inferred from target", + "title": "Kind" + }, + "operation": { + "anyOf": [ + { + "enum": [ + "replace_text", + "preserve_marker_replace_tail" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Usually omit; defaults to replace_text. preserve_marker_replace_tail is only for bN.", + "title": "Operation" + }, + "target": { + "description": "Exact target from inspect_editable_regions: tN.rN.cN for a whole cell, tN.rN.cN.pN for one paragraph inside a cell, or bN for a body paragraph. Do not pass sN.pN.occN occurrence IDs here.", + "examples": [ + "t2.r4.c2.p1" + ], + "title": "Target", + "type": "string" + }, + "value": { + "description": "Complete replacement text for this exact target", + "title": "Value", + "type": "string" + } + }, + "required": [ + "target", + "value" + ], + "title": "AddressedEdit", + "type": "object" + } +} - added
Input schema / properties / editsAdded value: +{ + "anyOf": [ + { + "items": { + "$ref": "#/$defs/AddressedEdit" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Edits" +} - added
Input schema / properties / output_pathAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Output Path" +} - removed
Input schema / properties / values / additionalPropertiesRemoved value: -{ - "type": "string" -} - added
Input schema / properties / values / anyOfAdded value: +[ + { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } +] - added
Input schema / properties / values / defaultAdded value: +null - removed
Input schema / properties / values / typeRemoved value: -"object" - removed
Input schema / requiredRemoved value: -[ - "values" -]
6 tool updates
v0.3.3- Removed
apply_cells_to_open_hwp - Added
apply_small_live_label_cells - Changed
complete_addressed_template2 fields changed- added
Input schema / $defsAdded value: +{ + "AddressedEdit": { + "description": "One structural edit. Kind and operation are inferred when omitted.", + "properties": { + "expected_text": { + "default": "", + "description": "Optional current text copied from inspection; mismatch fails closed", + "title": "Expected Text", + "type": "string" + }, + "kind": { + "anyOf": [ + { + "enum": [ + "cell", + "paragraph", + "body_para" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Usually omit; inferred from target", + "title": "Kind" + }, + "operation": { + "anyOf": [ + { + "enum": [ + "replace_text", + "preserve_marker_replace_tail" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Usually omit; defaults to replace_text. preserve_marker_replace_tail is only for bN.", + "title": "Operation" + }, + "target": { + "description": "Exact target from inspect_editable_regions: tN.rN.cN for a whole cell, tN.rN.cN.pN for one paragraph inside a cell, or bN for a body paragraph. Do not pass sN.pN.occN occurrence IDs here.", + "examples": [ + "t2.r4.c2.p1" + ], + "title": "Target", + "type": "string" + }, + "value": { + "description": "Complete replacement text for this exact target", + "title": "Value", + "type": "string" + } + }, + "required": [ + "target", + "value" + ], + "title": "AddressedEdit", + "type": "object" + } +} - added
Input schema / properties / edits / items / $refAdded value: +"#/$defs/AddressedEdit"
- Changed
preview_addressed_edits2 fields changed- added
Input schema / $defsAdded value: +{ + "AddressedEdit": { + "description": "One structural edit. Kind and operation are inferred when omitted.", + "properties": { + "expected_text": { + "default": "", + "description": "Optional current text copied from inspection; mismatch fails closed", + "title": "Expected Text", + "type": "string" + }, + "kind": { + "anyOf": [ + { + "enum": [ + "cell", + "paragraph", + "body_para" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Usually omit; inferred from target", + "title": "Kind" + }, + "operation": { + "anyOf": [ + { + "enum": [ + "replace_text", + "preserve_marker_replace_tail" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Usually omit; defaults to replace_text. preserve_marker_replace_tail is only for bN.", + "title": "Operation" + }, + "target": { + "description": "Exact target from inspect_editable_regions: tN.rN.cN for a whole cell, tN.rN.cN.pN for one paragraph inside a cell, or bN for a body paragraph. Do not pass sN.pN.occN occurrence IDs here.", + "examples": [ + "t2.r4.c2.p1" + ], + "title": "Target", + "type": "string" + }, + "value": { + "description": "Complete replacement text for this exact target", + "title": "Value", + "type": "string" + } + }, + "required": [ + "target", + "value" + ], + "title": "AddressedEdit", + "type": "object" + } +} - added
Input schema / properties / edits / items / $refAdded value: +"#/$defs/AddressedEdit"
- Removed
preview_cells_to_open_hwp - Added
preview_small_live_label_cells
55 tool updates
v0.2.1- Added
add_image - Added
add_paragraph - Added
add_table - Added
analyze_formfit - Added
apply_addressed_edits - Added
apply_cells_to_open_hwp - Added
apply_edit_session - Added
apply_to_current_hwp_document - Changed
apply_to_open_hwp1 field changed- added
Input schema / properties / pathAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Path" +}
- Added
batch_replace - Added
complete_addressed_template - Added
create_document_from_blocks - Added
create_document_from_spec - Added
create_hwpx_from_markdown - Added
create_hwpx_table - Added
create_official_document - Added
describe_capabilities - Added
emphasize_text - Added
extract_hwp_text - Changed
fill_form5 fields changed- added
Input schema / properties / auto_fitAdded value: +{ + "default": false, + "title": "Auto Fit", + "type": "boolean" +} - added
Input schema / properties / backupAdded value: +{ + "default": false, + "title": "Backup", + "type": "boolean" +} - added
Input schema / properties / checkbox_exclusiveAdded value: +{ + "default": true, + "title": "Checkbox Exclusive", + "type": "boolean" +} - added
Input schema / properties / dry_runAdded value: +{ + "default": false, + "title": "Dry Run", + "type": "boolean" +} - added
Input schema / properties / mask_piiAdded value: +{ + "default": false, + "title": "Mask Pii", + "type": "boolean" +}
- Added
find_cell_by_label - Added
find_text - Added
find_text_occurrences - Added
get_document_outline - Added
get_paragraph_map - Added
get_table_map - Added
hwpx_to_html - Added
hwpx_to_markdown - Added
inspect_editable_regions - Added
list_styles - Added
mail_merge - Added
merge_table_cells - Added
open_in_hwp - Added
plan_template_completion - Added
preview_addressed_edits - Added
preview_batch_replace - Added
preview_cells_to_open_hwp - Added
preview_current_hwp_document - Added
preview_search_and_replace - Added
render_preview - Added
resolve_current_hwp_document - Added
restore_edit_session - Added
scan_pii - Added
search_and_replace - Added
set_cell_shading - Added
set_columns - Added
set_footer - Added
set_header - Added
set_page_margins - Added
set_page_number - Added
set_page_size - Added
split_merged_cell - Added
validate_hwpx - Added
verify_fill - Added
verify_targets
6 tool updates
v0.1.0- First observed
analyze_form - First observed
apply_to_open_hwp - First observed
detect_format - First observed
extract_text - First observed
fill_form - First observed
hwp_status
TDQS
Many tools have overlapping functions (e.g., multiple apply, preview, and find tools). Despite detailed descriptions, the sheer number of similar-purpose tools increases the chance of agent misselection.
Tool names follow a consistent verb_noun pattern in snake_case, but some names are overly long (e.g., apply_to_current_hwp_document) and a few lack verbs (hwp_status). Overall pattern is predictable.
59 tools is high for a single server. Many tools could be consolidated (e.g., multiple set_* tools, preview/apply variants). The count feels slightly excessive for the scope.
Covers a broad range: reading, writing, formatting, conversion, validation, and analysis. Missing delete/reorder operations, but template-filling workflow is well-supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI-powered PDF tools: fill forms via natural language
- iFillPDFOAuthcom.ifillpdf
Detect fillable fields in any PDF with AI, scans included, then fill and sign it.
자동화하여 HWPX 문서의 로딩, 탐색, 편집, 검증을 한 번에 처리합니다. 문단·표·주석 추가, 텍스트 일괄 치환, 머리말·꼬리말 설정 등 반복 작업을 신속히 수행합니다. 기…
Create real Word .docx files from your AI chat: proposals, quotes, contracts, statements of work.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI models to read, create, and edit Korean HWPX documents with advanced support for tables, paragraphs, styles, and images. It features enhanced stability through atomic file writing and smart layout recalculation to prevent document corruption.32MIT
- AlicenseAqualityAmaintenanceAn MCP server for reading, writing, and managing Korean Hangul Word Processor (HWP/HWPX) files. It allows users to extract content, fill templates, and create new documents directly through AI assistants.3420084MIT
- AlicenseNot gradedqualityDmaintenanceEnables secure local proofreading of Korean official documents (.hwpx/.hwp) using 3-layer AI correction for spelling, grammar, and official document style. Provides 50 administrative document templates for generating standardized official correspondence without cloud dependencies or API keys.23MIT
- FlicenseAqualityDmaintenanceEnables filling uploaded document templates (DOCX/HWP/HWPX/PDF) with chatbot-generated content while preserving original formatting, tables, and images, and saving as files.41-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pblsketch/Hangeul-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server