Skip to main content
Glama

hwpx-mcp

한글 문서(.hwpx)를 만들고 고치고, .hwp를 읽는 MCP 서버입니다. Claude 데스크톱이나 VS Code(Claude Code)에 명령 하나를 등록하면 그 PC에서 바로 씁니다. 네트워크나 다른 컴퓨터는 필요 없습니다.

  • 문서 읽기·쓰기: 한글 프로그램 없이 됩니다(Windows·macOS·Linux).

  • PDF 변환·쪽 그림·.hwp → .hwpx 변환·실시간 보기 창: 그 PC에 깔린 한글을 씁니다(Windows).

할 수 있는 일

분야

도구

문서

document(새로 만들기·열기·저장·닫기), read(개요·본문·서식·찾기), xml

글과 서식

text, char_format, para_format, style, numbering

쪽

page(용지·여백·단·머리말/꼬리말·쪽 번호·구역)

개체

table(만들기·병합·나누기·셀 서식·계산식·표 마당), image, shape, chart, equation(한글 수식·LaTeX)

참조·양식

note(각주·미주), link(하이퍼링크·책갈피·상호 참조), toc(차례), field(누름틀), memo, track(변경 추적)

한글 엔진

render(PDF·쪽 그림·검사·쪽 번호 갱신·보기 창), convert(.hwp → .hwpx)

도구 22개의 인자와 동작은 docs/api-spec.md에 있습니다. 파일 경로 인자는 절대 경로로 씁니다.

Related MCP server: HWPX MCP Server

설치

  1. uv를 한 번 깝니다. Python은 uv가 알아서 받습니다.

    winget install astral-sh.uv

    macOS·Linux는 curl -LsSf https://astral.sh/uv/install.sh | sh.

  2. 쓰는 클라이언트에 등록합니다. 처음 실행할 때 서버가 자동으로 받아 깔립니다(Windows에서는 pywin32 포함).

    Claude 데스크톱: 설정 → 개발자 → 설정 편집으로 claude_desktop_config.json을 열어 아래를 넣고 앱을 다시 켭니다.

    {
      "mcpServers": {
        "hwpx": {
          "command": "uvx",
          "args": ["--from", "git+https://github.com/jun-Bridge/hwpx-mcp", "hwpx-mcp"]
        }
      }
    }

    Claude Code(VS Code 확장·터미널):

    claude mcp add hwpx -- uvx --from git+https://github.com/jun-Bridge/hwpx-mcp hwpx-mcp
  3. Claude에게 "바탕화면에 보고서.hwpx를 만들고 제목과 표 하나를 넣어 줘"처럼 말하면 됩니다.

한글 엔진

서버는 시작할 때 엔진을 고릅니다.

서버가 도는 PC

엔진

한글이 깔린 Windows

로컬: 그 PC의 한글을 씁니다

그 밖(macOS·Linux·한글 없는 Windows)

없음: render·convert만 E_ENGINE_UNAVAILABLE, 나머지는 모두 됩니다

한글이 깔려 있는데 엔진이 없다고 나오면 한글 COM 등록이 안 된 것입니다. 관리자 명령 프롬프트에서 Hwp.exe /regserver를 한 번 실행합니다. 한글이 파일을 열 때마다 접근 허용 창을 띄우면 windows/README.md의 보안 모듈 등록을 따릅니다.

설정(선택)

전부 비워 둬도 됩니다. 쓰려면 클라이언트 설정의 env에 넣습니다.

이름

뜻

기본값

HWPX_TRACK_AUTHOR

변경 추적 작성자

Claude

HWPX_DEFAULT_PROFILE

새 문서의 한글 버전 프로필

들어 있는 기본 프로필

HWPX_TABLE_PRESET_DIR

표 마당(.tbl) 폴더

설치된 한글의 폴더

"hwpx": {"command": "uvx", "args": ["--from", "git+https://github.com/jun-Bridge/hwpx-mcp", "hwpx-mcp"],
         "env": {"HWPX_TRACK_AUTHOR": "홍길동"}}

.hwp 읽기

.hwp(HWP 5.0)는 열어 읽기만 합니다. 글·문단·표·글자와 문단 모양·그림·도형·수식·각주·머리말·필드·메모·변경 추적을 읽습니다. .hwp 안의 OLE 차트는 아직 옮기지 않아 경고로 알립니다. 암호·배포용·DRM 문서는 열지 않습니다(E_UNSUPPORTED). 고쳐서 저장하려면 convert로 .hwpx를 만들어 엽니다(한글 필요).

본 제품은 한글과컴퓨터의 한/글 문서 파일(.hwp) 공개 문서를 참고하여 개발하였습니다.

개발

uv run --extra dev pytest -q

설계는 docs/architecture.md, 요구사항은 docs/requirements.md, 서식 매핑 근거는 docs/mapping-sources.md. 정답 파일 생성·게이트 검수 스크립트(한글이 깔린 Windows에서)는 windows/.

라이선스

MIT. LICENSE

Available Tools

22 tools
char_formatB

글자 모양(글꼴·크기·색·진하게·밑줄 …). action: set(range, props); highlight(range, color?); reset(range); copy(from, to)

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoLocator(글 범위: s0/p3:5-12, s0/p2..s0/p9, find:"…")
fromNoLocator(글 범위: s0/p3:5-12, s0/p2..s0/p9, find:"…")
colorNo
propsNoCharProps (길이는 숫자 또는 '12pt'·'20mm', 색은 '#RRGGBB')
rangeNoLocator(글 범위: s0/p3:5-12, s0/p2..s0/p9, find:"…")
actionYes
handleNodocument.new/open이 준 handle

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses the four operations and their argument shapes, but says nothing about what reset actually clears, whether highlight is additive or replacing, permission needs, or side effects. For a mutation tool this is a substantial gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense, front-loaded clauses: the resource definition first, then the per-action signatures. No filler, and the most routing-relevant information (action names and args) is compact and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with a nested CharProps object, no output schema, and no annotations, the description covers the operations but leaves the props vocabulary open-ended ('…') and omits return/effect semantics. Adequate but not 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 71%, and the description adds meaningful value by mapping each action to its required parameters, which the schema alone does not express for a discriminated action enum. It does not elaborate on CharProps contents, but the action-parameter mapping is the key missing semantics and is supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the resource precisely (character appearance: font, size, color, bold, underline) and implies a clear contrast with the sibling para_format. The action signatures (set/highlight/reset/copy) reinforce what the tool operates on, though it never explicitly states the character-level vs paragraph-level distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The action signatures act as an implicit routing guide by showing which parameters each action takes (set→range+props, highlight→range+color?, reset→range, copy→from+to). However, there is no guidance on when to choose this tool over para_format or style, nor any stated prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chartC

