Skip to main content
Glama

ppt-mcp

PDF2PPT 主服务的 MCP 接入层。

ppt-mcp 不重新实现 PDF 解析、OCR 或 PPT 生成。
它做的事情是把现有 PDF2PPT API 包装成 MCP tools,让 Claude Desktop、Cursor、Codex CLI 等客户端可以直接调用转换能力。

它和主服务是什么关系

一句话理解:

MCP Client -> ppt-mcp -> PDF2PPT API -> worker

职责边界:

  • PDF2PPT 主服务负责 PDF 解析、OCR、任务调度和 PPT 生成

  • ppt-mcp 负责 MCP 协议适配和工具封装

  • 两者不是两套重复系统,而是主服务与接入层关系

Related MCP server: mcp-ToseaAI

适合什么场景

  • 想让 AI 客户端直接调用 PDF 转 PPT,而不是手动打开 Web 页面

  • 想把“上传 PDF -> 创建任务 -> 轮询状态 -> 下载结果”封装成 MCP tools

  • 想把现有 PDF2PPT 服务接入本地 Agent 或自动化工作流

推荐使用方式

1. 本地 stdio MCP,最简单也最稳

这是默认推荐模式。

  • PDF2PPT 服务跑在本机

  • ppt-mcp 也跑在本机

  • transport 使用 stdio

  • PPT_API_BASE_URL 指向 http://127.0.0.1:8000

这时:

  • 浏览器用户走 Web 页面

  • MCP 用户走本地 API

  • 两条链路互不干扰

2. 本地 stdio MCP,连接远程 PDF2PPT

适合:

  • AI 客户端在本机

  • 但转换服务部署在远程服务器

这时:

  • PPT_API_BASE_URL 指向远程服务根地址

  • ppt-mcp 仍然在本机运行

  • 本地 PDF 由 ppt-mcp 读取后上传到远程 API

3. 远程 ppt-mcp-remote

适合:

  • 团队共用

  • 需要统一 MCP 入口

  • 需要 Streamable HTTP MCP

但复杂度更高:

  • 需要入口认证

  • 需要处理上传源文件

  • 需要考虑下载、权限和公网暴露

如果只是本机自用,优先使用第 1 种。

快速开始

1. 先启动主服务

cd /home/lan/workspace/ppt
docker compose up -d --build api worker redis

默认情况下,ppt-mcp 会连接:

  • http://127.0.0.1:8000

2. 安装

cd /home/lan/workspace/ppt-mcp
uv sync

3. 运行本地 stdio MCP

cd /home/lan/workspace/ppt-mcp
uv run ppt-mcp

4. 最少环境变量

cp .env.example .env

最少需要:

PPT_API_BASE_URL=http://127.0.0.1:8000
PPT_API_TIMEOUT_SECONDS=120

高层 route workflow 默认还会写本地状态到:

var/route-workflows

这让 ppt_check_route -> ppt_set_conversion_target -> ppt_list_route_models -> ppt_set_route_options -> ppt_convert_pdf 这一串高层工具在 MCP 宿主进程重启后,仍可以继续沿用同一个 route_workflow_id。默认 TTL 是 3600 秒,超过后仍会要求从 ppt_check_route 重新开始。

如果主服务开启了:

API_BEARER_TOKEN=your-shared-secret

那么这里也要配置:

PPT_API_BEARER_TOKEN=your-shared-secret

关键配置

PPT_API_BASE_URL 应该怎么写

它应该指向 PDF2PPT 服务根地址,而不是 /api/v1

正确示例:

PPT_API_BASE_URL=http://127.0.0.1:8000

或者:

PPT_API_BASE_URL=https://ppt.example.com

不建议写成:

PPT_API_BASE_URL=http://127.0.0.1:8000/api/v1

也不建议默认写成 Web 入口:

PPT_API_BASE_URL=http://127.0.0.1:3000

因为 3000 这条链路通常会受到 WEB_ACCESS_PASSWORD 影响。

Bearer Token 的对应关系

  • API_BEARER_TOKEN 是主服务 API 要求的密码

  • PPT_API_BEARER_TOKENppt-mcp 请求 API 时带上的密码

