Skip to main content
Glama

docx-mcp: Word 文档 MCP 服务器

基于 rajesh-docx-mcp 开发改进

一个功能全面的 Model Context Protocol (MCP) 服务器,用于读取、写入和操作 Microsoft Word (.docx) 文档。提供 30+ 工具,覆盖文档全生命周期管理,从基础文本操作到高级格式化、模板和内容控制。

功能特性

核心文档操作

  • create_docx - 创建新的空白文档

  • read_docx - 提取文本和元数据

  • write_docx - 写入/覆盖文档内容

  • append_docx - 追加内容到现有文档

  • list_docx - 列出目录中的文档

  • delete_docx - 安全删除文档

  • copy_docx - 复制文档到新位置

Word 原生模板系统

  • list_merge_fields - 提取文档中的 MERGEFIELD 名称

  • fill_merge_fields - 用数据替换合并字段值

  • list_content_controls - 列出所有内容控件

  • get_document_properties - 读取文档元数据

  • set_document_properties - 更新文档元数据

样式管理

  • list_styles - 列出所有可用的段落和字符样式

  • apply_paragraph_style - 应用命名样式("标题 1"、"正文"等)

列表 - 项目符号和编号

  • apply_bullet_list - 应用项目符号格式

  • apply_numbered_list - 应用编号格式

  • set_list_level - 控制列表缩进级别(0-8)

图片和标题

  • insert_image - 插入图片并设置尺寸

  • add_image_caption - 添加自动编号的标题

  • list_images - 列出文档中的所有图片

  • extract_images - 提取图片并保存或返回 base64 编码

公式提取(新增)

  • list_equations - 列出文档中所有数学公式,转换为 LaTeX 格式

  • get_equation - 获取指定索引的公式详情

其他特性

  • 结构化 JSON 日志

  • 安全优先设计,带路径验证

  • 全面的错误处理

  • 支持文档属性和元数据

  • MCP 资源端点用于文档内容访问

Related MCP server: DOCX MCP Server

安装

前置要求

  • Python 3.10 或更高版本

  • uv 包管理器(或 pip)

快速开始

# 1. 克隆或进入项目目录
cd docx-mcp

# 2. 运行安装脚本
./setup.sh

# 3. 激活虚拟环境
source venv/bin/activate

# 4. 运行服务器
./run.sh

手动安装

# 创建并激活虚拟环境
python3 -m venv venv
source venv/bin/activate

# 安装依赖
uv sync

# 运行服务器
python -m docx_mcp.server

配置使用

Claude Desktop 配置

  1. 复制配置到 Claude:

cp claude_desktop_config.json ~/Library/Application\ Support/Claude/claude_desktop_config.json
  1. 更新配置中的路径:

{
  "mcpServers": {
    "docx-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/你的/docx-mcp/路径",
        "run",
        "python",
        "-m",
        "docx_mcp.server"
      ]
    }
  }
}
  1. 重启 Claude Desktop

Kiro 配置

.kiro/settings/mcp.json 中添加:

{
  "mcpServers": {
    "docx-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/你的/docx-mcp/路径",
        "run",
        "python",
        "-m",
        "docx_mcp.server"
      ]
    }
  }
}

使用示例

创建和写入文档

用户: 在 ./report.docx 创建一个新文档,标题为"月度报告"
工具: create_docx(filepath="./report.docx", title="月度报告")

用户: 写入一些内容
工具: write_docx(filepath="./report.docx", content="执行摘要\n主要发现...")

提取图片

用户: 提取文档中的所有图片
工具: extract_images(filepath="./doc.docx", output_dir="./images")

用户: 获取图片的 base64 编码
工具: extract_images(filepath="./doc.docx", return_base64=True)

提取公式

用户: 列出文档中的所有公式
工具: list_equations(filepath="./论文.docx")

用户: 获取第 18 个公式
工具: get_equation(filepath="./论文.docx", equation_index=17)

应用样式和格式

用户: 列出文档中可用的样式
工具: list_styles(filepath="./report.docx")

用户: 将第一段应用"标题 1"样式
工具: apply_paragraph_style(filepath="./report.docx", paragraph_index=0, style_name="Heading 1")

创建列表

用户: 将第 3-5 段设为项目符号列表
工具: apply_bullet_list(filepath="./report.docx", paragraph_indices=[3,4,5])

用户: 改为编号列表
工具: apply_numbered_list(filepath="./report.docx", paragraph_indices=[3,4,5])

环境变量配置

# 文档访问的项目目录
export DOCX_MCP_PROJECT_DIR=/path/to/documents

# 最大文件大小(默认:50MB)
export DOCX_MCP_MAX_FILE_SIZE=52428800

# 日志级别(DEBUG, INFO, WARNING, ERROR)
export DOCX_MCP_LOG_LEVEL=INFO

# 允许访问任意路径(谨慎使用)
export DOCX_MCP_ALLOW_UNSAFE_PATHS=true

文件系统安全

服务器验证所有文件路径以防止目录遍历攻击:

  • 默认允许访问 home 目录下的所有路径

  • 验证文件扩展名(.docx, .doc, .dotx, .dot)

  • 强制文件大小限制

  • 防止空字节注入

支持的文档格式

  • .docx - 现代 Microsoft Word 格式(推荐)

  • .doc - 旧版 Microsoft Word 格式

  • .dotx - Word 模板格式

  • .dot - 旧版 Word 模板格式

开发

运行测试

# 安装开发依赖
uv sync --all-extras

# 运行所有测试
uv run pytest tests/

# 带覆盖率运行
uv run pytest tests/ --cov=src/docx_mcp

代码风格

# 格式化代码
uv run black src/ tests/

# 检查代码
uv run ruff check src/ tests/

# 类型检查
uv run mypy src/

项目结构

docx-mcp/
├── src/docx_mcp/
│   ├── __init__.py           # 包初始化
│   ├── server.py             # 主 MCP 服务器及所有工具
│   ├── config.py             # 配置管理
│   ├── logging_config.py     # 日志设置
│   ├── exceptions.py         # 自定义异常类
│   └── utils/
│       ├── path_utils.py     # 路径验证和规范化
│       ├── document_utils.py # 文档处理工具
│       └── __init__.py
├── tests/                    # 测试文件
├── pyproject.toml            # 项目元数据和依赖
├── setup.sh                  # 环境安装脚本
├── run.sh                    # 服务器启动脚本
└── README.md                 # 本文件