차트. action: insert(at, type, data, style?, stacked?, percent?, three_d?, frame?, margin?, caption?); update(target, type?, data?, style?, stacked?, percent?, three_d?, frame?, margin?, caption?); delete(target)

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoLocator(한 점: s0/p3:5, doc:end, before:#p4 …)
dataNo
typeNo
frameNochart.frame 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
styleNo
actionYes
handleNodocument.new/open이 준 handle
marginNochart.margin 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
targetNoLocator(노드 하나: #tbl7, s0/p3)
captionNo
percentNo
stackedNo
three_dNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: no side effects, no indication that insert mutates a live document, no note that delete is destructive/irreversible, no permission or handle prerequisites. Only the verb choice hints at mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is compact and front-loads the resource name, with zero filler words. But the density tips into under-specification: a single run-on signature line is the entire description, leaving no room for the operational context a 13-parameter tool needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter tool with nested objects, no output schema, and no annotations, the description is far too thin. It omits data format expectations, the meaning of handle, return behavior, and error/edge conditions, so an agent has significant gaps to fill by guesswork.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 38% (at, frame, margin, handle, target are documented in the schema), so the description is expected to compensate. It lists parameter names grouped by action—adding the useful action-scoping the schema lacks—but gives no meaning for data, style, caption, the boolean flags, or the type enum, and never explains handle, at, or target semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with only the resource name ("차트" / chart) and then enumerates insert/update/delete actions, so the operation set is conveyed but there is no prose stating what the tool does or what a 'chart' object is. It is essentially a signature restatement rather than a purpose statement, and it does not differentiate itself from siblings like table or shape beyond the noun.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The action-scoped parameter lists implicitly tell the agent which arguments each action needs (insert→at, update/delete→target), which is real routing guidance absent from the schema. However, there is no explicit when-to-use, no statement of preconditions (e.g. requiring an open document handle), and no mention of alternatives among the 22 sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convertC

.hwp → .hwpx 변환(한글 엔진). action: hwp_to_hwpx(path, out_path?, overwrite?)

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo읽을 파일의 절대 경로
actionYes
out_pathNo쓸 파일의 절대 경로
overwriteNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It mentions the Hangul engine, hinting at a runtime dependency, but says nothing about whether the target file is overwritten by default, what happens when out_path is omitted, failure behavior for unsupported files, or permissions. For a file-writing mutation tool this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short and front-loaded: the conversion pair comes first, the call shape second. Nothing is wasted, though the extreme terseness borders on under-specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter conversion tool with no annotations and no output schema, the description omits default behavior, output location semantics, and error handling. An agent could invoke it, but not confidently predict the side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (path and out_path documented, action and overwrite bare), so the description must compensate somewhat. The inline signature usefully marks out_path and overwrite as optional, but adds no semantics for overwrite's default or out_path's fallback behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (convert) and both resources (.hwp → .hwpx), plus the engine used (한글 엔진), so an agent knows exactly what operation this performs. It does not explicitly distinguish itself from the many sibling tools, but the format-pair makes its niche clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the siblings (read, document, render, etc.) or when conversion is unnecessary. The only usage cue is the inline call signature, which shows how to call it, not when.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

documentA

문서 열기·새로 만들기·저장·닫기·정보, 여러 편집을 한 트랜잭션으로 묶기(batch). action: new(target_version?); open(path); save(force?); save_as(path, overwrite?); close(discard?); revert(); list(); batch(calls); info(); meta(set?)

ParametersJSON Schema
NameRequiredDescriptionDefault
setNoDocMeta (길이는 숫자 또는 '12pt'·'20mm', 색은 '#RRGGBB')
pathNo읽을 파일의 절대 경로
callsNo[{tool, action, ...인자}] 한 트랜잭션으로 차례로 실행
forceNo
actionYes
handleNodocument.new/open이 준 handle
discardNo
overwriteNo
target_versionNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does disclose one real behavioral trait — that batch() runs the listed calls sequentially inside a single transaction — and the force/discard/overwrite parentheticals hint at consequence-bearing flags. It says nothing about handle lifetime, permission requirements, error behavior, or what happens to unsaved edits on close, which is a substantial gap for a heavily mutating tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense line: purpose summary first, then an action-by-action signature list. Nothing is wasted, though the packed semicolon syntax is terse and could be hard to scan for a nine-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given nine parameters, nested call objects, no annotations, and no output schema, the description covers purpose and per-action arguments but omits the handle lifecycle that ties this tool to every sibling, plus any indication of what list()/info() return. Adequate as a routing label, incomplete as an operating manual.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 44%, but the description compensates by mapping parameters to the specific action that accepts them (new(target_version), open(path), save(force), save_as(path, overwrite), close(discard), batch(calls), meta(set)), a relationship the flat schema does not express. Only the handle parameter is left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names concrete verbs (open, create, save, close, info) on the document resource and enumerates all ten actions of a multiplexer tool, so an agent knows this is the document-lifecycle entry point. It implicitly separates itself from sibling content tools (page, table, image, style), though it never states that relationship explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Listing each action with its parameter signature implies when each applies (e.g. open pairs with path, save_as with path/overwrite), but there is no explicit ordering guidance such as 'open/new first to obtain a handle, then pass it to editing tools', and no when-not-to-use or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

equationB

수식(한글 수식 스크립트 또는 LaTeX). action: insert(at, script?, latex?, display?, number?, size?, color?, font?, baseline?, frame?, margin?, caption?); update(target, script?, latex?, size?, color?, font?, baseline?, frame?, margin?, caption?); delete(target); convert_latex(latex)

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoLocator(한 점: s0/p3:5, doc:end, before:#p4 …)
fontNo
sizeNo길이(숫자는 mm, 또는 '20mm'·'12pt')
colorNo
frameNoequation.frame 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
latexNo
actionYes
handleNodocument.new/open이 준 handle
marginNoequation.margin 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
numberNo
scriptNo
targetNoLocator(노드 하나: #tbl7, s0/p3)
captionNo
displayNo
baselineNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It adds real behavioral value by mapping each action to its accepted parameters, which the schema does not express. But it is silent on destructive/reversible behavior of delete, permissions, or side effects on the document — significant omissions for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense line, front-loaded with the resource identity followed by the action/parameter map. No wasted prose, though the parameter enumeration is compact to the point of being a schema restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter tool with nested objects and no output schema or annotations, the action-to-parameter mapping covers the most important gap (which params apply where). But key semantics for script/latex/display and mutation behavior remain undocumented, so it is only adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 40% across 15 parameters, so the description must compensate. It does group parameters under the action that accepts them, adding meaning beyond the flat schema, but it explains no parameter semantics (script vs latex, display, number, baseline) and leaves the nested frame/margin objects to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (수식/equation, in Hangul script or LaTeX form) and enumerates the four distinct operations (insert, update, delete, convert_latex), so an agent can tell what the tool does without opening the schema. It does not differentiate itself from siblings like image, shape, or chart, which also create document objects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Listing the parameter set per action (e.g., update takes target; delete takes target; convert_latex takes latex) is genuinely useful routing guidance for choosing an action. However, it gives no when-to-use vs when-not guidance, no prerequisites, and no indication of when to prefer script vs latex input.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fieldC

누름틀·셀 필드(양식 채우기). action: list(); get(name); set(value, name?, target?); set_many(values); insert(at, name, guide?, memo?, editable_in_form?); remove(name, keep_text?)

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoLocator(한 점: s0/p3:5, doc:end, before:#p4 …)
memoNo
nameNo
guideNo
valueNo
actionYes
handleNodocument.new/open이 준 handle
targetNoLocator(노드 하나: #tbl7, s0/p3)
valuesNo
keep_textNo
editable_in_formNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it largely does not. It never states side effects (e.g. whether remove deletes the field permanently – only the keep_text parameter hints at it), whether edits are saved, what authorization or handle context is needed, or what non-read actions return.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely compact and front-loaded: one short resource clause followed by the action menu. The dense signature notation is efficient, though its terse style makes it slightly harder to parse than plain prose would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-action, 11-parameter dispatcher with no annotations and no output schema, the description covers the action surface and per-action parameter mapping, which is the core need. It still omits return behavior, error cases, and the meaning of several parameters, so it is adequate but not full.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 27% across 11 parameters, so the description must compensate and partly does: it maps each parameter to its action and marks optionality with '?' (e.g. set(value, name?, target?), remove(name, keep_text?)). However, it never explains what values, guide, or memo actually contain, leaving key semantics undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (누름틀·셀 필드, i.e. form/click-here fields) and its purpose (양식 채우기, form filling), then enumerates the six actions. That is enough to know roughly what the tool does, but it is essentially an API signature dump, and nothing distinguishes it from siblings like table, text, or document beyond the resource noun.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives, no prerequisites, and no exclusions. The action list hints at per-action usage (get by name, set by value), but that is schema-level enumeration rather than selection guidance for the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

imageC

그림. action: insert(at, path?, data?, frame?, margin?, inner_margin?, caption?, crop?, effect?, brightness?, contrast?, alpha?, flip?, rotation?, line?, effects?); update(target, reset_size?, frame?, margin?, inner_margin?, caption?, crop?, effect?, brightness?, contrast?, alpha?, flip?, rotation?, line?, effects?); replace(target, path?, data?); delete(target); extract(target, out_path)

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoLocator(한 점: s0/p3:5, doc:end, before:#p4 …)
cropNoimage.crop 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
dataNobase64로 쓴 바이트
flipNoimage.flip 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
lineNoimage.line 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
pathNo읽을 파일의 절대 경로
alphaNo
frameNoimage.frame 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
actionYes
effectNo
handleNodocument.new/open이 준 handle
marginNoimage.margin 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
targetNoLocator(노드 하나: #tbl7, s0/p3)
captionNo
effectsNoimage.effects 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
contrastNo
out_pathNo쓸 파일의 절대 경로
rotationNo
brightnessNo
reset_sizeNo
inner_marginNoimage.inner_margin 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')

TDQS

C2.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing: no permission requirements, no note that delete/replace are destructive or irreversible, no mention of what happens to the target on overwrite, and no return-value description for extract. It is a bare signature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is compact with no filler sentences, but the single run-on signature string is hard to parse and largely duplicates information already in the input schema, so its density buys less than it costs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 21-parameter tool with no annotations and no output schema, the definition omits too much: the 'handle' parameter tying it to document.new/open is unexplained, extract's output/return is not described, and no action's side effects are covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 62% schema coverage and 21 parameters, the schema alone does not say which parameters belong to which action. The description's per-action parameter lists (e.g. insert takes at/path/data/frame..., replace takes only target/path/data) add real conditional-applicability meaning the flat schema cannot express. It stops short of explaining individual parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with '그림' (picture) and enumerates five action verbs (insert/update/replace/delete/extract) against the 'image' resource, so the general domain is clear. However it is essentially a signature dump that restates the schema rather than stating purpose, and it draws no boundary against siblings like shape, chart, or table.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose insert vs update vs replace, no prerequisites (e.g. that update/delete need an existing target), and no mention of alternative tools. The action list implies usage but never states a condition for selecting one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memoC

메모. action: add(range, text, author?); update(target, text); delete(target); list()

ParametersJSON Schema
NameRequiredDescriptionDefault
textNo
rangeNoLocator(글 범위: s0/p3:5-12, s0/p2..s0/p9, find:"…")
actionYes
authorNo
handleNodocument.new/open이 준 handle
targetNo

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden, yet it only implies mutation via add/update/delete. It omits whether operations require specific permissions or an open document handle, what delete destroys, and whether results are returned or confirmed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is very compact and front-loads the resource name before the action breakdown, which is efficient. The telegraphic action-signature style is dense and borderline under-specified rather than wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter tool with no output schema, no annotations, and two undocumented parameters, the description is not complete enough. It covers the action-to-parameter mapping but omits handle usage, target/range semantics, and any return or error behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33%, so the description must compensate, and it does add value by mapping which parameters each action consumes (add: range/text/author, update: target/text, delete: target). But the 6th parameter 'handle' is never mentioned in the description, and 'target' semantics are left entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (메모/memo) and enumerates the four supported actions (add/update/delete/list) with their parameter signatures, so the general purpose is inferable. However it never states what a 'memo' actually attaches to or does within the document, and it gives no contrast with the closely-named sibling 'note', so the boundary remains ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use, when-not-to-use, or alternative-selection guidance. The action signatures imply usage but nothing tells the agent when memo is preferable to the sibling 'note' tool or what prerequisite state (open document) is required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

noteB

각주·미주. action: insert(at, kind, text); update(target, text); delete(target); settings(section, kind, format?, start?, restart?, placement?, beneath_text?, separator?, separator_length?, spacing?, prefix?, suffix?, superscript?)

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoLocator(한 점: s0/p3:5, doc:end, before:#p4 …)
kindNo
textNo
startNo
actionYes
formatNo
handleNodocument.new/open이 준 handle
prefixNo
suffixNo
targetNoLocator(노드 하나: #tbl7, s0/p3)
restartNo
sectionNo구역("s0" 또는 0)
spacingNo{between, below_line, above_line} 길이(숫자는 mm)
placementNo
separatorNoLine (길이는 숫자 또는 '12pt'·'20mm', 색은 '#RRGGBB')
superscriptNo
beneath_textNo
separator_lengthNo길이(숫자는 mm, 또는 '20mm'·'12pt')

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full behavioral burden. It conveys that insert/update/delete/settings are mutations, but says nothing about permissions, the role of the handle parameter in targeting a document, side effects on numbering/references, or what happens on failure. For an unannotated mutation tool this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely compact and well front-loaded: resource name first, then a clean action-to-parameter list. It wastes no words, though the telegram-style syntax sacrifices readability and completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter mutation tool with no output schema and no annotations, the description is too thin. It omits how the target document is identified (handle), whether any of the many settings fields are mutually exclusive, and any indication of success/failure behavior, leaving the agent to infer far too much.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 39% across 18 flat parameters, so the description needs to compensate. It does add real value by grouping parameters under each action (e.g. settings takes format/start/restart/placement/separator/spacing/prefix/suffix), which the schema does not express, but it never explains the meaning or expected format of any individual parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the resource (각주·미주 = footnote/endnote) and enumerates the four operations, so an agent immediately knows this tool manages footnote/endnote objects and is distinct from siblings like memo, field, or toc. It is a terse noun-plus-signatures form rather than a full verb+resource sentence, which keeps it just short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

By mapping each action to its parameter set (insert uses at/kind/text, update uses target/text, etc.) it implies which action to pick for a given intent, but it never states when to choose footnote vs endnote or when this tool is preferable to memo or field. Usage is inferable rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

numberingC

문단 번호·글머리표·개요 번호. action: define(kind, levels?, bullet?); apply(range, kind, def?, level?); level(range, set?, delta?); restart(at, start); remove(range); update(def, levels?, bullet?)

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoLocator(한 점: s0/p3:5, doc:end, before:#p4 …)
defNo
setNo
kindNo
deltaNo
levelNo
rangeNoLocator(글 범위: s0/p3:5-12, s0/p2..s0/p9, find:"…")
startNo
actionYes
bulletNo
handleNodocument.new/open이 준 handle
levelsNoLevels (길이는 숫자 또는 '12pt'·'20mm', 색은 '#RRGGBB')

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden, and it does little: only 'remove(range)' hints at destruction, with no statement about what gets destroyed, reversibility, permission requirements, or side effects of applying/updating definitions. For a mutation-capable tool with zero annotation coverage this is a substantial gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loads the domain, and the signature notation is compact. But the notation is cryptic and terse to the point of under-specification, so brevity here trades away clarity rather than earning it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A 12-parameter tool with a nested 'levels' object, no output schema, no annotations, and 33% schema coverage needs more than a signature list. Missing behavioral context (definition lifecycle, error cases, how def/handle interact) leaves the definition incomplete for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 33% schema coverage across 12 parameters, the description partially compensates by mapping parameters to actions and marking optionals with '?' (e.g. apply(range, kind, def?, level?)), which the flat schema does not convey. However, the semantics of many parameters (at, set, delta, start, handle, levels) are left to the sparse schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource domain (문단 번호·글머리표·개요 번호 — paragraph numbering, bullets, outline numbering) but supplies no clear verb for the tool as a whole; it is a topic label followed by an action inventory. An agent can infer this is the numbering-management tool versus siblings like para_format or style, but the overall purpose is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The action signatures hint at what each operation does (define, apply, level, restart, remove, update), but there is no guidance on when to choose this tool, when not to, or how to pick between actions for a given task. No alternatives or prerequisites are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pageC

쪽: 용지·여백·다단·쪽 번호·머리말/꼬리말·나누기·테두리·바탕쪽. action: setup(section, paper?, orientation?, margin?, gutter_type?); columns(at, count, type?, direction?, gap?, widths?, separator?); page_number(section, position, format?, side_char?, start?); header(section, pages?, op?); footer(section, pages?, op?); break(at, kind); border(section, pages?, border?, offset?, fill?, base?, include_header?, include_footer?); hide(at, items); section(section, start_page?, start_figure?, start_table?, start_equation?, hide_first?, text_direction?, line_grid?, char_grid?, line_numbers?, starts_on?, space_columns?, tab_stop?); master(section, pages?, op?)

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoLocator(한 점: s0/p3:5, doc:end, before:#p4 …)
opNo
gapNo길이(숫자는 mm, 또는 '20mm'·'12pt')
baseNo
fillNo
kindNo
typeNo
countNo
itemsNo
pagesNo
paperNo용지 이름(A4·A3·B4·B5·letter·legal) 또는 {width, height} 길이
startNo
actionYes
borderNoBorder (길이는 숫자 또는 '12pt'·'20mm', 색은 '#RRGGBB')
formatNo
handleNodocument.new/open이 준 handle
marginNoLengthMap (길이는 숫자 또는 '12pt'·'20mm', 색은 '#RRGGBB')
offsetNoLengthMap (길이는 숫자 또는 '12pt'·'20mm', 색은 '#RRGGBB')
widthsNo
sectionNo구역("s0" 또는 0)
positionNo
tab_stopNo길이(숫자는 mm, 또는 '20mm'·'12pt')
char_gridNo길이(숫자는 mm, 또는 '20mm'·'12pt')
directionNo
line_gridNo길이(숫자는 mm, 또는 '20mm'·'12pt')
separatorNoLineOrNone (길이는 숫자 또는 '12pt'·'20mm', 색은 '#RRGGBB')
side_charNo
starts_onNo
hide_firstNo
start_pageNo
gutter_typeNo
orientationNo
start_tableNo
line_numbersNoLineNumbers (길이는 숫자 또는 '12pt'·'20mm', 색은 '#RRGGBB')
start_figureNo
space_columnsNo길이(숫자는 mm, 또는 '20mm'·'12pt')
include_footerNo
include_headerNo
start_equationNo
text_directionNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden and does not meet it. It never states that every action mutates the document, that a valid handle is required (the schema's handle description hints at this but the description does not), what happens to existing settings when an action is re-applied, or how header/footer op=remove behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense but front-loaded block: the topic comes first, then the action signatures. Given 10 actions and 40 parameters, this is a compact representation with essentially no filler sentences. It could be more scannable if the action list were broken out line by line, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a high-complexity dispatcher (10 actions, 40 params, nested objects, no output schema, no annotations), the description provides only the action-to-parameter map. It omits return/effect information, error conditions, whether actions are idempotent, and the handle lifecycle. An agent could pick an action but not reliably predict the outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 35% across 40 parameters, so the description should compensate more than it does. Its real contribution is the per-action parameter grouping, which the flat schema with additionalProperties=false cannot express — the agent learns that page_number takes side_char but columns takes separator. However, several parameters (items, fill, widths, hide_first, side_char) remain undocumented in both schema and description, and no enum value meanings are added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The leading clause names the resource domain concretely (paper, margins, columns, page numbers, headers/footers, breaks, borders, master page), and the action list enumerates the concrete operations. An agent can tell this is the page/section-layout tool rather than char_format or para_format. It stops short of explicitly contrasting itself with siblings such as style or section-adjacent tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives, no prerequisites, and no exclusions. The action names imply use cases (setup, header, footer, break), but the agent is left to infer which action to pick and when a page-level tool is preferable to a paragraph- or section-level sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

para_formatA

문단 모양(정렬·여백·줄 간격·탭·테두리 …). action: set(range, props); reset(range); copy(from, to)

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoLocator(글 범위: s0/p3:5-12, s0/p2..s0/p9, find:"…")
fromNoLocator(글 범위: s0/p3:5-12, s0/p2..s0/p9, find:"…")
propsNoParaProps (길이는 숫자 또는 '12pt'·'20mm', 색은 '#RRGGBB')
rangeNoLocator(글 범위: s0/p3:5-12, s0/p2..s0/p9, find:"…")
actionYes
handleNodocument.new/open이 준 handle

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It does add genuinely behavioral content — which parameters each action consumes — but it never says what 'reset' reverts to (theme default vs. document default), whether the operation is destructive/reversible, or what permissions or document state are required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact lines, front-loaded with the domain statement followed by the action signature block — no filler or restatement of the title. The heavy abbreviation and parenthetical ellipsis in the props list cost it the top mark, since brevity shades into under-specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter mutation tool with no annotations and no output schema, the definition is only partly sufficient: the nested 'props' object has no enumerated keys, so the agent must infer the ParaProps fields from the parenthetical list (정렬·여백·줄 간격·탭·테두리). The per-action mapping is helpful, but return behavior and prop key names remain unknown.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 83%, so the baseline is 3, and the description earns above it by supplying per-action parameter bindings the flat schema cannot express (set→range+props, reset→range, copy→from+to). It also flags that 'props' is a ParaProps object accepting numeric or '12pt'/'20mm' lengths and '#RRGGBB' colors.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: paragraph formatting covering alignment, spacing, line spacing, tabs, borders. The Korean gloss '문단 모양' clearly separates it from the sibling char_format, though that distinction is implicit in the wording rather than an explicit contrast. An agent can identify the domain without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The action signatures ('set(range, props); reset(range); copy(from, to)') implicitly tell the agent which mode to pick for which task, which is more than nothing. But there is no explicit when-to-use guidance, no statement of prerequisites (handle, active selection/cursor), and no routing to style/char_format alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

readB

문서 읽기: 개요·본문·노드 속성·서식·찾기. action: outline(range?, depth?, offset?, limit?); text(range?, offset?, limit?); node(target); format(range); find(query, regex?, case?, whole_word?, range?, include_deleted?, limit?)

ParametersJSON Schema
NameRequiredDescriptionDefault
caseNo
depthNo
limitNo
queryNo
rangeNoLocator(글 범위: s0/p3:5-12, s0/p2..s0/p9, find:"…")
regexNo
actionYes
handleNodocument.new/open이 준 handle
offsetNo
targetNoLocator(노드 하나: #tbl7, s0/p3)
whole_wordNo
include_deletedNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. The name and content imply a non-destructive read, but it never explicitly states read-only/safe behavior, permission or auth needs, or what pagination/offset semantics apply. The offset/limit params only hint at paging behavior without explanation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then densely encodes five action signatures with no filler. Every token carries information. It is terse to the point of being cryptic, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 12 parameters, 5 actions, and no output schema, the description explains parameter routing but not what each mode returns (outline vs text vs format vs find) or how 'handle' ties requests to a document. For a multi-modal dispatcher this leaves real gaps about the shape of results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 25%, so the description must compensate, and it does: it maps each parameter to the action it belongs to (e.g., outline takes range/depth/offset/limit, find takes query/regex/case/whole_word/range/include_deleted/limit). That action-to-param mapping adds substantial value beyond the schema. It omits the shared 'handle' parameter, though the schema documents that one.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (문서 읽기) and enumerates its five read modes: outline, text, node, format, find. An agent can understand the tool reads document content in multiple modes. However, it does not differentiate itself from overlapping siblings such as 'text', 'document', or 'page', which an agent might otherwise pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative guidance is given. The action enumeration implies the modes exist but never says which to prefer or when to pick this tool over the sibling 'text'/'document' tools. Usage must be inferred entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

renderC

한글 엔진: PDF·쪽 그림·검수·배치 질의·보기 창. action: pdf(out_path, pages?); page_image(page, dpi?); check(timeout?); layout(targets?); update_fields(); view(on); normalize(out_path)

ParametersJSON Schema
NameRequiredDescriptionDefault
onNo
dpiNo
pageNo
pagesNo
actionYes
handleNodocument.new/open이 준 handle
targetsNoLocator 목록(노드 여럿: ["#shp1", "#shp2"])
timeoutNo
out_pathNo쓸 파일의 절대 경로

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions out_path for pdf and normalize, hinting at file writes, but does not describe permissions, side effects, reversibility, or output behavior for any action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact line with no filler, and the capability list is front-loaded before the action-parameter mapping. It is terse to the point of being cryptic, but every token serves the dispatch purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given seven actions, nine parameters, no annotations, and no output schema, the description is too thin. It maps actions to parameters but leaves action semantics, return values, and behavioral constraints largely unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%, so the description must compensate. It does add useful action-parameter mapping (e.g., pdf uses out_path and optional pages, page_image uses page and optional dpi), but it does not explain the meaning, format, or constraints of most parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as a Hangul engine and lists seven operations (PDF, page image, check, layout, update_fields, view, normalize), but it does not state an overarching purpose in a clear verb+resource sentence. It also provides no differentiation from sibling tools such as convert, image, or page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no explicit when-to-use guidance, no conditions for selecting this tool over alternatives, and no named alternatives from the sibling list. Usage is only implied by the action list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

shapeB

도형·글상자·묶기. action: insert(at, kind, points?, text?, frame?, margin?, caption?, line?, fill?, shadow?, flip?, rotation?, round?, arc_type?, text_box?, fill_image?, fill_image_mode?); update(target, points?, frame?, margin?, caption?, line?, fill?, shadow?, flip?, rotation?, round?, arc_type?, text_box?, fill_image?, fill_image_mode?); delete(target); group(targets); ungroup(target)

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoLocator(한 점: s0/p3:5, doc:end, before:#p4 …)
fillNorect.fill 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
flipNorect.flip 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
kindNo
lineNorect.line 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
textNo
frameNorect.frame 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
roundNo
actionYes
handleNodocument.new/open이 준 handle
marginNorect.margin 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
pointsNo[[x, y], …] 길이(숫자는 mm)
shadowNorect.shadow 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
targetNoLocator(노드 하나: #tbl7, s0/p3)
captionNo
targetsNoLocator 목록(노드 여럿: ["#shp1", "#shp2"])
arc_typeNo
rotationNo
text_boxNorect.text_box 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
fill_imageNo읽을 파일의 절대 경로
fill_image_modeNo

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing about permissions, whether delete/ungroup are reversible, how existing shapes behave on update, or what the call returns. It only names the mutation verbs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a dense signature dump rather than prose, but it is front-loaded with the domain, lists the actions in order, and wastes no words. For 21 parameters this is an efficient format, though it reads as machine-generated and lacks any sentence-level explanation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a 21-parameter multi-action tool with no annotations and no output schema, the description covers the dispatch logic but leaves behavior, prerequisites, side effects, and response shape entirely unexplained. Adequate to start a call, incomplete for safe use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 62% schema coverage and 21 parameters, the key addition is the conditional mapping of parameters to actions (e.g. points only for insert/update, targets only for group, target only for update/delete). The schema cannot express this action-parameter coupling, so the description meaningfully compensates. It still omits syntax details such as locator formats and unit rules, which the schema partially covers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening '도형·글상자·묶기' (shapes, text boxes, grouping) states the resource clearly, and the action list (insert/update/delete/group/ungroup) gives an agent an unambiguous verb set. It does not explicitly differentiate itself from sibling domain tools like table or chart, but within its own scope the purpose is precise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The per-action parameter signatures imply which action to pick for which goal, but there is no explicit when-to-use/when-not-to-use guidance and no comparison to alternatives such as text or table for placing content. Usage is inferable from the action names rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

styleB

스타일 정의·적용. action: list(); define(name, kind, eng_name?, base?, next?, char?, para?, numbering?); update(name, eng_name?, kind?, next?, char?, para?); apply(range, name); delete(name, replace_with?)

ParametersJSON Schema
NameRequiredDescriptionDefault
baseNo
charNoCharProps (길이는 숫자 또는 '12pt'·'20mm', 색은 '#RRGGBB')
kindNo
nameNo
nextNo
paraNoParaProps (길이는 숫자 또는 '12pt'·'20mm', 색은 '#RRGGBB')
rangeNoLocator(글 범위: s0/p3:5-12, s0/p2..s0/p9, find:"…")
actionYes
handleNodocument.new/open이 준 handle
eng_nameNo
numberingNo
replace_withNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It implies mutation via define/update/delete and hints that delete can cascade ('replace_with?'), but says nothing about reversibility, permissions, side effects on existing content, or what applying a style does to the target range. For a multi-action mutation tool this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense, front-loaded line: purpose first, then action-by-action signatures with optional markers. No filler, though the compact signature syntax is terse enough that parsing it takes some effort.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter tool with nested CharProps/ParaProps objects, no annotations and no output schema, the description covers the action surface but omits return info (e.g., what list returns), defaults, and the semantics of several params. It is not enough on its own for confident invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 33% schema coverage the description must compensate, and it does add real value by mapping which parameters belong to which action (e.g., apply uses range+name, delete uses name+replace_with). However it does not explain the meaning of ambiguous params like base, next, or eng_name, leaving much semantic work undone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('스타일 정의·적용' = style definition/application) and enumerates the concrete operations (list/define/update/apply/delete). An agent can tell this tool manipulates document styles, distinct from siblings like char_format and para_format. It stops short of explicitly naming those siblings as alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The action list implies usage but never states when to choose this tool over char_format/para_format/numbering, nor any prerequisites. There are no when-to-use or when-not-to-use conditions, only a signature enumeration.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tableC

표: 만들기·셀·병합/나누기·행/열·서식·계산식·정렬. action: create(at, rows, cols, data?, col_widths?, row_heights?, own_paragraph?, frame?, margin?, caption?, header_rows?, style?); cell(cells, text?, data?); insert_rows(target, at_row, count?, where?); insert_cols(target, at_col, count?, where?); delete_rows(target, indices); delete_cols(target, indices); delete(target); merge(cells?, target?); split(target, rows?, cols?, at_row?); size(target?, cells?, col_widths?, row_heights?, width?, equalize?); cell_format(cells, border?, fill?, valign?, padding?, text_direction?, single_line?, protect?, editable_in_form?, name?, header?, fill_image?, fill_image_mode?); update(target, frame?, margin?, caption?, page_break?, repeat_header?, default_padding?, lock_size?); formula(target, expr, format?); recalc(target?); sort(target, keys, rows?, header_rows?); to_text(target, separator?); from_text(range, separator?, header_rows?); preset(target, name, apply_to?)

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoLocator(한 점: s0/p3:5, doc:end, before:#p4 …)
colsNo
dataNo
exprNo
fillNocell.fill 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
keysNo
nameNo
rowsNo
textNo
cellsNoLocator(셀 범위)
countNo
frameNotable.frame 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
rangeNoLocator(글 범위: s0/p3:5-12, s0/p2..s0/p9, find:"…")
styleNo
whereNo
widthNo길이(숫자는 mm, 또는 '20mm'·'12pt')
actionYes
at_colNo
at_rowNo
borderNoCellBorder (길이는 숫자 또는 '12pt'·'20mm', 색은 '#RRGGBB')
formatNo
handleNodocument.new/open이 준 handle
headerNo
marginNotable.margin 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
targetNoLocator(노드 하나: #tbl7, s0/p3)
valignNo
captionNo
indicesNo
paddingNocell.padding 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
protectNo
apply_toNo
equalizeNo
lock_sizeNo
separatorNo
col_widthsNo길이 목록(숫자는 mm)
fill_imageNo읽을 파일의 절대 경로
page_breakNo
header_rowsNo
row_heightsNo길이 목록(숫자는 mm)
single_lineNo
own_paragraphNo
repeat_headerNo
text_directionNo
default_paddingNotable.default_padding 속성 묶음(길이는 숫자 mm 또는 '12pt'·'20mm')
fill_image_modeNo
editable_in_formNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden, yet it is purely an action-and-signature catalog. Destructive actions like delete_rows, delete_cols, and delete never warn about data loss, and there is no mention of permissions, reversibility, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded with a Korean category summary before the action catalog. Every clause maps an action to its parameters with no filler, which is efficient for an 18-action omnibus tool, though the raw catalog form is heavy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 18 actions, 46 parameters, no annotations, and no output schema, the description covers action-to-parameter mapping but omits behavioral guidance, destructive-action warnings, and any indication of return values. An agent can pick an action but not predict its effects or output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% across 46 parameters, so the description must compensate, and it partially does by mapping which parameters belong to each action (e.g., create takes at, rows, cols, data?, frame?...). However, it explains no parameter meaning or format (what keys, expr, or data accept), leaving semantics largely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource (표/table) with the families of operations it covers: create, cell, merge/split, rows/cols, formatting, formulas, sorting. This clearly distinguishes it from siblings like char_format, para_format, and page, which operate on non-table content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It enumerates the available actions but gives no guidance on when to choose this tool versus siblings (e.g., document, text), nor any prerequisites or exclusions. The action list implies scope but never states selection conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

textB

글 넣기·지우기·바꾸기·모두 바꾸기·복사·이동·자동 입력 코드. action: insert(at, text, style?, char?); delete(range); replace(range, text); replace_all(find, replace, regex?, case?, range?); copy(range, at, src?); move(range, at); insert_code(at, kind, format?, side_char?)

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoLocator(한 점: s0/p3:5, doc:end, before:#p4 …)
srcNo다른 문서의 handle
caseNo
charNoCharProps (길이는 숫자 또는 '12pt'·'20mm', 색은 '#RRGGBB')
findNo
kindNo
textNo
rangeNoLocator(글 범위: s0/p3:5-12, s0/p2..s0/p9, find:"…")
regexNo
styleNo
actionYes
formatNo
handleNodocument.new/open이 준 handle
replaceNo
side_charNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden, yet it says nothing about mutation semantics, reversibility/undo, permissions, or side effects of operations like replace_all across a range. For a 7-action write-oriented tool this is a substantial gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The action inventory is front-loaded and each action's signature is packed into a single dense line with no filler. It is terse rather than verbose, which is appropriate for a parameter-heavy dispatcher tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 actions, 15 flat parameters, no annotations, and no output schema, the description covers the action-to-parameter mapping but omits behavior, error modes, and return information an agent would need to invoke mutations safely. Adequate but clearly short of complete for this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33%, so the description must compensate, and it does add real value by mapping which parameters belong to which action in a flat 15-property schema. However, several parameters (side_char, format, style, case, regex) get no semantic explanation beyond appearing in a signature, so the compensation is partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the exact operations (insert, delete, replace, replace_all, copy, move, insert_code) on text and lists each action's signature, so an agent knows the tool's scope despite the vague name 'text'. It does not, however, distinguish this tool from siblings like char_format or para_format, which handle adjacent concerns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Listing per-action parameter sets implicitly guides which action to pick, but there is no explicit when-to-use/when-not statement or routing to alternatives (e.g., formatting vs. editing). Usage is inferred rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tocC

차례. action: insert(at, source?, styles?, levels?, include?, page_numbers?, leader?, hyperlink?); rebuild(target); delete(target)

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoLocator(한 점: s0/p3:5, doc:end, before:#p4 …)
actionYes
handleNodocument.new/open이 준 handle
leaderNo
levelsNo
sourceNo
stylesNo
targetNo
includeNo
hyperlinkNo
page_numbersNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses none of it: nothing about what 'delete'/'rebuild' destroy, whether changes are reversible, permissions required, or that the 'handle' parameter (present in the schema) is mandatory in practice. The action-per-argument map is structural, not behavioral.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely compact and front-loaded: the resource is named first, then each action with its argument set in a consistent semicolon-delimited form. Nothing is padded, though the compression is so aggressive that some semantic detail is sacrificed for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 11 parameters, no annotations, no output schema, and 18% schema coverage, the description leaves major gaps: the required handle/target relationships, mutation side effects, and return behavior are all unaddressed. An agent could not confidently invoke rebuild or delete from this text alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 18% across 11 parameters, so the description must compensate, and it partly does by grouping parameters under the action that consumes them (?-marked as optional) — information the schema does not convey. It still omits meaning for handle, target, styles, include, and levels beyond their names, so it is helpful but incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The terse '차례' (table of contents) plus an enumerated action dispatch — insert/rebuild/delete with their parameter signatures — tells an agent exactly what resource is manipulated and how each mode is shaped. It is not, however, distinguished from any sibling (style, numbering, page, field), so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description enumerates the three actions and their arguments but never says when to choose insert vs rebuild vs delete, nor what preconditions exist (e.g., that a TOC must already exist for rebuild/delete). No alternatives are named. The only implied guidance is the action-per-shape listing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

trackB

변경 추적. action: enable(on, author?); list(range?); accept(ids?, all?); reject(ids?, all?)

ParametersJSON Schema
NameRequiredDescriptionDefault
onNo
allNo
idsNo
rangeNoLocator(글 범위: s0/p3:5-12, s0/p2..s0/p9, find:"…")
actionYes
authorNo
handleNodocument.new/open이 준 handle

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden and does not meet it. It never states that accept/reject permanently mutate the document, whether the changes are reversible, what permissions are needed, or what the response contains; verbs like 'accept' imply mutation but nothing is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense line, front-loaded with the resource and then structured as action-plus-parameters, with no wasted words. It is arguably too compressed, but every token carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with no annotations, no output schema, and 29% schema coverage, the description leaves major gaps: the document 'handle' requirement, the type/shape of 'ids', and the destructive semantics of accept/reject. An agent could not confidently call the mutating actions from this description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 29%, and the description partially compensates by mapping parameters to actions: 'on'/'author' for enable, 'range' for list, 'ids'/'all' for accept/reject. That mapping is real added value, but 'handle' (required in practice) and the untyped 'ids' parameter are never explained in either place.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource ('변경 추적' = change tracking) and enumerates the four operations it supports (enable/list/accept/reject), so an agent knows this handles tracked revisions. It does not explicitly contrast itself with any sibling, but the operation set is distinct enough from document-element tools to be identifiable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The action list with parenthesized parameters implies which operation to pick and what each accepts, which is genuine usage signal. However, there is no explicit when-to-use guidance, no prerequisites (e.g., must a document be open first, as 'handle' hints), and no exclusions or alternatives named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xmlB

범용 XML 통로(의미 도구가 없는 속성). action: parts(); get(part, xpath, limit?); patch(part, xpath, op, xml?, name?, value?)

ParametersJSON Schema
NameRequiredDescriptionDefault
opNo
xmlNo
nameNo
partNo
limitNo
valueNo
xpathNo
actionYes
handleNodocument.new/open이 준 handle

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden. It mentions patch operations including 'remove' and 'remove_attr' that are clearly destructive, but it does not disclose permissions, reversibility, side effects, or any response behavior, leaving the agent unable to assess safety.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and front-loaded: the core scope statement comes first, followed by a compact action signature list. Every token earns its place, and there is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters, no annotations, no output schema, and only 11% schema description coverage, the description is not complete enough. It omits the 'handle' parameter's role, return values, error handling, and the semantics of key operations, leaving significant gaps for an agent to correctly invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 11%, so the description must compensate. It partially does so by grouping parameters by action (e.g., get uses part, xpath, optional limit; patch uses part, xpath, op, optional xml/name/value), but it does not explain what 'part' means, how xpath is interpreted, or what the op enum values do.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool is a general-purpose XML gateway for properties that lack dedicated semantic tools, and it enumerates the available actions (parts, get, patch) with their signatures. This gives a clear verb+resource purpose and implicitly distinguishes the tool from semantic siblings, though it does not name any sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical '의미 도구가 없는 속성' implies the tool should be used as a fallback when no semantic tool exists, which is useful implied guidance. However, it does not state when not to use the tool, nor does it name or contrast any specific sibling alternatives.

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.

  1. 22 tool updatesv0.1.0
    • First observedchar_format
    • First observedchart
    • First observedconvert
    • First observeddocument
    • First observedequation
    • First observedfield
    • First observedimage
    • First observedlink
    • First observedmemo
    • First observednote
    • First observednumbering
    • First observedpage
    • First observedpara_format
    • First observedread
    • First observedrender
    • First observedshape
    • First observedstyle
    • First observedtable
    • First observedtext
    • First observedtoc
    • First observedtrack
    • First observedxml

TDQS

B3.3/5.0

Scored across 22 tools

Disambiguation4/5

Each tool maps to a distinct resource or subsystem (table, image, shape, style, field, memo, etc.), and read vs text split extraction from mutation clearly. The catch-all xml tool overlaps conceptually with every semantic tool, creating some boundary ambiguity, but overall the roles are distinguishable.

Naming Consistency5/5

Every tool name is a consistent single-word lowercase noun (page, text, table, image, style, field, memo), with actions expressed uniformly as parameters. The pattern is entirely predictable throughout.

Tool Count4/5

22 tools is on the heavier side, but the domain (a full word-processor document model) genuinely spans text, formatting, tables, embedded objects, fields, and rendering. Each tool earns its place as a subsystem, though a few could conceivably be consolidated.

Completeness5/5

Coverage is comprehensive: document lifecycle, text editing, char/para/style formatting, tables, equations, images, shapes, charts, notes, links, TOC, fields, memos, page setup, track changes, render/convert. No obvious lifecycle gaps (create/read/update/delete exist across resources).

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    Not graded
    maintenance
    Enables reading, editing, and creating Korean HWPX documents through python-hwpx library. Supports document creation, paragraph/table/image insertion, metadata management, and workspace-restricted file operations with automatic backup functionality.
    8
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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.
    34
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to control Hancom's HWP/HWPX documents (Korean word processor) via COM interface on Windows, supporting creation, editing, formatting, and export.
    MIT