通常这两个值应保持一致。

高层 route workflow 本地持久化

当前高层 route workflow 不再只保存在进程内存。

  • 每次 ppt_check_route 创建 workflow 后,会把状态写到本地目录

  • 后续 ppt_set_conversion_targetppt_list_route_modelsppt_set_route_options 更新后也会同步写回

  • 如果 MCP 宿主只是重启进程,但仍在同一台机器、同一份存储目录上运行,原来的 route_workflow_id 仍可恢复

  • 如果 workflow 超过 TTL,或者持久化文件损坏 / 被删除,仍会返回“请从 ppt_check_route 重新开始”

相关环境变量:

  • PPT_MCP_ROUTE_WORKFLOW_STORE_DIR 默认值是仓库内的 var/route-workflows

  • PPT_MCP_ROUTE_WORKFLOW_TTL_SECONDS 默认值是 3600

示例:

PPT_MCP_ROUTE_WORKFLOW_STORE_DIR=/home/lan/workspace/ppt-mcp/var/route-workflows
PPT_MCP_ROUTE_WORKFLOW_TTL_SECONDS=3600

这两个变量只影响高层 route workflow 的本地恢复,不影响远程 ppt-mcp-remote 的上传源缓存目录 PPT_MCP_DATA_DIR

当前工具能力

ppt-mcp 已覆盖主服务的常见任务流,包括:

  • 路线查询与确认

  • 创建任务

  • 查询任务状态

  • 列出任务

  • 取消任务

  • 下载结果

  • 读取产物

  • 列出模型

  • 检查 AI OCR 路线

从使用方式上,更推荐优先走高层 route workflow,而不是一开始就手填所有底层字段。

路径兼容性

本地 stdio 模式下,ppt-mcp 现在会转换常见路径格式:

  • Windows 路径,例如 C:\Users\...\file.pdf

  • \\wsl.localhost\发行版名\... 路径

这使得 MCP 客户端在 Windows / WSL 混合环境下更容易把本地 PDF 路径传给 ppt-mcp

文档

更详细的说明已拆到 docs/

MCP 配置示例

本地 clone 方式:

{
  "mcpServers": {
    "ppt": {
      "command": "uv",
      "args": [
        "--directory",
        "/home/lan/workspace/ppt-mcp",
        "run",
        "ppt-mcp"
      ],
      "env": {
        "PPT_API_BASE_URL": "http://127.0.0.1:8000"
      }
    }
  }
}

远程:

{
  "ppt": {
    "type": "stdio",
    "command": "uvx",
    "args": [
      "--from",
      "git+https://github.com/ZiChuanLan/ppt-mcp",
      "ppt-mcp"
    ],
    "env": {
      "PPT_API_BASE_URL": "https://ppt.015201314.xyz",
      "MINERU_API_TOKEN": "yourkey",
      "SILICONFLOW_API_KEY": "sk-yourkey"
    }
  }
}

License

MIT.

Available Tools

16 tools
ppt_cancel_jobB

Cancel a pending or running conversion job.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

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?

No annotations are provided, so the description carries the full burden. It states only the action without disclosing side effects, error conditions, or what happens to the job after cancellation. This is a significant gap for a mutation operation.

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 a single, focused sentence with no fluff. It front-loads the verb and object, making it immediately scannable.

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

Completeness3/5

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

For a simple cancel tool with one parameter and an output schema, the description gives the core purpose. However, it omits behavioral context like error handling or prerequisites, making it only minimally complete.

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

Parameters2/5

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

Schema coverage is 0%, and the description does not mention job_id at all. The schema only provides name and type, so the description fails to explain how to identify the job or any constraints on the parameter.

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 uses the specific verb 'Cancel' and identifies the resource as 'conversion job', with a scope qualifier ('pending or running'). It clearly distinguishes from sibling tools like ppt_get_job_status and ppt_create_job.

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 for cancelling jobs that are pending or running, but provides no explicit when-to-use or alternatives. It does not state what to do for completed jobs or mention other tools.

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