故障排除

在其他项目路径无法使用

设置环境变量 DOCX_MCP_ALLOW_UNSAFE_PATHS=true 或确保文档在 home 目录下。

虚拟环境问题

rm -rf venv/
./setup.sh

服务器无法启动

# 检查 Python 版本
python3 --version  # 应为 3.10+

# 查看日志
cat logs/docx_mcp_*.log

许可证

MIT


基于 FastMCP 和 python-docx 构建,提供全面的 Word 文档管理能力。

Available Tools

24 tools
add_image_captionC

Add a caption to an image in the document.

Args: filepath: Path to the document image_index: Index of the image (0-based) caption_text: Caption text caption_type: Type of caption (Figure, Table, Equation)

Returns: Dictionary with status

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes
image_indexYes
caption_textYes
caption_typeNoFigure

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 burden of behavioral disclosure. It states the tool adds a caption but does not clarify whether this modifies the document in place, requires specific permissions, handles errors (e.g., invalid filepath or image index), or has side effects like overwriting existing captions. The mention of a return 'Dictionary with status' hints at some feedback but lacks detail on success/failure indicators.

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 well-structured and front-loaded with the core purpose in the first sentence. The 'Args' and 'Returns' sections organize information efficiently, avoiding redundancy. However, the 'Returns' section is vague ('Dictionary with status'), which slightly reduces clarity, but overall, the text is concise with minimal waste.

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 the tool's moderate complexity (4 parameters, no annotations, but with an output schema), the description is partially complete. It covers the basic action and parameters but lacks behavioral details (e.g., error handling, side effects) and usage guidelines. The presence of an output schema means the description does not need to explain return values in detail, but it still falls short in providing full context for safe and effective use.

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 0%, meaning parameters are undocumented in the schema. The description compensates by listing each parameter with brief explanations (e.g., 'Path to the document' for filepath), adding basic semantics. However, it does not provide deeper context such as file format expectations, valid ranges for image_index, or examples for caption_type beyond the default 'Figure'. This partial compensation justifies a baseline score of 3.

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 clearly states the tool's purpose: 'Add a caption to an image in the document.' It specifies the verb ('Add'), resource ('caption'), and target ('image in the document'), making the action unambiguous. However, it does not explicitly differentiate from sibling tools like 'insert_image' or 'extract_images', which is why it scores a 4 instead 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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., document must exist), exclusions, or comparisons to sibling tools like 'insert_image' (which might add images without captions) or 'list_images' (which could help identify image indices). This lack of context leaves the agent to infer usage scenarios.

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

append_docxC

Append text content to an existing document.

Args: filepath: Path to the document content: Text content to append

Returns: Dictionary with status

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes
contentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 burden. It states the action 'Append text content' but lacks details on behavioral traits such as permissions needed, whether the operation is idempotent, error handling, or effects on document formatting. This is a significant gap 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.

Conciseness4/5

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

The description is front-loaded with the core purpose in the first sentence, followed by structured Args and Returns sections. It is efficient with minimal waste, though the 'Returns' section could be more informative beyond 'Dictionary with status'.

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 no annotations, 0% schema coverage, and an output schema exists (though unspecified), the description is moderately complete. It covers the basic action and parameters but lacks details on behavioral context, error cases, and output specifics, making it adequate but with clear gaps for a document mutation 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 0%, so the description must compensate. It lists parameters 'filepath' and 'content' with brief explanations, adding some meaning beyond the bare schema. However, it does not provide details like filepath format constraints or content handling (e.g., encoding, size limits), leaving gaps in parameter understanding.

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 clearly states the verb 'Append' and the resource 'text content to an existing document', making the purpose understandable. However, it does not explicitly differentiate from sibling tools like 'write_docx' or 'create_docx', which might have overlapping functions, so it lacks sibling differentiation for a perfect score.

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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., document must exist), exclusions, or comparisons to siblings like 'write_docx' or 'create_docx', leaving usage context unclear.

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

apply_bullet_listC

Apply bullet list formatting to paragraphs.

Args: filepath: Path to the document paragraph_indices: List of paragraph indices to bullet bullet_style: Type of bullet ('bullet', 'circle', 'square', 'dash', 'check')

Returns: Dictionary with status

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes
paragraph_indicesYes
bullet_styleNobullet

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 full burden but offers minimal behavioral insight. It mentions the tool 'applies' formatting (implying mutation) and returns a status dictionary, but doesn't disclose permissions needed, whether changes are destructive/reversible, error conditions, or what specific status values mean.

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 efficiently structured with a clear purpose statement followed by parameter and return sections. However, the 'Args:' and 'Returns:' headings are somewhat redundant since this information is already in structured fields, and the return statement could be more specific.

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 mutation tool with 3 parameters, 0% schema coverage, no annotations, but with an output schema, the description is minimally adequate. It covers the basic operation and parameters but lacks important context about file system interactions, error handling, and relationship to other document formatting tools.

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 0%, so the description must compensate but only partially does. It lists parameters and provides a bullet_style enum that isn't in the schema, adding some value. However, it doesn't explain paragraph_indices format (zero-based?), filepath requirements, or default behavior when bullet_style is omitted.

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 clearly states the verb 'apply' and the resource 'bullet list formatting to paragraphs', making the purpose evident. It distinguishes from sibling 'apply_numbered_list' by specifying bullet formatting, but doesn't explicitly differentiate from other formatting tools like 'apply_paragraph_style'.

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 guidance is provided on when to use this tool versus alternatives like 'apply_numbered_list' or 'apply_paragraph_style'. The description only states what the tool does, not when it should be selected over other formatting options available in the sibling tool list.

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

apply_numbered_listC

Apply numbered list formatting to paragraphs.

Args: filepath: Path to the document paragraph_indices: List of paragraph indices to number number_format: Format for numbering ('1', 'a', 'i', 'I', 'A')

Returns: Dictionary with status

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes
paragraph_indicesYes
number_formatNo1

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 burden of behavioral disclosure. It mentions that the tool applies formatting and returns a dictionary with status, but it doesn't cover critical aspects like whether this is a mutation (likely yes, given 'apply'), error handling, side effects, or performance considerations. For a tool with no annotation coverage, this leaves significant gaps in understanding its 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 appropriately sized and front-loaded, with the core purpose stated first. The 'Args' and 'Returns' sections are structured clearly, though the 'Args' explanations are minimal. There's no wasted text, but the lack of usage context slightly reduces efficiency.

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 the tool has 3 parameters with 0% schema coverage and no annotations, but does have an output schema (implied by 'Returns: Dictionary with status'), the description is moderately complete. It covers the basic purpose and parameters, but misses behavioral details and usage guidelines. The output schema reduces the need to explain return values, but overall context is still lacking for a mutation 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 0%, so the schema provides no parameter descriptions. The description includes an 'Args' section that lists parameters with brief explanations, adding meaning beyond the bare schema. However, it doesn't fully compensate for the coverage gap—e.g., it doesn't explain valid ranges for 'paragraph_indices' or details on 'number_format' beyond listing options. This provides basic but incomplete semantic context.

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 clearly states the tool's purpose: 'Apply numbered list formatting to paragraphs.' This specifies the verb ('apply'), resource ('numbered list formatting'), and target ('paragraphs'). However, it doesn't explicitly differentiate from its sibling 'apply_bullet_list' beyond the obvious difference in list type, which is why it doesn't reach a perfect 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 provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'apply_bullet_list' or 'apply_paragraph_style', nor does it specify prerequisites, constraints, or typical use cases. The only implied usage is formatting paragraphs as numbered lists, but this is basic and lacks context.

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

apply_paragraph_styleC

Apply a named paragraph style to a paragraph.

Args: filepath: Path to the document paragraph_index: Index of the paragraph (0-based) style_name: Name of the style to apply (e.g., "Heading 1", "Normal")

Returns: Dictionary with status

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes
paragraph_indexYes
style_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 full burden but offers minimal behavioral insight. It states the action is 'Apply' (implying mutation) and mentions a return 'Dictionary with status', but lacks details on permissions needed, error conditions (e.g., invalid filepath or style), side effects, or rate limits. This is inadequate for a mutation tool without annotation support.

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 appropriately sized and front-loaded with the core purpose in the first sentence. The Args and Returns sections are structured for clarity, though the Returns section is vague ('Dictionary with status'). There's minimal fluff, but the formatting could be slightly more integrated (e.g., merging description with parameter details).

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 3 parameters with 0% schema coverage, no annotations, and an output schema (implied by 'Returns'), the description is moderately complete. It covers the basic operation and parameters but lacks behavioral context (e.g., error handling) and detailed output explanation. The output schema existence reduces the need to describe return values, but overall completeness is just adequate for a simple mutation 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 0%, so the description must compensate but only partially does. It lists parameters in the Args section with brief examples (e.g., 'Heading 1', 'Normal'), adding some meaning beyond the bare schema. However, it doesn't explain parameter constraints (e.g., valid style names, paragraph index range) or interactions, leaving gaps in understanding.

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 clearly states the action ('Apply') and target ('a named paragraph style to a paragraph'), making the purpose evident. It distinguishes from siblings like 'apply_bullet_list' or 'apply_numbered_list' by focusing on paragraph styles rather than list formatting. However, it doesn't explicitly contrast with all siblings (e.g., 'set_list_level'), leaving minor room for improvement.

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 explicit guidance on when to use this tool versus alternatives is provided. The description mentions what it does but doesn't specify prerequisites (e.g., document must exist), when not to use it (e.g., for non-paragraph elements), or direct alternatives among siblings like 'list_styles' for style discovery. Usage is implied through parameter context only.

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

copy_docxC

Copy a Word document to a new location.

Args: source_filepath: Path to the source document destination_filepath: Path for the copied document

Returns: Dictionary with status