ppt_check_ai_ocrC

Probe whether a model can work on the current AI OCR chain.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYes
api_keyYes
optionsNo
base_urlNo
providerNoauto
ocr_ai_chain_modeNolayout_block

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.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. It states the tool 'probes' something but does not reveal whether it performs network requests, what side effects exist, what it returns, or any authentication requirements. This is a significant gap.

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

Conciseness3/5

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

The description is a single sentence with no filler, which is concise. However, it is under-specified rather than efficiently complete, leaving out crucial context that would make it a high-quality tool description.

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

Completeness1/5

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

With six parameters and no annotations, the description is wholly insufficient for an agent to understand the tool's behavior, inputs, or expected output. Even though an output schema exists, the description does not explain what the probe actually checks or how to interpret results.

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

Parameters1/5

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

The schema has 0% description coverage for parameters, and the description mentions none of the six parameters (api_key, model, options, base_url, provider, ocr_ai_chain_mode). The description adds no meaning beyond the bare parameter names, so it fails to compensate for the lack of schema descriptions.

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

Purpose3/5

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

The description uses a specific verb ('Probe') and a target resource ('the current AI OCR chain'), which suggests a validation/testing purpose. However, 'whether a model can work' is vague and does not define what success or failure looks like, nor does it clearly differentiate from sibling tools like ppt_health_check or ppt_check_route.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or context. It only states what it does at a high level, leaving the agent to guess when this tool is appropriate.

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

ppt_check_routeA

Lock a high-level route workflow after the user explicitly confirms it.

This is step 1 of the high-level guided flow. It only locks the route and returns a route_workflow_id. Then use ppt_set_conversion_target, ppt_list_route_models if needed, ppt_set_route_options, and finally ppt_convert_pdf.

ParametersJSON Schema
NameRequiredDescriptionDefault
routeYes
route_confirmedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden for behavioral disclosure. It discloses that the tool only locks the route, returns a route_workflow_id, and requires explicit user confirmation via route_confirmed. It could add more detail about side effects or reversible actions, but the 'only locks' phrasing limits ambiguity.

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 concise and front-loaded with the primary purpose. Every sentence earns its place: the first states the action, the second explains the workflow position and output, the third lists follow-up tools. No filler.

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?

The description covers the workflow position and return value, and an output schema exists, so the return is partially documented. However, the 'route' parameter remains unclear, and the tool's prerequisite (e.g., that the route comes from ppt_list_routes) is only implicit via siblings. Overall it is adequate but has clear gaps in parameter context.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for parameter meaning. It only vaguely hints at route_confirmed through 'after the user explicitly confirms it' and does not explain what the 'route' parameter should contain (e.g., a route name or ID from ppt_list_routes). The description fails to provide useful details about either parameter.

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 opens with 'Lock a high-level route workflow after the user explicitly confirms it,' which uses a specific verb (lock) and resource (route workflow). It clearly distinguishes itself as step 1 of a guided flow, differentiating it from sibling tools like ppt_convert_pdf.

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

Usage Guidelines5/5

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

Explicitly states the tool is 'step 1 of the high-level guided flow' and lists the exact sequence of subsequent tools to call (ppt_set_conversion_target, ppt_list_route_models if needed, ppt_set_route_options, ppt_convert_pdf). It also says 'It only locks the route,' clarifying what the tool does NOT do.

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

ppt_convert_pdfC

Submit the locked high-level workflow after target and options are ready.

ParametersJSON Schema
NameRequiredDescriptionDefault
route_workflow_idYes
retain_process_artifactsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2/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 responsibility for behavioral disclosure. It does not mention side effects, whether a job is created, whether the workflow is locked or irreversible, or what the response contains. This is a significant gap.

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

Conciseness2/5

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

The description is a single short sentence, but it is under-specified and relies on undefined jargon. Brevity is not valuable when it sacrifices clarity and actionable information.

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

Completeness1/5

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