ParametersJSON Schema
NameRequiredDescriptionDefault
source_filepathYes
destination_filepathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 burden. It states the tool copies a document but lacks details on behavioral traits like whether it overwrites existing files at the destination, requires specific permissions, handles errors (e.g., if source doesn't exist), or has rate limits. This is a significant gap for a mutation tool with no 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?

The description is appropriately sized and front-loaded, with the core purpose stated first. The 'Args' and 'Returns' sections are structured but could be more concise by integrating details into the main text. Overall, it avoids unnecessary fluff, though the formatting is slightly verbose.

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 the tool's moderate complexity (copy operation with 2 parameters), no annotations, and an output schema (which covers return values), the description is minimally adequate. It explains the basic action but lacks context on usage, behavior, and parameter details, making it incomplete for safe and effective tool 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?

The description adds minimal semantics beyond the input schema, which has 0% description coverage. It names the parameters ('source_filepath' and 'destination_filepath') and implies they are paths, but does not specify format (e.g., absolute/relative), constraints, or examples. With low schema coverage, the description only partially compensates, leaving gaps in parameter understanding.

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 clearly states the tool's purpose: 'Copy a Word document to a new location.' It specifies the verb ('copy') and resource ('Word document'), but does not explicitly differentiate it from sibling tools like 'create_docx' or 'write_docx', which might involve creating or modifying documents rather than copying existing ones.

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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as needing an existing document to copy, or compare it to siblings like 'create_docx' for new documents or 'read_docx' for accessing content without copying.

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

create_docxC

Create a new blank Word document.

Args: filepath: Path where to create the document title: Optional title for the document

Returns: Dictionary with status and document info

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes
titleNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 full burden but lacks critical behavioral details. It doesn't disclose whether this operation requires file system permissions, if it overwrites existing files, what happens on failure, or any rate limits. The mention of 'Returns: Dictionary with status and document info' is minimal.

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 appropriately sized with three clear sections: purpose, args, returns. Each sentence earns its place, though the returns section could be more informative given the output schema exists.

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 2 parameters with 0% schema coverage, no annotations, but an output schema exists, the description is minimally adequate. It covers the basic purpose and parameters but lacks behavioral context, error handling, and comparison to siblings, leaving gaps for a file creation 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 0%, so the description must compensate. It adds basic meaning by explaining 'filepath: Path where to create the document' and 'title: Optional title for the document', which clarifies purpose beyond schema types. However, it doesn't provide format details, constraints, or examples.

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 clearly states the tool creates a new blank Word document, specifying the verb 'Create' and resource 'Word document'. It distinguishes from siblings like 'copy_docx' or 'write_docx' by emphasizing 'new blank', but doesn't explicitly contrast with all 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?

No guidance on when to use this tool versus alternatives like 'copy_docx' or 'write_docx' is provided. The description only states what it does, not when it's appropriate or what prerequisites might exist.

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

delete_docxA

Delete a Word document.

Args: filepath: Path to the document to delete confirm: Must be True to actually delete (safety check)

Returns: Dictionary with status

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes
confirmNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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 the destructive nature through 'Delete' and adds a safety mechanism ('confirm' parameter), which is valuable behavioral context. However, it doesn't mention permissions needed, whether deletion is permanent or reversible, error handling, or rate limits, leaving gaps 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.

Conciseness5/5

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

The description is highly concise and well-structured: a one-sentence purpose statement followed by bullet-point-like sections for Args and Returns. Every sentence adds value without redundancy, making it easy to parse quickly.

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 the tool's complexity (destructive operation with 2 parameters), no annotations, and an output schema exists (suggesting return values are documented elsewhere), the description is moderately complete. It covers purpose and parameters but lacks behavioral details like error cases or side effects, which are important for a deletion tool.

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 description coverage is 0%, so the description must compensate. It explains both parameters: 'filepath' as 'Path to the document to delete' and 'confirm' as 'Must be True to actually delete (safety check)', adding clear meaning beyond the bare schema. This covers both parameters adequately, though it doesn't detail format constraints for 'filepath'.

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 clearly states the tool's purpose with a specific verb ('Delete') and resource ('a Word document'). It distinguishes itself from sibling tools like 'copy_docx' or 'read_docx' by focusing on deletion, but doesn't explicitly differentiate from other destructive operations like potential file removal tools that might exist elsewhere.

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 description implies usage through the safety check parameter ('confirm: Must be True to actually delete'), suggesting when to use it for deletion confirmation. However, it doesn't provide explicit guidance on when to choose this tool versus alternatives like 'copy_docx' for backup before deletion or mention prerequisites like file existence checks.

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

extract_imagesB

Extract all images from a Word document.

Args: filepath: Path to the document output_dir: Directory to save extracted images (optional) return_base64: If True, return images as base64 encoded strings

Returns: Dictionary with extracted images info and optionally base64 data

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes
output_dirNo
return_base64No

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but lacks critical behavioral details. It mentions optional saving to a directory and base64 return, but doesn't disclose error handling (e.g., invalid file paths), performance characteristics, what happens if output_dir is null, or whether extraction modifies the original document. This leaves significant gaps for an agent.

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 well-structured with a clear purpose statement followed by Args and Returns sections. Every sentence adds value, though the 'Args' and 'Returns' labels could be slightly more integrated. It's appropriately sized for a tool with three parameters.

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 no annotations, 0% schema coverage, but an output schema exists, the description is moderately complete. It covers the core purpose and parameters adequately, but lacks behavioral context (e.g., error cases, side effects) and doesn't fully compensate for the missing annotation coverage. The output schema reduces the need to detail return values, but overall completeness is just adequate.

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 description coverage is 0%, so the description must compensate. It provides clear semantic meaning for all three parameters: filepath identifies the source, output_dir specifies where to save images, and return_base64 controls return format. This adds substantial value beyond the bare schema types, though it doesn't detail path formats or directory creation behavior.

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

Purpose5/5

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

The description clearly states the specific action ('extract all images') and resource ('from a Word document'), distinguishing it from sibling tools like 'list_images' (which likely lists without extracting) or 'insert_image' (which adds rather than extracts). The verb 'extract' is precise and unambiguous.

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 guidance is provided on when to use this tool versus alternatives like 'list_images' or other document processing tools. The description only states what it does, not when it's appropriate or what prerequisites might exist (e.g., file accessibility).

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

fill_merge_fieldsB

Fill merge fields in a document with provided data.

Args: filepath: Path to the document or template data: Dictionary mapping field names to values

Returns: Dictionary with status and modified document info

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes
dataYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 burden of behavioral disclosure. It states the tool modifies a document (implied mutation) but doesn't cover critical aspects like whether it overwrites the original file, creates a new file, requires specific permissions, handles errors, or has rate limits. This leaves significant gaps 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.

Conciseness5/5

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

The description is front-loaded with a clear purpose statement, followed by structured sections for Args and Returns. Every sentence earns its place: the first defines the tool, and the subsequent lines efficiently document parameters and output without redundancy. It's appropriately sized for a 2-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 the tool's moderate complexity (2 parameters, mutation operation), no annotations, and an output schema present, the description is partially complete. It covers the basic purpose and parameters but lacks behavioral details (e.g., file handling, error cases). The output schema reduces the need to explain return values, but more context on the mutation's effects is warranted.

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?

The description adds meaningful context for both parameters: 'filepath: Path to the document or template' and 'data: Dictionary mapping field names to values.' With 0% schema description coverage, this compensates well by explaining what each parameter represents. However, it doesn't specify format details (e.g., file path conventions, data types beyond strings), keeping it from a perfect score.

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 clearly states the tool's purpose: 'Fill merge fields in a document with provided data.' This specifies the verb ('fill'), resource ('merge fields in a document'), and mechanism ('with provided data'). However, it doesn't explicitly differentiate from sibling tools like 'list_merge_fields' or 'write_docx', which prevents a perfect score.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a document with merge fields), exclusions, or comparisons to siblings like 'write_docx' for saving or 'list_merge_fields' for discovery. Usage is implied but not explicitly stated.

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

get_document_propertiesC

Get document properties and metadata.

Args: filepath: Path to the document

Returns: Dictionary with document properties

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 burden of behavioral disclosure. It states the tool retrieves properties and metadata, implying a read-only operation, but doesn't cover critical aspects like permissions needed, error handling, rate limits, or what specific properties are returned. For a tool with no annotation coverage, this leaves significant gaps in understanding its 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 appropriately sized and front-loaded, with the core purpose stated first. The 'Args' and 'Returns' sections are structured but slightly redundant, as the output schema exists. Overall, it's efficient with little wasted text, though it could be more streamlined by omitting the structured sections given the schema coverage.

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 the tool's low complexity (one parameter) and the presence of an output schema (which handles return values), the description is minimally adequate. However, with no annotations and incomplete behavioral details, it doesn't fully compensate for the lack of structured metadata, leaving gaps in usage context and error handling.

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?

The description adds minimal value beyond the input schema. It mentions 'filepath' as the parameter but doesn't clarify format expectations (e.g., absolute vs. relative paths, file extensions) or provide examples. With 0% schema description coverage and only one parameter, the baseline is 3, as the schema alone defines the parameter adequately but without extra semantic context.

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 clearly states the tool's purpose with a specific verb ('Get') and resource ('document properties and metadata'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'read_docx' or 'list_styles', which might also retrieve document information, leaving some ambiguity about its unique role.

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 guidance is provided on when to use this tool versus alternatives. With siblings like 'read_docx' (which might retrieve content) and 'list_styles' (which might list formatting), the description lacks context on prerequisites, exclusions, or comparative use cases, offering minimal assistance in tool selection.

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

get_equationA

Get a specific equation by index from a Word document.

Args: filepath: Path to the document equation_index: Index of the equation (0-based) include_omml: If True, include the raw OMML XML

Returns: Dictionary with equation details including LaTeX representation

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes
equation_indexYes
include_ommlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/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. It mentions that it returns a dictionary with equation details including LaTeX representation, which is helpful, but lacks critical behavioral details such as error handling (e.g., what happens if the index is out of bounds), file access permissions, or performance considerations.

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 front-loaded with the core purpose, followed by a structured breakdown of arguments and returns. Every sentence adds value without redundancy, making it efficient and easy to parse.

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?

Given the tool's moderate complexity (3 parameters, no annotations, but has an output schema), the description is reasonably complete. It covers the purpose, parameters, and return value, though it could benefit from more behavioral context (e.g., error cases). The output schema reduces the need to detail return values.

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 description coverage is 0%, so the description must compensate. It provides clear semantics for all three parameters: 'filepath' (path to the document), 'equation_index' (0-based index), and 'include_omml' (include raw OMML XML if True). This adds meaningful context beyond the bare schema.

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

Purpose5/5

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

The description clearly states the verb ('Get') and resource ('a specific equation by index from a Word document'), making the purpose explicit. It distinguishes from sibling tools like 'list_equations' (which lists all equations) by specifying retrieval of a single equation by index.

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 description implies usage when needing a specific equation from a document, but does not explicitly state when to use this tool versus alternatives like 'list_equations' or other document-reading tools. No exclusions or prerequisites are mentioned.

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

health_checkB

Check server health and status.

Returns: Dictionary with health status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/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 states the tool checks health and returns a dictionary, but lacks details on permissions, rate limits, error handling, or what 'health' entails (e.g., uptime, resources). This is a significant gap for a tool with no 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.

Conciseness3/5

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

The description is two short sentences, but the second ('Returns: Dictionary with health status') is redundant given the output schema exists. This wastes space without adding value. The first sentence is clear, but overall structure could be more efficient by omitting the return statement.

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 the tool's simplicity (0 parameters, output schema provided), the description is minimally adequate. However, with no annotations and an output schema, it should ideally explain what 'health' means or typical use cases. It's complete enough for basic understanding but lacks depth for optimal agent 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?

The tool has 0 parameters, and schema description coverage is 100% (though empty). The description doesn't need to add parameter semantics, so it meets the baseline of 4 for zero-parameter tools. No extra parameter information is required or provided.

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 clearly states the tool's purpose as 'Check server health and status' with a specific verb ('Check') and resource ('server health and status'). It distinguishes itself from all sibling tools, which are document processing operations, making its purpose unambiguous. However, it doesn't specify what aspects of 'health and status' are checked, keeping it from a perfect score.

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 provides no guidance on when to use this tool versus alternatives. There are no explicit when/when-not instructions, prerequisites, or comparisons to other tools. The context is implied (server monitoring), but no actionable usage rules are stated.

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

insert_imageC

Insert an image into a document.

Args: filepath: Path to the document image_path: Path to the image file to insert width: Image width in inches (optional) height: Image height in inches (optional)