Given an output schema, two parameters, and a pipeline of sibling tools, the description is severely incomplete. It does not explain the tool's role in the conversion workflow, prerequisites beyond a vague 'target and options ready', or the meaning of 'locked'. The agent is left to guess.

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

Parameters1/5

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

Schema coverage is 0%, so the description must compensate by explaining parameters. It does not mention route_workflow_id or retain_process_artifacts, nor does 'locked high-level workflow' clearly map to either parameter. The agent receives no meaningful parameter guidance.

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

Purpose2/5

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

The description uses the vague phrase 'locked high-level workflow' without stating that this tool converts PPT to PDF or triggers a conversion job. The verb 'Submit' is present, but the resource is undefined and does not distinguish it from sibling tools like create_job or submit.

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 phrase 'after target and options are ready' provides a sequencing hint, implying this tool should be used after set_conversion_target and set_route_options. However, it does not explicitly name alternatives or state when not to use it.

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

ppt_create_jobA

Create a PDF-to-PPT conversion job from a local pdf_path.

The PDF is read from local disk by this MCP server, then uploaded to the running ppt API. This is the low-level escape hatch. For normal use prefer ppt_list_routes -> ppt_check_route -> ppt_set_conversion_target -> ppt_list_route_models (if needed) -> ppt_set_route_options -> ppt_convert_pdf.

Never use this tool unless the user explicitly asks to bypass the guided route workflow and confirms low_level_override_confirmed=true. The pdf_path must be a real existing local PDF path explicitly provided by the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
optionsNo
pdf_pathYes
low_level_override_confirmedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that the PDF is read from local disk by this MCP server and uploaded to the running PPT API. It also highlights the safety requirement (explicit user override). However, it does not cover side effects, job persistence, or error behavior, so it is not fully transparent. Still, it adds meaningful behavioral context beyond basic mutation.

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 efficiently structured: a one-line purpose, a concise process explanation, a clear recommendation for alternatives, and a strong safety warning. Every sentence earns its place, and the most critical info (when to use) is front-loaded.

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?

The tool has an output schema (which presumably explains return values) and is a low-level job creation operation. The description covers the process, prerequisites, and safety constraint. However, it doesn't mention what a 'job' is or describe any lifecycle behaviors. Given the output schema, the description is mostly complete but could add a bit more context about job semantics.

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

Parameters3/5

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

Schema coverage is 0% (no parameter descriptions). The description compensates for pdf_path (must be a real existing local PDF path) and low_level_override_confirmed (must be confirmed), but it does not explain the 'options' parameter at all. With three parameters and no schema descriptions, partial coverage merits a 3.

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 function: 'Create a PDF-to-PPT conversion job from a local pdf_path.' It also distinguishes itself from sibling tools by labeling itself as a 'low-level escape hatch' and contrasting with the normal guided workflow (ppt_convert_pdf). This is a specific verb+resource with clear differentiation.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: it says to prefer the guided route workflow (listing exact steps) and explicitly states 'Never use this tool unless the user explicitly asks to bypass the guided route workflow and confirms low_level_override_confirmed=true.' This is a clear when/when-not with named alternatives.

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

ppt_download_artifactC

Download a retained artifact file to a local output path.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
output_pathNo
artifact_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full behavioral burden. It only states 'download to a local output path' without disclosing side effects like file creation, overwrite behavior, or the handling of the optional output_path.

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 a single concise sentence with no unnecessary words. It is front-loaded with the verb and object, making it highly scannable.

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

Completeness2/5

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

With no annotations and three parameters at 0% schema coverage, the description is too thin. It omits the relationship between job_id and artifact_path and does not explain what happens when output_path is null, despite having an output schema.

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

Parameters2/5

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

Schema description coverage is 0%, and the description provides minimal parameter context. It hints at output_path ('local output path') but does not explain job_id's role or clarify artifact_path. This fails to compensate for the schema gap.

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 uses a specific verb 'Download' and resource 'retained artifact file', clearly indicating the action. It implicitly distinguishes from siblings like ppt_download_result and ppt_get_job_artifacts, though not explicitly naming 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 is provided on when to use this tool versus alternatives. The description only states the action without mentioning prerequisites, exclusions, or relationships to other tools like ppt_get_job_artifacts.

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