Returns: Dictionary with status

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes
image_pathYes
widthNo
heightNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 full burden. It mentions the tool 'inserts' an image, implying a write/mutation operation, but doesn't disclose important behavioral traits like: what happens if the document doesn't exist, whether the insertion is destructive to existing content, what permissions are needed, or how errors are handled. The return value mention is minimal.

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 appropriately sized and front-loaded with the core purpose. The Args/Returns structure is clear, though the return description ('Dictionary with status') is somewhat vague. No unnecessary sentences or fluff.

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 4 parameters with 0% schema coverage and no annotations, the description provides basic parameter semantics but lacks behavioral context. The output schema exists (though unspecified), reducing the need to detail return values. However, for a mutation tool with multiple siblings, more guidance on usage and error conditions would improve completeness.

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 0%, so the description must compensate. It provides basic semantic meaning for all parameters (filepath, image_path, width, height) and indicates which are optional. However, it doesn't explain path formats (absolute/relative), valid width/height ranges, units beyond 'inches', or what happens when only one dimension is provided.

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 clearly states the verb ('insert') and resource ('image into a document'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'add_image_caption' or 'extract_images', which might have overlapping functionality with images in documents.

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 provides no guidance on when to use this tool versus alternatives. With siblings like 'add_image_caption' (which might handle captioned images) and 'extract_images' (which removes images), there's clear potential for confusion about which tool to use for different image-related document operations.

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

list_content_controlsC

List all content controls in a document.

Args: filepath: Path to the document

Returns: Dictionary with list of content controls

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 full burden for behavioral disclosure. It mentions the action 'List all content controls' but fails to describe key traits like read-only vs. destructive nature, error handling, permissions needed, or output format details beyond a vague 'Dictionary with list'. This leaves significant gaps for an agent to understand 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.

Conciseness4/5

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

The description is front-loaded with the core purpose in the first sentence, followed by structured Args and Returns sections. It avoids unnecessary fluff, but the 'Returns' line is somewhat vague ('Dictionary with list'), which slightly detracts from efficiency.

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 the tool's low complexity (1 parameter) and the presence of an output schema, the description is minimally adequate. However, without annotations and with 0% schema coverage, it should provide more behavioral context and parameter details to fully guide an agent, especially in a server with many sibling tools.

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?

The schema description coverage is 0%, so the description must compensate. It adds minimal semantics by naming the parameter 'filepath' and implying it's a path to a document, but does not elaborate on format, constraints, or examples. With only one parameter, the baseline is 4, but the lack of detail beyond the schema's basic type reduces the score.

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 clearly states the verb 'List' and the resource 'content controls in a document', making the purpose specific and understandable. However, it does not explicitly differentiate from sibling tools like 'list_docx' or 'list_styles', which reduces clarity in a crowded toolset.

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 provides no guidance on when to use this tool versus alternatives, such as other list tools (e.g., 'list_docx' for documents or 'list_styles' for styles). It lacks context on prerequisites, exclusions, or typical use cases, offering only basic operational info.

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

list_docxC

List all Word documents in a directory.

Args: directory: Directory path to list (defaults to project directory)

Returns: Dictionary with list of documents

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 burden of behavioral disclosure. It states the tool lists documents but doesn't cover critical aspects like whether it requires specific permissions, how it handles errors (e.g., invalid directories), what format the list includes (e.g., file names, paths, metadata), or if it's read-only (implied but not explicit). This leaves significant gaps in understanding 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.

Conciseness4/5

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

The description is appropriately sized and front-loaded, with the core purpose stated first. The 'Args' and 'Returns' sections are structured but could be more integrated. There's no wasted text, though it could be slightly more concise by merging the sections into a single paragraph without losing clarity.

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 the tool's low complexity (1 parameter, no nested objects) and the presence of an output schema (which handles return values), the description is somewhat complete but has gaps. It covers the basic purpose and parameter intent but lacks usage guidelines and behavioral details. With no annotations, it should provide more context on how the tool behaves in practice, making it only minimally adequate.

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?

The description adds minimal semantics beyond the input schema. It explains that 'directory' is a 'Directory path to list' and defaults to the project directory, which provides basic context. However, with 0% schema description coverage and 1 parameter, this doesn't fully compensate for the lack of schema details (e.g., path format, validation rules). The baseline is 3 since the schema covers the parameter structure, but the description adds only marginal value.

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 clearly states the tool's purpose: 'List all Word documents in a directory.' It specifies the verb ('List'), resource ('Word documents'), and scope ('in a directory'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like 'list_images' or 'list_equations', which also list specific content types from documents, so it doesn't reach a perfect score.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'read_docx' for accessing document content or 'list_content_controls' for other listing purposes, nor does it specify prerequisites or exclusions. The only implied context is that it operates on directories, but this is insufficient for effective tool selection.

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

list_equationsA

List all mathematical equations/formulas in a Word document.

Extracts equations stored in Office Math Markup Language (OMML) format and converts them to LaTeX notation for readability.

Args: filepath: Path to the document

Returns: Dictionary with list of equations including LaTeX representation

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.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. It mentions extraction and conversion behaviors but lacks details on permissions, file format support, error handling, or rate limits. For a tool that reads and processes files, this is a significant gap in 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.

Conciseness5/5

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

The description is well-structured and front-loaded, starting with the core purpose. Each sentence adds value: the first states what it does, the second explains the technical process, and the third outlines inputs and outputs. There is no wasted text.

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?

Given the tool's moderate complexity (file processing with format conversion), the description covers the purpose, process, and return format. With an output schema present, it doesn't need to detail return values. However, it lacks context on limitations or dependencies, leaving some gaps.

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?

The description adds meaningful context for the single parameter 'filepath' by specifying it as a 'Path to the document', which clarifies its role beyond the schema's type. With 0% schema description coverage and only one parameter, this compensation is effective, though not exhaustive.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verbs ('List', 'Extracts', 'converts') and resources ('mathematical equations/formulas in a Word document'). It distinguishes from siblings by focusing on equations, unlike tools for images, styles, or document manipulation.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing a valid Word document with equations, or compare it to sibling tools like 'get_equation' or 'list_docx' for broader document listing.

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

list_imagesC

List all images in a document.

Args: filepath: Path to the document

Returns: Dictionary with list of images and metadata

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 burden of behavioral disclosure. It states the tool lists images and metadata, but it does not describe how the listing is performed (e.g., format, pagination, error handling), what metadata is included, or any constraints like file size limits or supported document types. This leaves significant gaps in understanding 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.

Conciseness4/5

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

The description is structured into clear sections: a purpose statement, 'Args', and 'Returns'. It is front-loaded with the main function and uses bullet-like formatting efficiently. However, the 'Returns' section is vague ('Dictionary with list of images and metadata'), which slightly reduces clarity, but overall, it is concise and well-organized.

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 that there is an output schema (which should detail the return structure), the description does not need to fully explain return values. However, with no annotations and a simple but undocumented parameter, the description provides basic purpose and parameter info but lacks behavioral details and usage context. It is minimally viable but incomplete for optimal agent use.

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?

The description includes an 'Args' section that names the parameter ('filepath') and a 'Returns' section, but the schema description coverage is 0%, meaning the input schema provides no descriptions. The description adds minimal semantics by indicating 'filepath' is a path to the document, but it does not specify format, examples, or constraints. With one parameter and no schema descriptions, this is adequate but lacks depth.

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 clearly states the tool's purpose: 'List all images in a document.' It specifies the verb ('List') and resource ('images in a document'), making it easy to understand what the tool does. However, it does not explicitly distinguish this tool from sibling tools like 'extract_images' or 'insert_image', which prevents a perfect score.

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 provides no guidance on when to use this tool versus alternatives. It does not mention sibling tools such as 'extract_images' (which might retrieve image files) or 'insert_image' (which adds images), nor does it specify prerequisites or contexts for usage. This lack of comparative information leaves the agent without clear direction.

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

list_merge_fieldsA

Extract all MERGEFIELD names from a document or template.

Args: filepath: Path to the document

Returns: Dictionary with list of merge field names

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the operation is an extraction (read-only) and mentions the return format (dictionary), but lacks critical details: error handling (e.g., invalid filepath), performance characteristics (e.g., large document processing), authentication needs, or whether it modifies the document. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

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 well-structured: a clear purpose statement followed by dedicated 'Args' and 'Returns' sections. Every sentence earns its place—no redundant information, no fluff. The front-loaded purpose statement immediately communicates the tool's function.

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 the tool's moderate complexity (single parameter, read operation) and the presence of an output schema (which handles return value documentation), the description is minimally adequate. However, with no annotations and incomplete parameter semantics, it lacks sufficient context for safe, informed use—particularly around error conditions and behavioral constraints that aren't covered by structured fields.

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?

The schema has 0% description coverage, so the description must compensate. It explicitly documents the single parameter ('filepath: Path to the document'), adding clear semantics beyond the bare schema. However, it doesn't specify format details (e.g., absolute/relative paths, supported file extensions) or constraints (e.g., file must exist). Given the low schema coverage, this provides good but incomplete parameter context.

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

Purpose5/5

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

The description clearly states the specific action ('Extract all MERGEFIELD names') and target resource ('from a document or template'), distinguishing it from sibling tools like 'fill_merge_fields' (which modifies merge fields) and 'list_content_controls' (which lists different document elements). The verb 'extract' precisely conveys the read-only nature of the operation.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., document must exist), exclusions (e.g., file format limitations), or comparisons with related tools like 'get_document_properties' or 'list_content_controls'. The agent receives no contextual usage instructions.

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

list_stylesB

List all paragraph and character styles available in a document.

Args: filepath: Path to the document

Returns: Dictionary with list of styles

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states the tool lists styles but doesn't disclose critical details like whether it requires file access permissions, how it handles errors (e.g., invalid filepaths), or if it's read-only (implied but not confirmed). More context on operational behavior 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.

Conciseness4/5

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

The description is front-loaded with the core purpose, followed by structured Args and Returns sections, making it efficient. However, the 'Returns' section is somewhat redundant given the presence of an output schema, slightly reducing conciseness. Overall, it's well-organized with minimal waste.

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 the tool's low complexity (1 parameter) and the existence of an output schema, the description is adequate but has gaps. It covers the purpose and parameter semantics but lacks usage guidelines and sufficient behavioral transparency (e.g., error handling, permissions). For a read operation, it meets minimum viability but could be more complete.

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?

The description includes an 'Args' section that explains the single parameter ('filepath: Path to the document'), adding meaningful semantics beyond the schema's 0% coverage. This compensates well for the lack of schema descriptions, though it could specify format expectations (e.g., absolute vs. relative paths).

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

Purpose5/5

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

The description clearly states the specific action ('List all paragraph and character styles') and resource ('available in a document'), with a precise scope that distinguishes it from siblings like list_content_controls or list_equations. It explicitly identifies what types of styles are included (paragraph and character).

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 guidance is provided on when to use this tool versus alternatives. While it's implied this is for retrieving style information from a document, there's no mention of prerequisites, alternatives for different style types, or exclusions (e.g., table styles). The description lacks explicit usage context.

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

read_docxC

Read and extract text content from a Word document.

Args: filepath: Path to the document to read

Returns: Dictionary with document text and metadata

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 burden of behavioral disclosure. It states the tool reads and extracts text, implying a read-only operation, but doesn't specify permissions, file format constraints (e.g., .docx only), error handling, or performance aspects like rate limits. This leaves gaps for a tool that interacts with files.

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 concise and well-structured: a clear purpose statement followed by brief 'Args' and 'Returns' sections. Every sentence adds value, with no redundant information. It could be slightly more front-loaded by integrating the return info into the main sentence, but it's efficient overall.

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 the tool's moderate complexity (file reading with one parameter) and the presence of an output schema (which handles return values), the description is somewhat complete. It covers the basic operation but lacks details on behavioral aspects like error cases or constraints. With no annotations, it should provide more context to fully guide the agent.

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?

The description adds minimal semantics: it notes 'filepath: Path to the document to read,' which clarifies the parameter's purpose. However, with 0% schema description coverage and only one parameter, this provides basic context but lacks details like path format (absolute/relative) or supported file types. The baseline is 3 since schema coverage is low but the description compensates somewhat.

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 clearly states the tool's purpose: 'Read and extract text content from a Word document.' It specifies the verb ('read and extract'), resource ('Word document'), and content type ('text content'). However, it doesn't explicitly differentiate from sibling tools like 'get_document_properties' or 'extract_images', which might handle similar documents differently.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_document_properties' (which might return metadata without text) or 'extract_images' (which focuses on images), leaving the agent to infer usage based on tool names alone.

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

set_document_propertiesB

Set document properties and metadata.

Args: filepath: Path to the document title: Document title subject: Document subject author: Document author keywords: Document keywords comments: Document comments

Returns: Dictionary with status

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes
titleNo
subjectNo
authorNo
keywordsNo
commentsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 of behavioral disclosure. While 'Set' implies a mutation operation, the description doesn't specify whether this requires write permissions, if changes are destructive or reversible, what happens to existing properties not mentioned, or any rate limits. It mentions a return value ('Dictionary with status'), but doesn't explain what that status indicates (e.g., success/failure, error details).

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 well-structured and appropriately sized. It starts with a clear purpose statement, then lists parameters with brief semantics, and ends with return information. Every sentence earns its place, though the 'Args:' and 'Returns:' formatting could be more integrated into natural language for better flow.

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 that this is a mutation tool with 6 parameters, 0% schema description coverage, no annotations, but an output schema exists, the description is moderately complete. It covers the purpose and parameters adequately, but lacks behavioral context (permissions, side effects) and doesn't leverage the output schema to explain return values beyond 'Dictionary with status'. For a tool that modifies documents, more safety and usage context would be helpful.

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?