ppt_download_resultC

Download the completed PPTX result to a local output path.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
output_pathNo

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 responsibility for disclosing side effects. It only says 'download', not mentioning what happens when output_path is null, whether files are overwritten, or any potential errors. This is a significant gap for an operation that writes to the local filesystem.

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 a single, well-formed sentence with no extraneous words. It is appropriately concise for the simple operation it describes, though it sacrifices detail for brevity.

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

Completeness2/5

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

The tool has no annotations, an output schema, and a simple parameter set, but the description lacks essential context: it does not clarify the relationship to a job, the optional output_path behavior, or any prerequisites. It is not complete enough for an agent to use reliably without guessing.

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

Parameters1/5

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

The schema has 0% description coverage, and the description does not compensate. It implicitly refers to 'output path' but never mentions the required job_id parameter or explains the optional/nullable behavior of output_path. Parameters are effectively undocumented.

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 states a clear action ('Download') with a specific resource ('completed PPTX result') and destination ('local output path'). This distinguishes it from sibling tools like ppt_download_artifact, which is generic, and relates to the conversion workflow.

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, such as after job completion, or how it differs from alternatives like ppt_download_artifact. The word 'completed' implies a precondition, but it is not explicitly stated.

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

ppt_get_job_artifactsB

Return debug/process artifact metadata for a job.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It clearly indicates a read-only metadata retrieval operation, but it does not disclose additional behavioral traits such as whether it returns empty results, requires specific permissions, or has rate limits. It adds minimal context beyond the tool name.

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 a single concise sentence with no redundant or irrelevant content. It is front-loaded with the action and resource.

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 (one parameter, output schema present), the description covers the basic action. However, it lacks usage guidance and parameter semantics, making it minimally viable but with clear gaps. The output schema mitigates return-format ambiguity, but the description alone is sparse.

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

Parameters2/5

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

Schema coverage is 0% and the description does not compensate. The only parameter, job_id, is not described beyond the schema's title 'Job Id'. The phrase 'for a job' adds minimal context, but no format, constraints, or examples are provided.

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 uses a specific verb ('Return') with a clear resource ('debug/process artifact metadata for a job'). It distinguishes from sibling tools like ppt_get_job_status (status) and ppt_download_artifact (artifact download) by focusing on metadata.

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 vs alternatives. It does not mention typical workflow context (e.g., 'use to list artifacts before downloading') or exclude cases. The usage context is left entirely to the agent.

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

ppt_get_job_statusA

Get the current status, stage, progress, and errors for a job.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/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 burden. It discloses that the tool returns status, stage, progress, and errors, providing useful behavioral context. However, it does not mention idempotency, safety, or behavior for invalid/unknown job IDs, which is a gap for a tool likely used in polling.

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 a single concise sentence with no redundancy. It is front-loaded with the action and lists the key return fields efficiently.

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

Completeness4/5

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

For a simple one-parameter tool with an output schema, the description is nearly complete. It specifies what will be returned. It could mention polling behavior or that it is read-only, but the tool name and sibling context imply this.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain the 'job_id' parameter beyond the schema's field name and type. Since the description adds no meaning about how to obtain or format the job ID, it fails to compensate for the schema's lack of detail.

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 states a specific verb and resource: 'Get the current status, stage, progress, and errors for a job.' This clearly defines the tool's function and distinguishes it from siblings like ppt_cancel_job, ppt_list_jobs, and ppt_get_job_artifacts.

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 for checking job status but does not explicitly state when to use this tool versus alternatives or mention exclusions. For example, it does not contrast with ppt_list_jobs or explain that it is for a single job's detailed status.

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

ppt_health_checkB

Check whether the wrapped local ppt API is reachable.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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?

No annotations are provided, so the description carries full burden for behavioral disclosure. It only states what it checks, but doesn't disclose what occurs if the API is unreachable, timeouts, or expected response format. This is insufficient for a tool with no other metadata.

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 a single sentence that is direct and front-loaded, containing no waste. It states the core functionality immediately.

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