The description lists all 6 parameters with brief explanations (e.g., 'filepath: Path to the document'), adding meaningful context beyond the schema. Since schema description coverage is 0%, this compensates well by clarifying what each parameter represents. However, it doesn't explain parameter interactions (e.g., that null values might leave properties unchanged) or format details (e.g., filepath syntax).

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 clearly states the tool's purpose: 'Set document properties and metadata.' This specifies the verb ('Set') and resource ('document properties and metadata'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_document_properties' or 'write_docx', which would require more specific context about when to use each.

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 provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_document_properties' (for reading properties) and 'write_docx' (which might also modify content), there's no indication of when this specific metadata-setting tool is appropriate. The description lacks any context about prerequisites, file formats supported, 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.

set_list_levelB

Set indentation level for a list paragraph.

Args: filepath: Path to the document paragraph_index: Index of the paragraph level: Indentation level (0-8)

Returns: Dictionary with status

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes
paragraph_indexYes
levelYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but lacks behavioral details. It mentions a return type ('Dictionary with status') but doesn't specify what the status indicates, whether the operation is destructive, requires specific permissions, or has side effects. This is inadequate 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?

The description is front-loaded with the core purpose, followed by brief parameter and return explanations. It's efficient with minimal waste, though the 'Args:' and 'Returns:' sections could be integrated more smoothly into the flow.

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 the tool has an output schema (which handles return values), no annotations, and low schema coverage, the description is partially complete. It covers the basic purpose and parameter semantics but lacks usage guidelines and sufficient behavioral transparency, making it adequate but with clear gaps.

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?

The description adds meaningful context beyond the schema: it explains that 'level' is an 'Indentation level (0-8)', which clarifies its range and purpose. Since schema description coverage is 0%, this compensates well, though it doesn't detail all parameters (e.g., filepath format or paragraph_index specifics).

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 clearly states the action ('Set indentation level') and target ('for a list paragraph'), which is specific and distinguishes it from siblings like apply_bullet_list or apply_paragraph_style. However, it doesn't explicitly differentiate from all siblings (e.g., set_document_properties might also affect formatting), so it's not a perfect 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?

No guidance is provided on when to use this tool versus alternatives like apply_bullet_list or apply_paragraph_style, nor any prerequisites or context for its use. The description only states what it does, not when or why to choose it.

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

write_docxC

Create or overwrite a document with plain text content.

Args: filepath: Path to the document content: Text content to write

Returns: Dictionary with status

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes
contentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 full burden. It mentions 'create or overwrite' which implies mutation, but doesn't disclose critical behavioral traits: whether overwriting is destructive (replaces entire file), what permissions are needed, error handling for invalid paths, or file format specifics. The return value is minimally described as 'Dictionary with status' without detailing success/failure indicators.

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 appropriately concise with three clear sections: purpose statement, args, and returns. Each sentence earns its place, and information is front-loaded with the core functionality first. Minor improvement could be integrating the args/returns more seamlessly, but structure is efficient.

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 2 parameters with 0% schema coverage and no annotations, the description provides basic purpose and parameter meanings. An output schema exists (implied by 'Has output schema: true'), so describing return values isn't required. However, for a mutation tool that can overwrite files, more behavioral context (e.g., overwrite implications, error conditions) would enhance completeness, leaving it adequate but with gaps.

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 0%, so the schema provides no parameter documentation. The description adds basic semantics: 'filepath: Path to the document' and 'content: Text content to write', explaining what each parameter represents. However, it doesn't provide format details (e.g., path syntax, content encoding) or constraints (e.g., filepath must exist for overwrite), leaving gaps despite compensating somewhat for the schema's lack.

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 clearly states the tool's purpose: 'Create or overwrite a document with plain text content.' It specifies the verb ('create or overwrite'), resource ('document'), and content type ('plain text'). However, it doesn't explicitly differentiate from siblings like 'create_docx' or 'append_docx', which would require more specific comparison.

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 provides no guidance on when to use this tool versus alternatives. With siblings like 'create_docx' and 'append_docx' available, there's no indication of when this write/overwrite operation is preferred over creation or appending, nor any mention of prerequisites or constraints.

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.

  1. 24 tool updatesv0.1.0
    • First observedadd_image_caption
    • First observedappend_docx
    • First observedapply_bullet_list
    • First observedapply_numbered_list
    • First observedapply_paragraph_style
    • First observedcopy_docx
    • First observedcreate_docx
    • First observeddelete_docx
    • First observedextract_images
    • First observedfill_merge_fields
    • First observedget_document_properties
    • First observedget_equation
    • First observedhealth_check
    • First observedinsert_image
    • First observedlist_content_controls
    • First observedlist_docx
    • First observedlist_equations
    • First observedlist_images
    • First observedlist_merge_fields
    • First observedlist_styles
    • First observedread_docx
    • First observedset_document_properties
    • First observedset_list_level
    • First observedwrite_docx

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have distinct purposes targeting specific document elements (images, equations, lists, styles), though some overlap exists between write_docx/create_docx/append_docx for document creation/modification and between various list_* tools for different element types. Descriptions clarify boundaries well, but an agent might occasionally need to choose between similar tools.

Naming Consistency5/5

Excellent consistency with a clear verb_noun pattern throughout (e.g., add_image_caption, apply_bullet_list, extract_images, list_equations). All tools use snake_case exclusively, with verbs accurately describing actions (add, apply, copy, create, delete, extract, fill, get, insert, list, read, set, write). No deviations or mixed conventions.

Tool Count3/5

24 tools is borderline heavy for a document processing server, though the domain (Word document manipulation) is rich. Many tools are specialized (e.g., separate tools for bullet vs numbered lists, multiple image/equation tools), which could feel overwhelming but may be justified by the complexity of Word documents. A more consolidated design might reduce the count.

Completeness5/5

Extremely comprehensive coverage of Word document operations: full CRUD (create_docx, read_docx, write_docx, delete_docx), content manipulation (text, images, equations, lists, styles), metadata handling, merge fields, content controls, and utilities (copy, health_check). No obvious gaps; agents can perform complex document workflows without dead ends.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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/Andrew82106/LLM_Docx_Agent_MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server