Completeness5/5

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

The tool is a simple health check with no parameters and has an output schema (per context signals), so the description doesn't need to explain return values. The minimal description is sufficient for the tool's low complexity.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description doesn't need to explain parameters, and the schema coverage is trivially 100%. No additional parameter context is required.

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 ('Check') and the resource ('wrapped local ppt API'), and specifies the purpose (reachability). It is distinct from sibling tools like ppt_check_route, which checks a specific route, though it doesn't explicitly differentiate itself.

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 explicit guidance on when to use this tool versus alternatives. While it implies a pre-flight connectivity check, it doesn't state any context or mention that other tools depend on this check.

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

ppt_list_ai_modelsA

Low-level raw model discovery. Prefer ppt_list_route_models in normal OCR flows.

Only repeat the exact returned model IDs to the user. Do not invent provider categories, unofficial aliases, or recommendations.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyYes
base_urlNo
providerYes
capabilityNoocr

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, the description carries the burden. It adds useful behavioral guidance (repeat exact model IDs, don't invent categories/recommendations), but doesn't disclose return format, pagination, or any side effects/auth requirements beyond what's implied.

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 three sentences, each with a clear purpose: defining the tool, pointing to the alternative, and imposing output fidelity rules. No wasted words.

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?

The tool is simple and has an output schema, but with 0% parameter documentation and no parameter info in the description, the agent is left guessing on required fields. The usage guidance and purpose are clear, but the parameter gap makes it incomplete.

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

Parameters1/5

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

Schema description coverage is 0%, and the description provides no information about any of the four parameters (api_key, base_url, provider, capability). The description fails to compensate for the missing schema explanations, leaving the agent without clues about how to fill these fields.

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 uses a specific verb+resource ('low-level raw model discovery') and explicitly distinguishes from sibling `ppt_list_route_models` by recommending it for normal OCR flows. This makes the tool's purpose clear and differentiated.

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

Usage Guidelines4/5

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

It explicitly directs users to prefer `ppt_list_route_models` in normal OCR flows, implying this tool is for raw/low-level discovery. However, it doesn't state specific scenarios where this tool should be used over the alternative, only the negative condition.

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

ppt_list_jobsB

List recent conversion jobs from the wrapped local ppt API.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

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 must disclose behavioral traits, but it only states the core function. It does not mention that the operation is read-only, nor does it explain ordering (e.g., 'recent' by time), pagination, or the effect of the optional limit parameter. The description adds minimal behavior beyond the tool's name.

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 a single sentence with no redundant wording. It is front-loaded and appropriately sized for the minimal information it contains, making every word purposeful.

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

Completeness2/5

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

Given the simple interface (one optional parameter) and presence of an output schema, the description should at least clarify the behavior of the limit parameter and the meaning of 'recent'. Without these details, the description is incomplete for an agent to predict the tool's full behavior, even though the output schema may cover return structure.

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

Parameters1/5

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

The schema has one parameter 'limit' with no description, and schema description coverage is 0%. The description fails to explain the meaning or effect of 'limit', nor does it mention any parameter at all, leaving the agent to infer semantics solely from the parameter name.

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 explicitly states the action ('List') and the resource ('recent conversion jobs') with a specific source ('wrapped local ppt API'). This clearly distinguishes it from sibling tools like ppt_get_job_status, which target individual jobs.

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 its usage as a listing operation but provides no explicit guidance on when to choose it over alternatives, nor does it mention any exclusions or related tools. The name and action make the primary use clear, but no comparative context is given.

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

ppt_list_route_modelsA

List candidate models for the currently locked high-level route workflow.

Only use this after pdf_path and page range are already confirmed on the same route_workflow_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
route_workflow_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/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 burden of behavioral disclosure. It adds useful context about the workflow being 'locked' and the precondition, but doesn't mention whether the operation is read-only, what the output represents beyond 'candidate models', or any side effects. This is adequate but not rich.

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 two sentences, front-loaded with the purpose, and every word earns its place. The precondition is stated succinctly without redundancy.

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 simplicity (1 parameter, output schema present, no annotations), the description is largely complete: it explains what the tool does and the required context. It doesn't detail return values (covered by output schema) or elaborate on 'candidate models', but that's acceptable for a straightforward list operation.

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. The only parameter (route_workflow_id) is indirectly explained in the usage note ('same route_workflow_id'), making it clear it identifies the workflow, but no format, source, or additional semantics are provided. This meets the minimum threshold but doesn't fully compensate.

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 lists candidate models for a specific workflow ('currently locked high-level route workflow'), using a specific verb ('List') and resource. This distinguishes it from sibling tools like ppt_list_ai_models, which likely serve a different purpose.

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

Usage Guidelines4/5

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

It provides an explicit precondition: only use after pdf_path and page range are confirmed on the same route_workflow_id. This gives clear context for when to use, though it doesn't name alternative tools or explicitly state when not to use it.

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

ppt_list_routesA

List human-friendly routes for the user to choose from.

Do not choose, infer, or recommend a route on the user's behalf. The next step is to ask the user to pick one route, then call ppt_check_route with that route and route_confirmed=true.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/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 key behavioral constraints: the tool only lists routes and must not infer or recommend one. It also states the expected next step, which clarifies the tool's limited role. However, it does not describe data source, latency, or any potential errors, leaving some behavioral aspects implicit.

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 compact and front-loaded with the primary purpose, followed by critical usage constraints. Every sentence earns its place; there is no redundancy or filler.

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

Completeness5/5

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

Given the tool has zero parameters and an output schema exists, the description need not explain return values. It provides complete context for the agent: list routes, ask the user, then call `ppt_check_route`. This is sufficient for correct invocation within the sibling toolset.

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 input schema is empty, so there are no parameters to explain. Per rubric, this yields a baseline of 4. The description adds no parameter details because none exist, and that is appropriate.

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 immediately states the tool's purpose: 'List human-friendly routes for the user to choose from.' It uses a specific verb ('List') and resource ('routes'), and clearly differentiates its role from the sibling `ppt_check_route` by framing listing as a pre-step to checking a chosen route.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: 'Do not choose, infer, or recommend a route on the user's behalf' and explicitly directs the next action: 'call `ppt_check_route` with that route and `route_confirmed=true`.' This tells the agent exactly when and how to use the tool within the workflow.

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

ppt_set_conversion_targetA

Write pdf_path and page range decisions into a locked route workflow.

This is step 2 of the high-level guided flow. Use it to persist conversion target state so weaker models do not have to remember page ranges from chat history. pdf_path must be a real local PDF path explicitly provided by the user. Do not treat the page scope as complete until page_range_confirmed=true is explicitly written for the currently selected pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_endNo
pdf_pathNo
page_startNo
route_workflow_idYes
page_range_decisionNo
page_range_confirmedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/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 discloses persistence into a locked workflow, requires explicit user-provided pdf_path, and warns that page scope is not complete until page_range_confirmed=true is written. It does not discuss lock semantics or overwrite behavior, but the critical behavioral constraints are present.

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 four concise sentences, front-loaded with the primary purpose, then context, then two critical operational warnings. Every sentence earns its place; there is no fluff or redundant restating of the tool name.

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 has 6 parameters, no annotations, and an output schema (not shown), the description provides good context: its place in the flow, persistence rationale, and confirmation semantics. It could further explain page_start/page_end vs page_range_decision relationships, but it suffices for an agent to select and invoke the tool correctly in most guided-flow scenarios.

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 meaning for pdf_path (must be real local PDF path) and page_range_confirmed (must be explicitly true before scope is complete), and mentions 'page range decisions' for page_range_decision. However, page_start/page_end interaction and route_workflow_id semantics are left implicit, so compensation is only partial.

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 opens with a specific verb+resource statement: 'Write pdf_path and page range decisions into a locked route workflow.' It clearly identifies the tool's purpose as persisting conversion target state and explicitly labels it as 'step 2' of a guided flow, distinguishing it from sibling tools like ppt_set_route_options and ppt_convert_pdf.

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

Usage Guidelines4/5

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

Provides clear contextual guidance: it is step 2 of a guided flow, used to persist state so weaker models don't need to remember page ranges. It also sets a firm prerequisite that pdf_path must be a real local PDF path explicitly provided by the user. It does not name alternatives or state when not to use it, but the sequential flow context is strong.

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

ppt_set_route_optionsA

Write scanned-page, footer, and AI model decisions into the workflow.

This is step 3 of the high-level guided flow. Use ppt_list_route_models first when the user wants to select a non-default AI OCR model. Do not use this tool before pdf_path and page range are confirmed.

ParametersJSON Schema
NameRequiredDescriptionDefault
ocr_ai_modelNo
route_workflow_idYes
scanned_page_modeNo
ocr_ai_model_decisionNo
remove_footer_notebooklmNo
ocr_ai_model_choice_indexNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses a sequencing precondition (step 3) and a prerequisite (pdf_path/page range confirmation), but does not describe side effects such as whether prior options are overwritten, whether the operation is idempotent, or what happens on failure. This is partially transparent but lacks mutation details.

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 only three sentences, front-loaded with the core purpose (Write decisions into workflow) followed by usage context and a clear warning. Every sentence adds value with no filler or redundancy.

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 6 parameters, 0% schema coverage, and no annotations, the description provides helpful guided-flow context (step 3) and a key precondition, but does not fully equip the agent to correctly set all parameters. The output schema exists but only specifies types/enums, not semantic relationships. It is adequate for a step in a flow but could elaborate on parameter decisions.

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

Parameters3/5

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

Schema coverage is 0% and no parameter descriptions exist in the schema. The description maps high-level concepts ('scanned-page', 'footer', 'AI model') to parameter groups, which helps infer meaning for scanned_page_mode, remove_footer_notebooklm, and the OCR model fields. However, it does not explain individual parameters like route_workflow_id, ocr_ai_model_decision, or ocr_ai_model_choice_index, leaving gaps.

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 uses a specific verb 'Write' and identifies the resource (scanned-page, footer, and AI model decisions) and the destination (the workflow). It also distinguishes itself from the sibling tool ppt_list_route_models by referencing it as an alternative, clarifying its role as a setter rather than a lister.

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

Usage Guidelines5/5

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

Explicitly states when to use ppt_list_route_models first (when user wants a non-default AI OCR model) and when NOT to use this tool (before pdf_path and page range are confirmed). This gives clear sequencing and alternative selection guidance.

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. 16 tool updatesv0.1.0
    • First observedppt_cancel_job
    • First observedppt_check_ai_ocr
    • First observedppt_check_route
    • First observedppt_convert_pdf
    • First observedppt_create_job
    • First observedppt_download_artifact
    • First observedppt_download_result
    • First observedppt_get_job_artifacts
    • First observedppt_get_job_status
    • First observedppt_health_check
    • First observedppt_list_ai_models
    • First observedppt_list_jobs
    • First observedppt_list_route_models
    • First observedppt_list_routes
    • First observedppt_set_conversion_target
    • First observedppt_set_route_options

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, but ppt_list_route_models and ppt_list_ai_models overlap conceptually, and ppt_check_route vs ppt_create_job may be confused as both initiate workflows. However, descriptions clearly differentiate high-level guided flow from low-level escape hatch, reducing real ambiguity.

Naming Consistency5/5

All tools share a consistent 'ppt_verb_noun' snake_case pattern, with clear action-object pairs. Verbs are consistent (list, get, set, create, download, check) and objects are specific, making the naming predictable and readable.

Tool Count4/5

16 tools is slightly above the ideal 3-15 range, but each tool maps to a distinct step in either the high-level guided workflow or low-level job management. The two parallel flows justify the count, making it reasonable.

Completeness5/5

The tool surface covers the full lifecycle: route selection, workflow state management, job creation, status tracking, cancellation, and result/artifact download. Both high-level and low-level paths are represented, leaving no critical gaps for the PDF-to-PPT conversion domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

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/ZiChuanLan/ppt-mcp'

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