Skip to main content
Glama
JFTavares

InDesign MCP para Windows

by JFTavares

InDesign MCP para Windows

Uso por sua conta e risco. Cada usuário é responsável pelas operações executadas, pelos backups e pela revisão dos resultados. Leia o aviso de responsabilidade antes de usar.

Automação editorial com inteligência artificial para Adobe InDesign no Windows, uma iniciativa da Booknando.

A Booknando oferece serviços e tecnologia para editoras, combinando experiência em produção editorial com desenvolvimento de ferramentas que ajudam a melhorar a qualidade, a acessibilidade e a eficiência dos processos. Trabalhamos com livros digitais, EPUB, acessibilidade editorial e soluções para os desafios de produção das editoras.

Este MCP faz parte desse compromisso: aproximar a inteligência artificial das ferramentas que as equipes editoriais já utilizam, automatizando tarefas no InDesign e reduzindo trabalho repetitivo.

Sua editora precisa de serviços de produção digital ou de tecnologia para o fluxo editorial? Conheça a Booknando e fale com nossa equipe.

Adaptação do lucdesign/indesign-mcp-server, mantendo os nomes e as 51 ferramentas do original. A comunicação com o InDesign usa COM + Windows PowerShell + ExtendScript, no lugar de AppleScript. Licença MIT original preservada em LICENSE.

O teste de integração incluído cria um documento, texto, estilo, cor, camada, retângulo e tabela, salva INDD, exporta PDF e reabre o documento. As demais ferramentas foram portadas, mas nem todas as suas combinações de opções foram verificadas no aplicativo.

Requisitos

  • Windows 10/11 com sessão gráfica e InDesign desktop instalado, ativado e registrado para COM.

  • Node.js 20 ou superior e npm.

  • Windows PowerShell 5.1, incluído no Windows. Não requer Python, WSL, AppleScript ou módulos COM nativos para Node.

  • Cliente MCP local com transporte stdio. Execute-o com o mesmo usuário e nível de elevação do InDesign.

Abra o InDesign uma vez e conclua eventuais telas de licença ou boas-vindas. A ponte tenta conectar à instância existente e, se necessário, inicia o aplicativo via COM.

Related MCP server: indesign-cli MCP Server

Instalar

Clone o repositório no PowerShell:

git clone https://github.com/JFTavares/indesign-mcp-windows.git
cd indesign-mcp-windows

Dentro da pasta do projeto:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\install.ps1

O instalador baixa as dependências fixadas em package-lock.json, gera os exemplos de configuração com caminhos absolutos e executa os testes sem abrir o InDesign. O Bypass vale somente para esse processo, sem alterar a política global.

Alternativa manual:

npm.cmd ci --ignore-scripts
node scripts/configure.js
npm.cmd test
npm.cmd run doctor

Os arquivos em config/ são gerados na instalação com os caminhos do seu computador e não são versionados. Exemplos genéricos ficam em examples/.

Conectar ao Codex

Copie o bloco de config/codex.windows.toml para %USERPROFILE%\.codex\config.toml. Se já existir [mcp_servers.indesign], atualize esse bloco em vez de duplicá-lo. Reinicie a conexão MCP no cliente depois de salvar.

O exemplo usa node.exe e index.js com caminhos absolutos, além de um tempo limite do cliente maior que o da ponte. O formato está descrito na documentação oficial de MCP do Codex.

Claude Desktop e Claude Cowork

Instalar no Claude Desktop para Windows

  1. Conclua a instalação deste projeto e abra o InDesign.

  2. No Claude Desktop, abra Settings > Developer > Edit Config para localizar claude_desktop_config.json. O caminho usual no Windows é %APPDATA%\Claude\claude_desktop_config.json; prefira abrir pelo aplicativo.

  3. Adicione a entrada indesign de config/mcp.windows.json dentro de mcpServers. Preserve os servidores que já estiverem configurados. Para uma configuração nova, use o arquivo gerado inteiro.

  4. Encerre completamente o Claude Desktop e abra-o novamente. Confira se o servidor indesign está disponível nas ferramentas da conversa.

  5. Peça: “Use get_document_info do MCP indesign para consultar o documento ativo.”

Exemplo — substitua os caminhos pelos da sua instalação:

{
  "mcpServers": {
    "indesign": {
      "command": "C:/Program Files/nodejs/node.exe",
      "args": ["C:/Projects/indesign-mcp-windows/index.js"],
      "env": {
        "INDESIGN_PROGID": "InDesign.Application",
        "INDESIGN_TIMEOUT_MS": "60000",
        "INDESIGN_ALLOW_ARBITRARY_CODE": "0"
      }
    }
  }
}

Referência: guia oficial de conexão de servidores MCP locais.

Usar com Claude Cowork: disponibilidade e limites

A configuração do Desktop acima não garante que o servidor apareça no Cowork. A documentação de conectores da Anthropic informa que servidores adicionados por claude_desktop_config.json não ficam disponíveis no Cowork. Já a documentação de arquitetura descreve suporte a MCPs de plugins locais em determinadas implantações desktop. São mecanismos diferentes, e este repositório fornece um servidor stdio, sem pacote de plugin ou extensão MCPB para Cowork.

Para usar esta versão com Claude, siga o procedimento do Claude Desktop com MCP local. Caso o servidor não apareça na sessão do Cowork, use a conversa do Desktop que disponibilize as ferramentas locais. A integração específica com Cowork permanece não validada; não há instalação direta de Cowork oferecida nesta versão.

O servidor precisa executar no Windows com acesso ao InDesign. Ele não fornece uma URL HTTP para a tela de conectores remotos e não pode ser iniciado dentro da VM Linux do Cowork usando o Node Linux.

Referências: conectores remotos e limites dos MCPs locais e arquitetura do Cowork.

Instalar no Hermes Agent

Use o Hermes nativo para Windows, no mesmo computador e usuário do InDesign. Se ainda não o tiver, siga o guia oficial de instalação no Windows. Conclua também a instalação deste MCP descrita acima.

  1. Abra o config.yaml do Hermes. O instalador nativo usa normalmente %LOCALAPPDATA%\hermes\config.yaml. Se houver HERMES_HOME personalizado, use o arquivo dessa pasta.

  2. Adicione indesign ao bloco mcp_servers, preservando as demais entradas e ajustando os caminhos:

mcp_servers:
  indesign:
    command: "C:/Program Files/nodejs/node.exe"
    args:
      - "C:/Projects/indesign-mcp-windows/index.js"
    timeout: 90
    connect_timeout: 15
    supports_parallel_tool_calls: false
    env:
      INDESIGN_PROGID: "InDesign.Application"
      INDESIGN_TIMEOUT_MS: "60000"
      INDESIGN_ALLOW_ARBITRARY_CODE: "0"
  1. Reinicie o Hermes e abra uma conversa com hermes chat.

  2. Peça: “Use o MCP indesign para consultar o documento ativo.” O Hermes descobre as ferramentas na conexão; os nomes recebem o prefixo mcp_indesign_.

Este exemplo requer Node e MCP executando no Windows nativo. Não use o Node Linux de WSL, Docker ou de um servidor remoto para iniciar esta ponte COM. A configuração segue a documentação MCP do Hermes; a integração ponta a ponta com o Hermes ainda não foi validada por este projeto.

Outros clientes MCP

Use o objeto mcpServers.indesign gerado em config/mcp.windows.json na configuração do cliente que aceite esse formato. Para preenchimento manual, escolha STDIO, indique o executável Node em command e passe o caminho absoluto de index.js como único argumento.

O cliente inicia e encerra o servidor. npm.cmd start também o inicia, mas ele ficará aguardando mensagens MCP em stdin; isso é esperado. Logs são enviados para stderr para não contaminar o protocolo.

Usar

Exemplo de pedido ao assistente conectado:

Crie um documento A4 de duas páginas no InDesign. Adicione um título em Arial e um quadro de texto com conteúdo em português. Salve em uma pasta que eu indicar e exporte um PDF.

As posições e dimensões são em milímetros quando indicado no esquema. Índices de páginas e quadros começam em zero. A maioria das ferramentas trabalha no documento ativo: evite alternar documentos enquanto uma operação estiver em execução.

Margens de documentos e páginas

create_document aplica as margens ao padrão do documento, às páginas-mestre e a todas as páginas criadas. Assim, páginas adicionadas depois também herdam as margens das páginas-mestre, em vez de voltarem ao padrão de 12,7 mm.

Com facingPages: false, marginLeft e marginRight significam esquerda e direita. Com facingPages: true, significam interna e externa: o InDesign faz o espelhamento automaticamente. Por exemplo, marginLeft: 30 e marginRight: 11 produzem 30 mm à esquerda no recto e 30 mm à direita no verso. Não inverta esses valores manualmente em page.marginPreferences nas páginas pares.

get_document_info separa o padrão do documento das margens efetivas de cada página, informa os valores em milímetros e sinaliza diferenças. Em páginas opostas, mostra tanto esquerda/direita físicas quanto interna/externa. O padrão do documento sozinho não comprova que as guias das páginas estejam corretas. A correção em create_document vale para novos documentos; arquivos existentes precisam ter suas margens conferidas por página.

Operações de fechamento, exclusão, salvamento com caminho e exportação exigem confirmDestructive: true, preservando a interface original. Esse campo deve refletir a autorização do usuário no cliente; o servidor não abre uma confirmação gráfica.

Para PDF, HighQualityPrint, PressQuality e SmallestFileSize reconhecem predefinições padrão em português e inglês. Também é possível passar o nome exato de uma predefinição instalada. npm.cmd run doctor lista esses nomes.

Configuração por ambiente

Variável

Padrão

Uso

INDESIGN_PROGID

InDesign.Application

Para selecionar uma versão, use por exemplo InDesign.Application.2026.

INDESIGN_TIMEOUT_MS

60000

Tempo limite de cada execução COM, de 1000 a 1800000 ms. Ajuste também o limite do cliente.

INDESIGN_ALLOWED_DIRS

Pasta pessoal do usuário

Lista de pastas permitidas, separadas por ponto e vírgula no Windows. Quando definida, substitui o padrão.

INDESIGN_ALLOW_ARBITRARY_CODE

Desabilitado

1 habilita execute_indesign_code para código ExtendScript de confiança.

Exemplo de caminhos: C:\Projetos;D:\Publicacoes. As ferramentas de arquivo requerem caminhos absolutos. Caminhos com espaços e acentos são suportados; caminhos UNC, dispositivos e alternate data streams não são aceitos nesta versão. A validação resolve junctions/symlinks existentes antes de verificar a pasta permitida.

Este é um servidor de automação local para clientes confiáveis, não um sandbox de segurança. ExtendScript habilitado explicitamente pode acessar recursos do usuário; documentos abertos também podem ter vínculos externos. Execute somente uma instância do servidor por sessão do InDesign. A fila serializa comandos dentro de cada instância.

Testes e diagnóstico

npm.cmd test               # protocolo stdio, catálogo, geração de scripts, caminhos e ponte simulada
npm.cmd run doctor        # consulta real de versão e predefinições via COM
npm.cmd run test:indesign  # teste completo, gera arquivos em artifacts/
npm.cmd run test:indesign:margins # regressão de margens com documentos temporários

O teste de integração exige que não haja documentos abertos. Ele usa arquivos novos, fecha somente o documento criado por ele e grava results.json, INDD e PDF na pasta de sua execução. Os testes de geração verificam a sintaxe das 51 ferramentas, não todas as propriedades da API do InDesign.

O teste específico test:indesign:margins pode ser executado com documentos abertos: cria e fecha apenas documentos temporários e restaura o documento ativo. Verifica margens de páginas e páginas-mestre, herança em páginas novas, guias espelhadas criadas pelo próprio InDesign e divergências no relatório, inclusive com unidades de visualização diferentes.

Se houver falha:

  • COM não registrado: abra/repare a instalação do InDesign e confira INDESIGN_PROGID.

  • Tempo esgotado: feche diálogos e confira se o aplicativo ainda está ocupado. A ponte não repete automaticamente a operação; após um timeout, exige reiniciar o servidor. Interromper o PowerShell não garante interromper o script dentro do InDesign.

  • Funciona no terminal, falha no agente: confirme se o cliente executa Node no Windows nativo, na sessão desktop, com acesso à automação COM. Um processo isolado pode não conseguir iniciar ou acessar o InDesign.

  • Acesso a arquivo negado: confira caminhos absolutos e INDESIGN_ALLOWED_DIRS.

  • Fonte ou predefinição ausente: use os nomes instalados no computador. Arial é a fonte padrão desta adaptação.

Arquitetura e escopo

index.js mantém o catálogo e as rotinas do original. lib/windows-bridge.js cria arquivos temporários únicos, serializa execuções e interpreta o resultado UTF-8. scripts/invoke-indesign.ps1 chama Application.DoScript com ScriptLanguage.JAVASCRIPT. lib/paths.js trata os caminhos do Windows.

Foram corrigidos também: captura de resultados em blocos condicionais, confirmação destrutiva que não bloqueava corretamente, texto com barras/aspas, Markdown incompatível com ExtendScript, leitura de documentos não salvos, criação/preenchimento de tabelas e exportação PDF. As preferências de interação e as preferências PDF são restauradas após a execução.

Ferramentas avançadas herdadas, como EPUB, empacotamento, data merge, preflight e tratamentos tipográficos, precisam de validação adicional com documentos representativos do seu fluxo. Esta entrega não afirma certificação de todas as opções nem compatibilidade testada com outras versões do InDesign.

Base estudada: commit 3e3f367634ff761455dcce06222b6e581fd8b7b3 do repositório original. A cópia em upstream/ é apenas referência local e não faz parte do código distribuído. Veja docs/PORTING.md para as decisões técnicas.

Aviso de responsabilidade

Este software é utilizado por conta, risco e responsabilidade de cada usuário. É fornecido no estado em que se encontra, sem garantias expressas ou implícitas, conforme a licença MIT, incluindo garantias de funcionamento ininterrupto, ausência de erros, adequação a uma finalidade específica ou precisão dos resultados.

O MCP permite que agentes de inteligência artificial executem operações no InDesign. Comandos incorretos, interpretações equivocadas ou falhas de execução podem modificar, sobrescrever ou excluir conteúdo e arquivos. A confirmação de uma operação pelo agente não substitui a avaliação do usuário.

Cabe ao usuário:

  • Manter backups atualizados e testar as automações em cópias dos documentos antes de utilizá-las em produção.

  • Revisar os comandos, as permissões concedidas e os resultados antes de salvar, exportar, publicar ou entregar materiais.

  • Proteger informações confidenciais e verificar quais dados são compartilhados com os agentes e serviços de IA utilizados.

  • Obter as autorizações e licenças necessárias para os documentos, imagens, fontes, softwares e demais recursos envolvidos.

Na máxima extensão permitida pela legislação aplicável, a Booknando, os autores, os titulares dos direitos autorais e os colaboradores não se responsabilizam por perdas de dados, alterações ou corrupção de arquivos, interrupções de trabalho, lucros cessantes ou outros danos decorrentes do uso ou da impossibilidade de uso deste software.

A disponibilização deste projeto open source não inclui compromisso de suporte, manutenção, disponibilidade ou correção de falhas. Serviços profissionais eventualmente contratados com a Booknando seguem os termos do respectivo contrato.

Este aviso complementa a licença MIT, sem alterar suas permissões nem afastar direitos ou responsabilidades que não possam ser excluídos pela legislação aplicável. O texto integral da licença está em LICENSE.

Licença e contribuições

Código aberto sob a licença MIT. Projeto original por lucdesign; adaptação Windows por Jose Fernando Tavares, da Booknando. Este projeto é independente e não é um produto oficial da Adobe. O Adobe InDesign é um aplicativo proprietário e precisa ser instalado e licenciado separadamente.

Problemas e melhorias podem ser enviados pelas issues ou por pull requests. Inclua a versão do Windows, Node e InDesign, os passos para reproduzir e logs sem dados pessoais. Antes de enviar uma alteração, execute npm.cmd test; mudanças na integração COM devem ser verificadas também com o InDesign.

A publicação é do código-fonte no GitHub. O pacote mantém private: true para evitar publicação acidental no npm; isso não altera a licença MIT nem a visibilidade pública do repositório.

Available Tools

51 tools
add_pageB

Add a new page to the document

ParametersJSON Schema
NameRequiredDescriptionDefault
positionNoend
pageIndexNoReference page index (for before/after)
masterPageNoMaster page to apply

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden for behavioral disclosure, but it only states the action without mentioning side effects, default position, or permission requirements. It is minimal and doesn't reveal important context.

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, front-loaded sentence with no extraneous content. It is appropriately concise.

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 tool mutates a document and has no annotations or output schema, the description is insufficient. It fails to mention that pages can be added before/after specific pages, the default of appending to the end, or how masterPage affects the new page.

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?

The description adds no insight into the parameters. While the schema provides descriptions for pageIndex and masterPage and an enum for position, the description itself doesn't help clarify parameter usage beyond what is already in the 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 'Add a new page to the document' uses a specific verb and resource, clearly indicating the action. It distinguishes from sibling tools like delete_page and duplicate_page by specifying 'add' rather than other operations.

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 such as duplicate_page or navigate_to_page. The description lacks context about prerequisites or scenarios.

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

analyze_embedded_objectsC

Analyze embedded objects (MathML formulas, graphics, etc.) in selected text frame or specified frame

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIndexNoPage index
frameIndexNoText frame index (optional if frame is selected)
maxObjectsNoMaximum number of objects to analyze

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. 'Analyze' suggests a read-only inspection, but the description does not state side effects, permission requirements, or what happens to the frame or objects.

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

Conciseness4/5

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

The description is a single concise sentence with the core action front-loaded and clarifying examples in parentheses. It is efficient and easy to scan, though 'etc.' is a minor vagueness.

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?

There is no output schema and no annotation, so the description should explain what the analysis returns or what effects it has. It only states the tool's scope, leaving agent expectations about output and behavior incomplete.

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 input schema already documents all parameters with 100% coverage, so the baseline is 3. The description adds only slight context about selected versus specified frames, but it does not add meaningful semantics beyond the schema.

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

Purpose4/5

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

The description names a specific verb and resource: analyze embedded objects such as MathML formulas and graphics, and scopes it to a selected or specified text frame. This distinguishes it from siblings like analyze_text_problems and get_selected_objects, though it does not explicitly name any sibling.

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 implies usage by mentioning selected or specified frames, but it gives no explicit guidance on when to choose this tool over alternatives or when not to use it. No exclusions or close-sibling comparisons are provided.

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

analyze_text_problemsA

Analyze imported text for common problems before cleaning. Shows what issues exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIndexNoPage index
frameIndexNoText frame index to analyze
useSelectedFrameNoAnalyze currently selected text frame

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. 'Analyze' and 'Shows' imply a read-only operation, but the description does not explicitly state that no changes are made, what kinds of problems are detected, or what the output looks like.

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

Conciseness5/5

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

Two short sentences communicate the core purpose and expected result without filler. The purpose is front-loaded and every word contributes meaning.

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 is adequate for a focused analysis tool, but without an output schema or annotations it leaves important context unspecified, such as what constitutes 'common problems', whether the operation is read-only, and how the selection parameters affect the analysis. The schema covers parameter mechanics, but the overall tool behavior remains thin.

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 no parameter-specific meaning, but all three parameters already have descriptions in the schema at 100% coverage. The baseline of 3 applies because the description does not need to compensate for schema gaps.

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

Purpose4/5

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

The description states a specific action ('Analyze imported text') and a clear goal ('for common problems before cleaning'), which distinguishes it from cleaning tools like clean_imported_text. However, 'common problems' is vague and it does not explicitly differentiate from find_typography_issues, so it stops short of a 5.

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

Usage Guidelines3/5

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

The phrase 'before cleaning' implies when the tool should be used, and the overall purpose suggests a pre-cleaning analysis step. But there is no explicit guidance on when to prefer this over find_typography_issues or analyze_embedded_objects, and no when-not-to-use conditions.

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

apply_colorC

Apply color to an object

ParametersJSON Schema
NameRequiredDescriptionDefault
propertyNofill
pageIndexNoPage index
swatchNameYesColor swatch name
objectIndexYesObject index on page

TDQS

C2.6/5.0
Behavior1/5

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

With no annotations, the description carries full burden. It does not disclose that this is a mutation operation, what document changes occur, or any error conditions. This is a significant transparency gap for a tool that modifies objects.

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, terse sentence with no waste, but it is under-specified for a tool with 4 parameters and no annotations. It could include more useful detail without becoming verbose.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, this description is incomplete. It fails to explain side effects, required object context, or what 'apply color' entails (fill/stroke), leaving major gaps in operational context.

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 75%, with descriptions for swatchName, objectIndex, and pageIndex, plus an enum for property. The description adds no additional parameter semantics beyond what the schema provides, so baseline 3 applies.

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 'Apply color to an object' clearly names the action and target, distinguishing it from siblings like create_color_swatch and apply_paragraph_style. However, it lacks specificity about the color property (fill vs stroke) and how the object is identified (objectIndex), so it's not fully precise.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as apply_paragraph_style or create_color_swatch. No prerequisites, exclusions, or context are provided.

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

apply_object_styleB

Apply an object style to selected objects

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIndexNoPage index
styleNameYesObject style name
objectIndexNoObject index on page (optional if objects selected)

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It does not disclose whether the operation is destructive/reversible, what happens when objectIndex is missing and no selection exists, or whether existing styles are overridden. The minimal text provides no behavioral detail beyond the action itself.

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

Conciseness4/5

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

The description is a single, tightly worded sentence with no redundancy. It front-loads the action and target. However, it is arguably under-specified, though that's not a conciseness issue.

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 or output schema, and the description offers only the core action. It fails to explain selection vs. objectIndex behavior, error conditions, or document prerequisites, leaving significant gaps for an agent to invoke it correctly.

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 100% with descriptions for all three parameters, so the baseline is 3. The description's mention of 'selected objects' adds slight context for objectIndex's optionality, but it doesn't add substantive meaning beyond the 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 states a specific verb ('apply') and resource ('object style') targeting 'selected objects', clearly distinguishing it from siblings like apply_paragraph_style (different style type) and create/modify_object_style (different action). A single sentence communicates exactly what the tool does.

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 'to selected objects' implies the use case requiring a selection, but no explicit guidance is given on when to prefer this over create_object_style or modify_object_style, nor any exclusion conditions. It's implied usage at best, with no alternatives mentioned.

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

apply_paragraph_styleB

Apply a paragraph style to text

ParametersJSON Schema
NameRequiredDescriptionDefault
endIndexNoEnd character index (optional)
pageIndexNoPage index
styleNameYesParagraph style name
frameIndexYesText frame index
startIndexNoStart character index (optional)

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. The description only states the basic action and does not disclose side effects, whether it modifies the document, error behavior if the style does not exist, or any permissions required. 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 a single concise sentence with no fluff. It is front-loaded with the core action. However, it may be under-specified given the tool's 5 parameters, but from a pure conciseness standpoint it is efficient and clear.

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 5 parameters, no output schema, and no annotations. The description is very brief and does not cover return values, side effects, or conditions under which it should be used. It is not complete enough for an agent to use the tool confidently without additional assumptions.

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 100%, so the baseline is 3. The description 'Apply a paragraph style to text' adds no additional meaning beyond the schema. The schema already provides descriptions for each parameter, and the description does not explain relationships between parameters (e.g., startIndex/endIndex scope) or provide usage 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 'Apply a paragraph style to text' is a clear verb+resource statement. It specifies the action (apply) and the object (paragraph style), and it distinguishes from sibling tools like create_paragraph_style and list_styles, which handle creation and listing respectively.

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 vs alternatives. It does not mention prerequisites (e.g., an open document, existing text frame) or any exclusions. There is no reference to sibling tools or scenarios where this tool is preferred.

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

clean_imported_textB

Clean imported text from common typography sins: double paragraph breaks, line breaks instead of paragraphs, trailing spaces, hyphens instead of dashes, manual formatting, bullet lists, hardcoded chapter numbers, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
fixListsNoRemove manual bullet lists and dashes
fixDashesNoFix hyphens to proper n-dashes for ranges/thoughts
fixSpacesNoRemove trailing spaces and multiple spaces
pageIndexNoPage index
frameIndexNoText frame index to clean
fixFormattingNoRemove manual bold/italic (prepare for character styles)
fixParagraphsNoFix double paragraph breaks and line breaks
useSelectedFrameNoClean currently selected text frame
fixChapterNumbersNoRemove hardcoded chapter numbers

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden, and it does disclose concrete transformations: removing double paragraph breaks, trailing spaces, manual formatting, bullet lists, and hardcoded chapter numbers. It does not, however, mention side effects such as whether edits are destructive, whether they apply to a specific frame or the whole document, or whether changes are reversible.

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

Conciseness4/5

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

The description is a single well-structured sentence with a clear front-loaded purpose and a useful list of examples. The trailing 'etc.' is mildly vague but does not introduce meaningful bloat.

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 nine optional parameters and no output schema or annotations, so the description should explain how targeting works, what the defaults do, and what the agent can expect after invocation. It does not clarify the relationship between `pageIndex`, `frameIndex`, and `useSelectedFrame`, nor does it describe the return value or whether the operation changes the document immediately.

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 100%, so the parameters are already documented at the schema level. The tool description adds no additional parameter-level semantics beyond naming the same problem areas, which keeps it at the baseline rather than elevating it.

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 ('clean') and a clear resource ('imported text'), and it enumerates concrete typography problems it addresses. It does not explicitly differentiate itself from the overlapping sibling `fix_typography_in_selection`, so it is clear but not fully distinguished.

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 'imported text' implies the appropriate context: use this after importing text that has formatting issues. However, the description gives no explicit guidance on when to choose this tool over closely related siblings like `fix_typography_in_selection`, `find_typography_issues`, or `analyze_text_problems`.

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

close_documentC

Close the current document

ParametersJSON Schema
NameRequiredDescriptionDefault
saveNoSave before closing
confirmDestructiveNoREQUIRED: Confirm potential data loss

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'close the current document' and does not disclose the potential for data loss, the need to confirm destructive actions, or the effects of the save parameter. The schema hints at data loss, but the description itself does not.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. It is appropriately concise for a simple operation, though it omits valuable context about destructive behavior.

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

Completeness2/5

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

For a destructive action with no annotations and no output schema, the description is incomplete. An agent calling close_document({}) might lose unsaved data because the description does not explain the save/confirm behavior or warn about consequences. Additional context is necessary for safe 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 100%, so the parameters are already fully documented. The description adds no additional meaning about how save or confirmDestructive affect the close operation, so the baseline of 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb ('Close') and resource ('current document'), making the tool's core purpose immediately clear. It is distinct from siblings like open_document and save_document, though it does not add detail about what 'current' means in multi-document contexts.

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 gives no guidance on when to use this tool versus alternatives, when it is safe to close, or what state the document must be in. Sibling tools like save_document exist, but no selection criteria are offered.

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

create_character_styleC

Create a new character style

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesStyle name
fontSizeNoFont size in points
trackingNoCharacter tracking
baseStyleNoBase style to inherit from
fontStyleNoFont style (Regular, Bold, Italic)
textColorNoText color
fontFamilyNoFont family

TDQS

C2.9/5.0
Behavior1/5

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

With no annotations, the description must carry the full burden of behavioral disclosure. It only restates the name and provides no details on side effects, return values, error handling, or how the new style interacts with the document.

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

Conciseness4/5

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

The description is a single, clean sentence with no wasted words. It is concise but does not elaborate on usage or behavior, which slightly limits its value.

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 tool has 7 parameters, no output schema, and no annotations, the one-line description is insufficient. It omits return behavior, preconditions, and operational context, making the tool harder to invoke correctly.

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 100%, and each parameter has a basic description (e.g., 'Font size in points'). The tool description adds no extra parameter-level meaning, so the baseline 3 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 clearly states the action 'Create' and the resource 'character style', distinguishing it from sibling tools like create_paragraph_style. It is specific 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 such as create_paragraph_style. The description does not mention typical use cases or exclusions.

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

create_color_swatchB

Create a new color swatch

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSwatch name
spotColorNoCreate as spot color
colorModelNoCMYK
colorValuesYesColor values array [C,M,Y,K] or [R,G,B]

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'create' but does not mention side effects, whether it modifies the current document, permission requirements, or behavior on duplicate names. This is under-specified 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 a single sentence with no filler, making it extremely concise and front-loaded. It earns its place without wasting words.

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 description is minimal and does not explain the dependency between colorValues and colorModel, nor mention return values or document impact. With no annotations, no output schema, and 4 parameters, this is inadequate for a complete understanding.

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 already provides descriptions for name, spotColor, and colorValues, so the description adds no additional parameter semantics. However, the colorModel parameter lacks a description, and the relationship between colorValues and colorModel (especially LAB) is not clarified, leaving some 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 'Create a new color swatch' uses the specific verb 'create' with the resource 'color swatch', clearly distinguishing it from sibling tools like create_rectangle or apply_color. It is unambiguous about the tool's function.

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 like apply_color or list_color_swatches. It lacks any contextual usage notes or exclusions.

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

create_documentB

Create a new InDesign document with advanced options

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoSlug area in mm
bleedNoBleed in mm
pagesNoNumber of pages
widthNoDocument width in mm (for custom preset)
heightNoDocument height in mm (for custom preset)
presetNoDocument preset (A4, A5, Letter, Custom, etc.)A4
marginTopNoTop margin in mm
marginLeftNoLeft margin in mm
facingPagesNoEnable facing pages
marginRightNoRight margin in mm
orientationNoPortrait
marginBottomNoBottom margin in mm

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing side effects. It only says 'Create a new InDesign document' without explaining whether the document becomes active, how it relates to unsaved changes, or what the tool returns. This is a significant gap for a mutating operation.

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

Conciseness4/5

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

The description is a single concise sentence, which is good for front-loading the core purpose. However, 'with advanced options' is somewhat vague and could be considered filler, preventing a perfect score.

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 12 parameters, no annotations, and no output schema, the description is too sparse to provide a complete picture. It does not mention presets, custom dimensions, or what happens after creation, leaving the agent uncertain about expected inputs and outcomes.

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 92%, so nearly all parameters have descriptive text in the schema. The description's phrase 'advanced options' adds no specific parameter meaning, and the schema already handles parameter explanations. Baseline 3 is appropriate since the description does not need to 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 'Create a new InDesign document' with a specific verb and resource, distinguishing it from sibling tools that create other elements (e.g., create_rectangle, create_table). The phrase 'with advanced options' hints at extensive configuration but does not obscure the primary purpose.

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 usage is implied by the verb 'create' and the resource 'document'—agents can infer it is for new document creation. However, there is no explicit guidance on when not to use it (e.g., for existing documents use open_document) or mention of alternatives, so it falls short of clear contextual differentiation.

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

create_ellipseC

Create an ellipse shape

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesX position in mm
yYesY position in mm
widthYesWidth in mm
heightYesHeight in mm
fillColorNoFill color
pageIndexNoPage index
strokeColorNoStroke color
strokeWidthNoStroke width in points

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description must carry the burden. It only repeats the action without disclosing side effects (e.g., adds to the document, uses pageIndex), required permissions, or interaction with the active document. The description is essentially a tautology of 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.

Conciseness4/5

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

The description is a single concise sentence with no filler. It is front-loaded with the action, but it is so minimal that it offers little beyond the tool name. Still, it is not verbose, so it scores average.

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

Completeness2/5

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

For a tool with 8 parameters and no output schema, the description is insufficient. It does not explain what the function returns, how it behaves on page changes, or any required context like an open document. This is significantly under-specified.

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 covers 100% of parameters with descriptions, so the baseline is 3. The description adds no additional parameter semantics, relying entirely on the schema.

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

Purpose4/5

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

The description clearly states the verb 'Create' and the resource 'ellipse shape', indicating the tool's purpose. However, it lacks any scope such as 'on the active page' or 'in the current document', which prevents it from fully distinguishing from other creation tools.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like create_rectangle or create_text_frame. It does not mention prerequisites, target page, or typical scenarios.

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

create_layerC

Create a new layer

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLayer name
colorNoLayer color for guides
lockedNoLayer locked state
visibleNoLayer visibility

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 must disclose behavior, but it only states the core action. It does not mention whether the new layer becomes active, what return value is produced, or any side effects.

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

Conciseness5/5

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

A single, front-loaded sentence with no filler or redundant detail. 'New' is slightly redundant with 'create,' but overall it is efficiently sized.

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

Completeness2/5

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

For a creation tool with no annotations and no output schema, the description is too sparse. It does not specify whether the layer is created in the active document, whether it becomes active, or what the return value is. Given the four parameters and sibling context, a bit more context is needed.

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 input schema has 100% coverage with descriptions for all four parameters (name, color, locked, visible). Since the schema already documents parameters thoroughly, the baseline 3 applies; the description adds no extra parameter semantics.

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 ('Create') and resource ('layer'), identifying the tool's function among many create_* siblings. However, it offers no additional scoping or differentiation from layer-related operations like set_active_layer, so it stops short of a 5.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. There are no conditions, prerequisites, or references to sibling tools; the usage is only implied by the verb 'create'.

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

create_object_styleC

Create a new object style

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesStyle name
baseStyleNoBase style to inherit from
fillColorNoFill color (swatch name)
strokeColorNoStroke color (swatch name)
strokeWidthNoStroke width in points
transparencyNoTransparency percentage (0-100)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Create a new object style,' which implies a mutation but gives no details on side effects, whether creation is idempotent, what happens to existing styles, or any required permissions. This is a significant gap for a create operation.

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

Conciseness4/5

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

The description is a single concise sentence with no wasted words. It is appropriately sized for a simple create operation, though it lacks any additional structural elements like bullet points or examples. It is not overlong, but it is also very minimal.

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

Completeness2/5

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

For a tool with six parameters, no output schema, and no annotations, this description is incomplete. It does not explain how the parameters interact, what the expected result of creation is, whether any parameters are conditional, or what the tool returns. An agent would need to guess at many behavioral aspects.

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 input schema has 100% description coverage for all six parameters, so the schema already documents each parameter's meaning. The tool description itself adds no parameter-specific context, but the baseline of 3 applies because the schema does the heavy lifting.

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

Purpose4/5

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

The description states a specific action (create) and resource (object style), making the purpose clear. It does not explicitly differentiate from siblings like create_paragraph_style or create_character_style, but the tool name itself disambiguates. It's a concise, unambiguous statement of what the tool does.

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 modify_object_style or apply_object_style. There is no mention of prerequisites, conditions, or exclusions, leaving the agent to infer usage solely from the name.

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

create_paragraph_styleC

Create a new paragraph style

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesStyle name
leadingNoLeading (line spacing) in points
fontSizeNoFont size in points
alignmentNo
baseStyleNoBase style to inherit from
textColorNoText color
fontFamilyNoFont family
spaceAfterNoSpace after paragraph in mm
spaceBeforeNoSpace before paragraph in mm

TDQS

C2.7/5.0
Behavior1/5

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

With no annotations provided, the description must disclose behavioral traits on its own, but it only states the basic action. It fails to mention side effects, persistence, required permissions, or return behavior, offering no context beyond the obvious creation action.

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 concise sentence with no filler, but it is under-specified rather than efficiently structured. It conveys the core purpose but omits any additional context that would justify such brevity.

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?

Despite having 9 parameters and no output schema or annotations, the description provides only a one-line purpose. It does not explain what a paragraph style is, what the parameters do, when to use the tool, or what happens upon creation, making it wholly inadequate for the tool's complexity.

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

Parameters3/5

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

Schema description coverage is high (89%), so the schema already documents most parameters. The tool description adds no parameter information, so it neither enhances nor detracts from the baseline. However, the single undocumented parameter 'alignment' is not explained by the description either.

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 new paragraph style'. It uses a specific verb ('create') and resource ('paragraph style'), and it distinguishes from sibling tools like 'create_character_style' by explicitly mentioning '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?

The description provides no guidance on when to use this tool versus alternatives such as 'create_character_style' or 'apply_paragraph_style'. It neither states context nor exclusions, leaving the agent to infer usage from the name alone.

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

create_rectangleC

Create a rectangle shape

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesX position in mm
yYesY position in mm
widthYesWidth in mm
heightYesHeight in mm
fillColorNoFill color (RGB hex or swatch name)
pageIndexNoPage index
strokeColorNoStroke color
strokeWidthNoStroke width in points
cornerRadiusNoCorner radius in mm

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 must disclose behavioral traits. It only says 'create', which implies a write operation, but offers no details on side effects, coordinate system, permissions, or how it affects the document. This is a minimal disclosure that adds little 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, short sentence with no wasted words. It is front-loaded and easy to parse, effectively stating the core purpose without unnecessary elaboration.

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

Completeness2/5

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

For a tool with 9 parameters, no output schema, and no annotations, this description is incomplete. It doesn't explain how the rectangle is positioned (e.g., coordinate origin), what units are used, or how it integrates with the current document state. The schema covers parameter meanings, but the overall behavior and usage context are unclear.

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 provides descriptions for all 9 parameters (100% coverage), so the description doesn't need to explain them. The tool description adds no parameter-specific meaning, matching the baseline score for high schema coverage.

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 (create) and the object (rectangle shape), which distinguishes it from sibling tools like create_ellipse or create_text_frame. While it doesn't elaborate on scope or behavior, it is a straightforward, non-misleading statement of the tool's core function.

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 create_ellipse or create_table. It simply names the operation without any contextual cues for selection, leaving the agent to infer usage purely from the tool name.

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

create_tableC

Create a table

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesX position in mm
yYesY position in mm
rowsYesNumber of rows
widthYesTable width in mm
heightYesTable height in mm
columnsYesNumber of columns
pageIndexNoPage index
footerRowsNoNumber of footer rows
headerRowsNoNumber of header rows

TDQS

C2.4/5.0
Behavior1/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only states 'Create a table' and gives no information about side effects, reversibility, required document state, or any other behavioral traits.

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 extremely short, but this is under-specification rather than conciseness. A single phrase like 'Create a table' does not provide enough information to justify its brevity, similar to the 'Process' example.

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?

For a tool with 9 parameters, no annotations, and no output schema, the description is completely inadequate. It fails to explain the tool's behavior, return value, or usage context, making it nearly impossible for an AI agent to use correctly.

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 100%, so each parameter has its own description (e.g., 'X position in mm'). The tool description adds no additional meaning beyond the schema, fitting the baseline 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 'Create a table' uses a clear verb and resource, and the schema details dimensions and rows/columns. However, it lacks scope information (e.g., on which page) and does not distinguish from sibling tools like create_rectangle or populate_table.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., an open document) or exclusions, leaving the AI agent without context for selection.

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

create_text_frameC

Create a text frame with advanced formatting options

ParametersJSON Schema
NameRequiredDescriptionDefault
xNoX position in mm
yNoY position in mm
widthNoWidth in mm
heightNoHeight in mm
contentYesText content for the frame
fontSizeNoFont size in points
alignmentNoLEFT_ALIGN
fontStyleNoFont style (Regular, Bold, Italic, etc.)Regular
pageIndexNoPage index (0-based)
textColorNoText color (RGB hex or name)Black
fontFamilyNoFont family nameArial
characterStyleNoCharacter style name to apply
paragraphStyleNoParagraph style name to apply

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 doesn't state whether this creates a new frame on the current page, whether it replaces existing content, what happens with default values, or whether it requires an open document. 'Advanced formatting options' hints at capabilities but doesn't disclose side effects or requirements.

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

Conciseness4/5

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

The description is a single concise sentence that is front-loaded with the core action. It's efficient, though 'advanced formatting options' is somewhat generic and could be more specific without adding length.

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 13 parameters, no annotations, and no output schema, the description is too thin. It doesn't explain the tool's role in the document workflow, whether it requires an active document, how it relates to text frame selection, or what the return value is. The schema covers parameters but the description fails to provide the operational context an agent needs.

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 92%, so the schema already documents most parameters well. The description adds the phrase 'advanced formatting options' which hints at the formatting parameters (fontSize, alignment, fontStyle, textColor, fontFamily, characterStyle, paragraphStyle) but doesn't add specific meaning beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb ('Create') and resource ('text frame') and mentions 'advanced formatting options', which distinguishes it from simpler creation tools. However, it doesn't explicitly differentiate from sibling tools like edit_text_frame or insert_markdown_text, and 'advanced formatting options' is vague about what those options are.

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 insert_markdown_text, edit_text_frame, or create_rectangle. The description doesn't mention prerequisites (e.g., an open document) or context for when this is the right choice. The agent must infer usage from the name and schema.

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

data_mergeD

Perform data merge operation

ParametersJSON Schema
NameRequiredDescriptionDefault
fileFormatNoPDF
recordRangeNoRecord range (e.g., "1-10", "all")all
outputFolderYesOutput folder for merged documents
dataSourcePathYesPath to CSV data source
confirmDestructiveNoREQUIRED: Confirm bulk file creation

TDQS

D1.9/5.0
Behavior1/5

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

No annotations are provided, so the description must disclose behavioral traits. It fails to mention side effects, such as the generation of multiple files (implied by confirmDestructive), required permissions, or any destructive nature. The description gives no information about what the operation actually does at a behavioral level, making it impossible for an agent to anticipate consequences.

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?

While the description is only one sentence long, this is under-specification rather than conciseness. It does not front-load critical information or earn its brevity. The sentence is too generic to be useful and fails to convey the tool's purpose or behavior.

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 the tool's complexity (5 parameters, a confirmDestructive flag, no annotations, no output schema), the description is entirely insufficient. An agent has no understanding of what a data merge does, what the parameters mean, or what the tool will produce. This is a severe gap that makes the tool effectively unusable without external documentation.

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 high (80%), with descriptions for outputFolder, dataSourcePath, recordRange, and confirmDestructive. The description adds no extra meaning beyond the schema; it does not clarify how the parameters relate to the merge operation or provide usage examples. Baseline of 3 is appropriate because the schema carries the load.

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 'Perform data merge operation' is extremely vague and essentially restates the tool name. It does not specify what data merge entails, what inputs it takes, or what output it produces. It does not differentiate from sibling tools like create_document or export_pdf, leaving an agent unclear on when this tool is appropriate.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. No mention of typical use cases, prerequisites, or conditions that would favor data_merge over other tools. An agent has no context to decide if this is the right tool for a task.

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

delete_pageB

Delete a page from the document

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIndexYesPage index to delete
confirmDestructiveNoREQUIRED: Confirm page deletion

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 disclosing behavior. It only says 'Delete a page' and does not state that deletion is permanent, that confirmDestructive must be true, or any side effects. The schema partially covers this via the confirmDestructive parameter, but the description itself adds no behavioral transparency.

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

Conciseness4/5

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

The description is a single short sentence with no filler and the core action is front-loaded. It is concise, though it achieves brevity by omitting important caveats.

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

Completeness2/5

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

For a destructive mutation tool with no annotations and no output schema, the description is too sparse. It does not explain that confirmation is required, that deletion is irreversible, or what happens to the page's contents. The schema compensates for some of this, but the overall context is incomplete.

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 100%, with both pageIndex and confirmDestructive already documented. The description adds no additional parameter meaning, so the baseline of 3 applies.

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 the exact action ('Delete a page') and the resource ('from the document'), which is specific and unambiguous. It clearly differentiates from sibling tools like add_page, duplicate_page, and navigate_to_page because deletion is a distinct 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?

There is no guidance about when to use this tool versus alternatives, such as add_page or duplicate_page. The description simply names the operation without mentioning prerequisites, destructive implications, or that it is the irreversible counterpart to adding a page.

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

duplicate_pageC

Duplicate a page

ParametersJSON Schema
NameRequiredDescriptionDefault
positionNoafter
pageIndexYesPage index to duplicate

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. 'Duplicate a page' implies mutation but does not state whether the original page remains unchanged, whether the copy is deep or shallow, or any side effects. This is a significant transparency gap for a mutating tool.

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

Conciseness3/5

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

The description is extremely concise and front-loaded, but it is under-specified for a tool with a required parameter and an optional position parameter. It is not overly verbose, but the brevity sacrifices necessary context, making it minimally acceptable.

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 lack of annotations, no output schema, and only a one-line description, the context is incomplete. The description does not explain the duplicate behavior (e.g., whether content is copied, where it is inserted) or provide enough information for an agent to use it correctly without guesswork.

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

Parameters2/5

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

The description adds no meaning beyond the input schema. The schema documents pageIndex but leaves position undocumented (50% coverage). The description could have clarified the position parameter's purpose or the default 'after', but it remains silent, failing 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 ('duplicate') and resource ('page'), clearly indicating the action. It distinguishes from sibling tools like add_page and delete_page, but lacks explicit scope details such as where the duplicate is placed or that it copies all content, preventing a higher 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 like add_page or delete_page. There is no context about use cases, prerequisites, or exclusions, leaving the agent without clear selection criteria.

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

edit_text_frameB

Edit properties of an existing text frame. WORKFLOW: First use list_text_frames() or get_selected_objects() to find the correct frameIndex.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentNoNew text content
fontSizeNoFont size in points
alignmentNo
pageIndexNoPage index
textColorNoText color
fontFamilyNoFont family name
frameIndexYesZero-based text frame index from list_text_frames() output. Example: Frame 0 = frameIndex: 0

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 says 'Edit properties' which implies mutation, but doesn't disclose whether changes are reversible, whether the frame must be on a specific page, what happens if frameIndex is invalid, or whether the tool updates only provided properties or resets unspecified ones. The pageIndex parameter hints at page context but the description doesn't explain its role.

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

Conciseness4/5

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

Two sentences with a clear workflow hint. The WORKFLOW prefix is useful and front-loaded. No wasted words, though it could be slightly more explicit about which properties are editable.

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 no annotations and no output schema, the description is adequate but has gaps. It explains the prerequisite lookup step, but doesn't clarify behavior on partial updates, error cases, or how textColor/fontFamily values should be formatted. The sibling list shows related style tools, but the description doesn't route to them.

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 86%, so the schema already documents most parameters. The description adds the workflow context for frameIndex, but doesn't clarify ambiguous parameters like textColor format (hex? name?) or whether content replaces all text or inserts. The alignment enum is self-documenting. Baseline 3 is appropriate since schema does most of the work.

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

Purpose4/5

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

The description states a clear verb and resource: 'Edit properties of an existing text frame.' It distinguishes itself from create_text_frame (creation) and get_text_content (reading), though it doesn't explicitly name a sibling. The workflow hint about finding frameIndex adds context.

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?

The WORKFLOW instruction explicitly tells the agent to first call list_text_frames() or get_selected_objects() to find the correct frameIndex. This is clear usage guidance for a prerequisite step, though it doesn't explicitly state when not to use this tool versus alternatives like modify_character_style or apply_paragraph_style.

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

execute_indesign_codeA

⚠️ Execute custom ExtendScript code in InDesign (REQUIRES INDESIGN_ALLOW_ARBITRARY_CODE=1)

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesExtendScript/JavaScript code to execute in InDesign. WARNING: Can access filesystem, network, and system APIs!

TDQS

A3.8/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, and the schema warning clearly discloses that the code can access filesystem, network, and system APIs. The environment-variable requirement is also surfaced. It stops short of describing return values or error behavior, so it is strong but not exhaustive.

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 compact, front-loaded with a warning symbol and the environment requirement, and contains no filler. It is slightly under-sized relative to the power and risk of arbitrary code execution, but the structure is scannable and 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?

The description covers the essential purpose, the required environment variable, and the dangerous capabilities of the code. However, it lacks usage boundary guidance and does not describe what happens after execution or what the tool returns, which matters given there is no output schema or annotations to fill those 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 100%, and the parameter is already well documented in the schema: 'ExtendScript/JavaScript code to execute in InDesign' plus a danger warning. The main description adds no meaningful parameter semantics beyond what the schema already provides, so the high-coverage baseline of 3 applies.

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 ('Execute') and resource ('custom ExtendScript code in InDesign'), making the tool's purpose immediately clear. The word 'custom' and the code-execution scope distinguish it from the many specialized sibling tools that perform fixed InDesign operations.

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 communicates a required precondition (INDESIGN_ALLOW_ARBITRARY_CODE=1) but does not explicitly say when this tool should be used instead of a dedicated sibling tool. It implies an escape-hatch role, but there are no explicit when-to-use/when-not-to-use instructions or named alternatives.

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

export_epubC

Export document as EPUB

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoEPUB3
filePathYesOutput EPUB file path
imageFormatNoPNG
includeImagesNoInclude images
confirmDestructiveNoREQUIRED: Confirm file overwrite

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to mention that the tool can overwrite files (despite the confirmDestructive parameter), that it may include images by default, or that it supports multiple EPUB versions and image formats. The description is a bare statement of intent with no behavioral context, leaving the agent unaware of side effects like file overwriting or default behaviors.

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

Conciseness4/5

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

The description is a single, efficient sentence with no wasted words. It front-loads the core action and format. However, it is so brief that it misses opportunities to add behavioral context, but for what it states, it is concise and well-structured.

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

Completeness2/5

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

For a tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the overwrite confirmation requirement, the default EPUB version, or the image handling behavior. An agent would need to inspect the schema carefully and still might not know when to choose this over export_pdf or export_images. The description is minimally viable but leaves significant 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 60%, so the schema already documents filePath, imageFormat, includeImages, and confirmDestructive. The description adds no parameter-level detail beyond what the schema provides. The version parameter lacks a description in the schema and the description doesn't compensate, but the enum values are self-explanatory. Baseline 3 is appropriate since the schema does most of the work.

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 'Export document as EPUB' clearly states the verb (export), resource (document), and target format (EPUB). It distinguishes from sibling tools like export_pdf and export_images by naming the specific format. However, it doesn't explicitly differentiate from other export tools or mention the document context (e.g., current open document), which would make it fully 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?

The description provides no guidance on when to use this tool versus alternatives like export_pdf or export_images. It doesn't mention prerequisites (e.g., a document must be open), nor does it explain when EPUB export is appropriate. The only implied usage is 'export as EPUB,' which is not enough to route an agent correctly among the many sibling export tools.

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

export_imagesC

Export pages as images

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoPNG
pageRangeNoPage rangeall
folderPathYesOutput folder path
resolutionNoExport resolution in DPI
includeBleedNoInclude bleed area
confirmDestructiveNoREQUIRED: Confirm folder write access

TDQS

C2.4/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Export pages as images' does not reveal that this writes files to disk, may overwrite existing files, or that confirmDestructive must be true. The description also fails to note that the document itself is not modified but external image files are created.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no fluff. It is efficient and easy to parse, though it is under-specified. The conciseness is good, but the lack of additional context prevents a perfect score.

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?

For a 6-parameter export tool with no output schema and no annotations, this description is seriously incomplete. It does not explain pageRange syntax, the mandatory confirmation flag, the effect of includeBleed, or what files are produced. An agent would likely call this incorrectly without additional knowledge.

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 83%, so the baseline is 3 even though the description adds no parameter details. The schema documents most parameters, but the description does not clarify the pageRange syntax or the meaning of confirmDestructive, leaving a small gap that the high coverage already covers.

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

Purpose4/5

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

The description clearly states the action (Export), the resource (pages), and the output (images). This distinguishes it from sibling tools like export_pdf and export_epub, though it doesn't mention the specific image formats or that folderPath is required, which are left to the schema.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool versus alternatives, no mention of the required confirmDestructive parameter, and no indication that folderPath must be writable. An agent would have no basis for choosing this over export_pdf or export_epub, or for understanding the confirmation requirement.

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

export_pdfC

Export document as PDF with advanced options

ParametersJSON Schema
NameRequiredDescriptionDefault
presetNoExact installed PDF preset name, or HighQualityPrint, PressQuality, SmallestFileSize, Print, Web (English/Portuguese aliases)HighQualityPrint
filePathYesOutput PDF file path
pageRangeNoPage range (e.g., "1-5", "all")all
includeSlugNoInclude slug area
jpegQualityNoHigh
colorProfileNoColor profile for export
includeBleedNoInclude bleed area
confirmDestructiveNoREQUIRED: Confirm file overwrite

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. 'Export' implies a file-writing operation, but the description does not warn about file overwrite, side effects, or any prerequisites. The confirmDestructive parameter reveals overwrite risk, but that lives only in the schema, not the description.

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

Conciseness4/5

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

The description is a single, focused sentence with no wasted words. It is front-loaded with the core action, though it is somewhat under-specified rather than overly verbose.

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

Completeness2/5

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

For a tool with 8 parameters, no annotations, and no output schema, the description is too thin. It omits the destructive overwrite behavior, any caveats about presets or color profiles, and what constitutes 'advanced options.' An agent must rely entirely on the schema without additional operational context.

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 88%, so the parameters are already well-documented (preset, pageRange, includeBleed, etc.). The description's phrase 'advanced options' loosely implies the parameter set but adds no specific meaning beyond the schema, so a baseline of 3 is appropriate.

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 (export) and resource (document as PDF), and the mention of 'advanced options' signals configurability beyond a basic export. It is clear enough to distinguish from export_images and export_epub by name, though it lacks explicit sibling differentiation.

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 given about when to use this tool versus alternatives like export_images or export_epub. The description simply states what the tool does, leaving the agent to infer usage solely from the tool name and sibling list.

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

find_replace_textC

Find and replace text in the document

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNodocument
useGrepNoUse GREP (regular expressions)
findTextYesText to find
wholeWordNoWhole word only
replaceTextYesReplacement text
caseSensitiveNoCase sensitive search

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the burden of disclosing behavioral traits. It only states the basic operation and does not mention whether formatting is preserved, how replacements are applied (e.g., one-by-one or all), or the effect of options like regex or scope. This is a significant gap.

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

Conciseness4/5

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

The description is a single, concise sentence with no filler words. It is efficiently front-loaded but lacks depth; however, conciseness is about economy, and this achieves that.

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 multiple parameters and options, but the description gives no hint about return values, behavior with edge cases, or how options interact. Without annotations or an output schema, the bare description is insufficient for an agent to fully understand the tool's behavior.

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

Parameters3/5

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

Schema description coverage is high (83%), with descriptions for most parameters. The description does not add meaningful parameter-level information beyond what the schema already provides, so the baseline of 3 applies.

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 function with a specific verb and resource: 'Find and replace text'. This is distinct from sibling tools, though it does not explicitly mention alternatives or scope variations.

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, nor does it mention exclusions or prerequisites. It simply states the action without any contextual instruction.

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

find_typography_issuesC

Analyze text for common typography issues (wrong spaces in dates, straight quotes, double spaces, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIndexNoPage index
frameIndexNoText frame index to analyze
useSelectedFrameNoAnalyze currently selected text frame

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for disclosing behavioral traitsepth. It only says the tool analyzes text and gives examples, but does not state whether it mutates content, what its output format is, how selection vs frame vs page scoping works, or whether it is read-only. The 'analyze' wording implies non-destructive behavior but leaves significant ambiguity.

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

Conciseness4/5

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

The description is a single efficient sentence with no filler and useful examples. It could be slightly improved by front-loading the primary use case, but as written it is concise and directly communicates the tool's core function.

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

Completeness2/5

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

For a tool with three optional parameters and no output schema, the description omits key context: what the analysis returns, whether it modifies the document, how to scope the analysis, and when to prefer this over sibling tools. The schema helps with parameter names but not with the overall call flow or result interpretation.

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 100%, so the baseline is 3. The parameters are each described minimally ('Page index', 'Text frame index to analyze', 'Analyze currently selected text frame'), and the description does not add extra meaning beyond the schema. It also does not explain how pageIndex, frameIndex, and useSelectedFrame interact or take precedence.

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 function: analyze text for common typography issues, with concrete examples like wrong spaces in dates, straight quotes, and double spaces. This distinguishes it from fix_typography_in_selection by implying detection rather than correction, though it does not explicitly contrast it with the overlapping sibling analyze_text_problems.

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 about when to use this tool versus alternatives such as fix_typography_in_selection, clean_imported_text, or analyze_text_problems. The description gives no conditions, prerequisites, or recommended workflow context.

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

fix_typography_in_selectionA

Fix typography in selected text or story. Corrects dates (DD.MM.YYYY with thin spaces), quotes, dashes, and other typographic elements.

ParametersJSON Schema
NameRequiredDescriptionDefault
fixDatesNoFix date spacing (DD. MM. YYYY)
fixDashesNoFix hyphens to em/en dashes
fixQuotesNoFix quotes to typographic quotes
fixSpacesNoFix multiple spaces and trailing spaces
pageIndexNoPage index
frameIndexNoText frame index to fix (use get_selected_objects to work with selection)
useSelectedFrameNoUse currently selected text frame

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing behavior. It does explain the main effect: fixing typographic elements in a selected text/story. However, it does not mention irreversibility, whether changes are applied in place, or the precise handling of 'other typographic elements', leaving some behavioral 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 very concise and front-loaded. The first sentence names the operation and target, and the second briefly enumerates the corrections. There is no redundant information or padding.

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 7 optional parameters and no required fields, the description is minimally adequate. The schema covers all parameters, and the description covers purpose, but the interaction between selection-related parameters (pageIndex, frameIndex, useSelectedFrame) is not clarified, and usage relative to sibling tools is not addressed.

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 100%, so the parameters are already well documented. The description adds only high-level context about date, quote, and dash corrections, and does not clarify the selection mechanics among pageIndex, frameIndex, and useSelectedFrame beyond the schema.

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

Purpose4/5

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

The description states a specific action ('Fix typography') on a clear resource ('selected text or story') and lists the corrections made (dates, quotes, dashes). It is clear and functionally specific, though it does not explicitly contrast with sibling tools like find_typography_issues or clean_imported_text.

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 'selected text or story' implies the tool operates on an active selection, giving some usage context. However, it does not explain when to prefer this over related tools such as find_typography_issues or clean_imported_text, and no exclusions or prerequisites are stated.

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

get_document_infoB

Get detailed information about the current InDesign document

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must provide all behavioral context, but it only states that it 'gets detailed information'. It does not disclose what the information includes, whether it is a read-only operation, if it has side effects, performance implications, or what the return format is. Thus, the description lacks transparency about the tool's behavior.

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

Conciseness5/5

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

The description is a single, concise sentence that is front-loaded with the action ('Get') and clearly names the resource ('detailed information about the current InDesign document'). Every word earns its place; there is no waste or excessive elaboration.

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 output schema, no annotations, and no parameters, so the description bears full responsibility for explaining what the tool returns. Saying 'detailed information' is vague and does not specify the structure or breadth of the returned data. An agent cannot know from this description what information will actually be retrieved, making it insufficiently complete for reliable selection and invocation.

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 does not need to explain parameters, and it correctly avoids any parameter-related details. This is appropriate given the empty input schema.

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

Purpose4/5

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

The description states a clear verb and resource: 'Get detailed information about the current InDesign document'. It is not a tautology and has a specific focus on document info. However, it does not distinguish from sibling tools like view_document or list_styles, which may also provide document-related information.

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. It is a single declarative sentence without context on prerequisites, exclusions, or preferred scenarios. No sibling tools are referenced, so the agent has no basis for choosing this tool over others.

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

get_selected_objectsA

Get information about currently selected objects in InDesign. ESSENTIAL for working with user-selected text frames.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/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 of behavioral disclosure. The verb 'Get' clearly indicates a read-only operation, and 'currently selected objects in InDesign' explains what state is being read. However, it does not disclose what happens with no selection or multiple selections, nor what shape the returned 'information' takes.

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 short sentences with no filler or restatement of the tool name. The first sentence states the exact action and resource, and the second adds a practical usage context, making it well-structured and front-loaded.

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 zero-parameter getter, the core invocation is clear, and the text-frame usage context is helpful. But with no output schema and no annotations, the description should specify what 'information' is returned (for example, object IDs, types, or bounds) and how no-selection cases are handled. As written, it is minimally viable but incomplete.

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 has zero properties, so there are no parameters for the description to document. The phrase 'currently selected' effectively communicates that the tool relies on the active InDesign selection state rather than explicit arguments, which is the only parameter-like context needed here.

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 clear getter verb and scopes the resource to 'currently selected objects in InDesign,' which is distinct from listing all text frames or getting document info. The text-frame note adds a concrete workflow, but the description does not explicitly contrast it with sibling selection/text tools like get_text_content or fix_typography_in_selection.

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?

The second sentence gives an explicit context: 'ESSENTIAL for working with user-selected text frames.' This tells an agent when this tool is relevant and signals that it operates on the user's current selection. It stops short of 5 because it does not mention when not to use it or name alternatives.

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

get_text_contentA

Extract raw text content from selected text frame, insertion point, or specific frame. Automatically handles different selection types and normalizes line breaks to spaces. RECOMMENDED for text extraction.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxLengthNoMaximum text length to return (0 = unlimited)
pageIndexNoPage index for frameIndex
frameIndexNoOptional: specific frame index if nothing selected
normalizeSpacesNoConvert line breaks to spaces and remove multiple spaces

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 behavioral disclosure burden. It does disclose a key behavior: line breaks are normalized to spaces. It also implies read-only extraction via the verb 'extract'. However, it does not explain potential error behavior when neither a selection nor a frameIndex exists, or what happens when both are provided.

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 tight sentences with no filler. The core action and input sources are front-loaded, and the normalization behavior and recommendation are stated in minimal words. Every sentence adds value.

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 extraction tool with optional parameters and no output schema, the description is mostly adequate, but it leaves some gaps. It does not explicitly state the return type beyond 'raw text content', nor does it clarify edge cases like truncation via maxLength or the relationship between pageIndex and frameIndex. These gaps are moderate for an agent deciding whether and how to invoke it.

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 100%, so the baseline is 3. The description adds little beyond the schema, though it does reinforce the normalizeSpaces behavior by mentioning line-break normalization. No additional parameter semantics or usage constraints are given for maxLength, pageIndex, or frameIndex.

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 ('Extract') and resource ('raw text content') and clearly identifies the possible input sources: selected text frame, insertion point, or specific frame. It also differentiates itself from sibling tools like list_text_frames and get_selected_objects by focusing on actual text extraction rather than object listing or selection inspection.

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 'RECOMMENDED for text extraction' tag gives general guidance on when to use the tool, and the description explains it handles different selection types and specific frames. However, it does not explicitly name alternatives or state when not to use this tool, such as when listing frame metadata or editing text instead.

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

insert_markdown_textA

Insert markdown text into a text frame with automatic formatting using existing paragraph and character styles. Supports # headers, bold, italic, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIndexNoPage index
frameIndexNoText frame index (use list_text_frames or get_selected_objects first)
markdownTextYesMarkdown text to insert
replaceContentNoReplace existing content or append
useSelectedFrameNoUse currently selected text frame instead of frameIndex

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description must disclose side effects, but it only says 'Insert' and 'automatic formatting.' It does not mention that replaceContent defaults to true and would replace existing frame content, nor any other mutation or failure behavior. This leaves a potentially destructive default hidden from an agent choosing or invoking the 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?

Two short sentences with the key action and object first, followed by concrete syntax examples. There is no filler and no repetition of schema fields.

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 schema documents all five parameters and covers prerequisites for frameIndex, so the tool is callable, but the description omits the replace-vs-append default and there is no return-value guidance or explicit alternative routing. For a mutating 5-parameter tool with no annotations and no output schema, this is adequate but not 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?

Schema coverage is 100%, so the baseline is 3, and the description still adds value by specifying accepted markdown syntax ('# headers, **bold**, *italic*'). It also explains that formatting reuses existing paragraph and character styles, which clarifies why no style parameters are required. It does not add parameter-level detail for pageIndex/frameIndex/replaceContent, but the schema already covers those.

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 ('Insert'), a target resource ('text frame'), and a distinctive behavior ('automatic formatting using existing paragraph and character styles'). It clearly separates this tool from siblings like get_text_content, create_text_frame, and apply_paragraph_style. The markdown examples further pin down the tool's purpose.

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 the use case—inserting markdown-formatted content into an existing frame—but never names alternatives or states when not to use it. The frameIndex parameter description in the schema gives a prerequisite, but the tool description itself provides no explicit routing versus edit_text_frame or clean_imported_text. This is adequate implied guidance, not explicit selection criteria.

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

list_color_swatchesA

List all color swatches in the document

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/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. The verb 'list' implies a non-destructive read operation, and 'all' indicates comprehensive coverage. However, it does not disclose details such as whether default swatches are included or the format of the returned data.

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, clear sentence that directly conveys the tool's purpose without unnecessary 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 description explains the basic function but omits details about the return structure (e.g., whether it returns names, color values, or both). Since there is no output schema, these details would need to be in the description to be complete, but they are missing.

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 score is 4. The description adds no parameter information because none is needed.

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 action (List), the resource (color swatches), and the scope (in the document). It distinguishes from sibling tools like create_color_swatch and apply_color by focusing on read-only listing.

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. There is no mention of related tools like create_color_swatch or apply_color, nor any context about typical use cases.

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

list_grep_searchesB

List all saved GREP searches in the document (like DATUM search for dates)

ParametersJSON Schema
NameRequiredDescriptionDefault

No 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. It mentions that it lists searches but does not disclose what happens if the document is closed, whether it returns names and/or patterns, or any side effects (though listing is likely read-only). The analogy is helpful but does not cover behavioral 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 a single concise sentence, with the analogy adding value without unnecessary length. It is front-loaded with the core action. 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?

Given the simplicity (zero params, no output schema), the description is mostly complete for an agent to know what it does. However, it lacks details on the return format or any behavior in edge cases (e.g., no searches found). For a simple list tool, this is acceptable but could be improved.

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 tool has zero parameters, so the description does not need to explain parameter semantics. The baseline for zero parameters is 4, but the description adds little beyond stating the tool lists searches; it could have elaborated on the structure of the listing (e.g., names vs. patterns). Thus, a 3 is appropriate.

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 lists saved GREP searches in the document, using a specific verb and resource. It also provides a helpful analogy ('like DATUM search for dates') to clarify the concept. However, it does not explicitly differentiate from siblings, though no sibling seems to offer similar functionality.

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 the agent needs to know available GREP searches, and the analogy helps understanding. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention any prerequisites (e.g., document must be open). With no annotations, more explicit guidance would be better.

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

list_layersA

List all layers in the document

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose any behavioral traits such as return format, ordering, or side effects. The read-only nature is implied but never explicitly stated, and the description adds no procedural context.

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?

A single concise sentence that directly states the operation without any extraneous words. It is front-loaded 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?

For a zero-parameter list operation, the description is functionally complete. It does not explain return values, but given the simplicity of the tool and absence of an output schema, the provided information is sufficient for a competent agent to use it correctly.

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?

There are zero parameters, so the baseline is 4. The description adds no parameter semantics, but none are needed as the tool takes no inputs.

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 'list' and clearly identifies the resource ('all layers in the document'), distinguishing it from sibling tools like create_layer or set_active_layer. This is unambiguous and immediately understandable.

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. It does not mention any related tools or exclusions, leaving the agent to infer usage from the name alone. For a simple listing tool this is a gap, though not severe.

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

list_stylesC

List all available styles in the document

ParametersJSON Schema
NameRequiredDescriptionDefault
styleTypeNoall

TDQS

C2.9/5.0
Behavior2/5

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

Since no annotations are provided, the description must carry the full burden. It does not disclose that this is a read-only operation, whether it includes hidden or built-in styles, or what the return format is. The verb 'list' implies reading, but no behavioral details are added.

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?

A single sentence that is efficient and front-loaded. Every word contributes to conveying the core purpose without unnecessary elaboration.

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 with one optional parameter and no output schema. The description is adequate for a basic read operation, but it does not mention possible return values, filtering, or any behavioral nuances, leaving some gaps for an agent to infer. Given the low complexity, this is minimally viable.

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 documentation. It completely omits the styleType parameter and its filter options, despite those being essential for non-default behavior. The schema itself is self-explanatory, but the description fails to add meaningful 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 action (list) and the resource (available styles in the document). It is specific enough to distinguish from sibling tools like list_color_swatches or list_layers, though it doesn't mention the optional styleType filter, which slightly narrows the scope in the 'all' default sense.

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, nor are any exclusions or prerequisites mentioned. The description is only a bare functional statement with no context for the AI agent.

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

list_text_framesA

List all text frames on a page with their indices, content preview, and selection status

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIndexNoPage index to inspect

TDQS

A3.6/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 usefully discloses that the operation lists frames and includes indices, previews, and selection status. However, it does not mention preview truncation, invalid page indices, or whether the operation is strictly read-only beyond the verb 'list'.

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?

A single, front-loaded sentence that states the action, scope, and output essentials without filler. Every word contributes to understanding.

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?

There is no output schema, but the description names the key returned elements (indices, content preview, selection status). For a simple list operation with one optional parameter, this is nearly complete; only minor details like output format or preview limits are missing.

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 100%: pageIndex is described as 'Page index to inspect' with a default of 0. The description adds no additional parameter meaning, so the baseline of 3 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 names a specific verb ('List'), a clear resource ('text frames'), and the scope ('on a page'), plus concrete output details (indices, content preview, selection status). This distinguishes it from siblings like get_text_content or get_selected_objects by focusing on the full set of frames with 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?

The description gives no guidance about when to use this tool versus alternatives such as get_text_content or get_selected_objects. It states what the tool does, but not when it is preferred, when it should be avoided, or what prerequisites exist.

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

modify_character_styleB

Modify properties of an existing character style

ParametersJSON Schema
NameRequiredDescriptionDefault
fontSizeNoFont size in points
trackingNoCharacter tracking
fontStyleNoFont style (Regular, Bold, Italic)
styleNameYesCharacter style name to modify
textColorNoText color (swatch name)
fontFamilyNoFont family

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only states the action and object. It does not mention that changes overwrite the style definition, how existing text using the style is affected, whether missing style names cause errors, or any permission requirements. 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.

Conciseness5/5

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

The description is a single, direct sentence with no filler or repetition. It front-loads the action and target resource, making it instantly 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?

Although the schema documents parameter names and types, the description provides no context about side effects, return values, error conditions, or the relationship between modifying a character style and text that already uses it. For a tool with no annotations and no output schema, this is too thin for an agent to understand the full implications of calling it.

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 100%, so all six parameters already have meaningful descriptions in the schema. The tool description adds no parameter-level detail beyond the generic phrase 'properties', but because the schema does the heavy lifting, the baseline score of 3 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 uses a specific verb ('Modify') with a specific resource ('existing character style'), which clearly distinguishes it from sibling tools like create_character_style and modify_paragraph_style. The word 'existing' also signals that this is not a creation tool.

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 'existing character style' implies this tool is for modifying already-created styles rather than creating new ones, but it never explicitly states when to choose this tool over create_character_style, modify_paragraph_style, or modify_object_style. The guidance is present only by implication from the name and the word 'existing'.

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

modify_object_styleB

Modify properties of an existing object style

ParametersJSON Schema
NameRequiredDescriptionDefault
fillColorNoFill color (swatch name)
styleNameYesObject style name to modify
strokeColorNoStroke color (swatch name)
strokeWidthNoStroke width in points
transparencyNoTransparency percentage (0-100)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description must carry the behavioral burden. It states that properties are modified but does not disclose side effects, whether the style is mutated in place, whether changes propagate to objects using the style, or any prerequisites. This is thin 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 a single, front-loaded sentence with no filler. It is concise and readable, though 'properties' is generic and could have named the actual modifiable fields for extra clarity.

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

Completeness2/5

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

For a mutation tool with no annotations, no output schema, and several closely related sibling tools, the description is too minimal. It fails to explain when to use it, what side effects occur, or how it differs from applying or creating object styles.

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 100%, so the input schema already documents all five parameters. The description adds no parameter-level meaning beyond the schema, so the baseline score of 3 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 uses a specific verb ('Modify') plus a clear resource ('existing object style'). It differentiates from siblings like create_object_style, apply_object_style, modify_paragraph_style, and modify_character_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 given about when to use this tool versus the many related style tools. It does not mention alternatives, prerequisites, or exclusion conditions; usage is only implied by the tool name.

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

modify_paragraph_styleA

Modify properties of an existing paragraph style

ParametersJSON Schema
NameRequiredDescriptionDefault
leadingNoLeading (line spacing) in points
fontSizeNoFont size in points
alignmentNoText alignment
styleNameYesParagraph style name to modify
textColorNoText color (swatch name)
fontFamilyNoFont family
spaceAfterNoSpace after paragraph in mm
spaceBeforeNoSpace before paragraph in mm

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so this sparse description carries the full burden. It discloses that the tool modifies an existing style but does not mention whether changes are applied in-place, affect content already using the style, require a certain document context, or what happens if the style does not exist. For a mutation tool, this lack of behavioral disclosure 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.

Conciseness5/5

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

One short, grammatically complete sentence that immediately states the operation and target. No filler or redundant phrasing.

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 has 8 parameters with complete schema descriptions, one required parameter, and no output schema, so the description needn't cover return values. However, because there are no annotations, the description should include behavioral context (e.g., that styleName must reference an existing style, that at least one property should be supplied, and the in-place mutation effect); it does not.

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 100%, and each parameter has a description (e.g., 'Leading (line spacing) in points', 'Font size in points'). The tool description adds no parameter-specific meaning, but the schema already fully documents the parameters, so the baseline of 3 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 uses the specific verb 'Modify' with resource 'paragraph style' and the qualifier 'existing', which clearly differentiates it from create_paragraph_style and apply_paragraph_style, as well as modify_character_style. The purpose is unambiguous.

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 does not explicitly state when to use this tool versus alternatives. Context is implied by the word 'existing' (i.e., not for creating new styles) and by naming 'paragraph style' (not character/object styles), but no explicit when-to-use or exclusion guidance is provided.

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

open_documentB

Open an existing InDesign document

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPath to the InDesign document (.indd)

TDQS

B3.3/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 action without explaining side effects, error handling (e.g., file not found), or whether InDesign must be running. It does not describe what happens when the document is opened or whether it replaces the currently open document.

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 redundant words. It is perfectly concise and front-loaded, though it sacrifices behavioral detail for brevity.

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 tool with one parameter and no output schema, the description provides the basic purpose but omits behavioral context that would help an agent fully understand the operation's effects. It is adequate but not complete, especially given the absence of annotations.

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 100% for the single parameter filePath, so the schema fully documents it. The description adds no additional meaning beyond the schema, resulting in the baseline score of 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 'Open an existing InDesign document' clearly states the action (open) and the resource (existing InDesign document), distinguishing it from siblings like create_document, close_document, and save_document. It is specific 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, nor are any prerequisites or exclusions mentioned. For instance, it does not state whether the document must be closed already or if there are format restrictions beyond the schema's filePath description.

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

package_documentC

Package document for print production

ParametersJSON Schema
NameRequiredDescriptionDefault
folderPathYesOutput folder path
createReportNoCreate packaging report
includeFontsNoInclude fonts
confirmDestructiveNoREQUIRED: Confirm package creation
includeLinkedFilesNoInclude linked files

TDQS

C2.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 of behavioral disclosure. It only names the operation; it does not disclose side effects such as creating folders, copying fonts/linked files, potential overwriting, or the destructive implications hinted at by confirmDestructive.

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 concise sentence with no wasted words. However, for a tool with five parameters and no annotations, it is arguably under-specified rather than appropriately sized.

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 tool's complexity, lack of annotations, absence of an output schema, and many sibling tools, the description is too terse. It does not explain what packaging involves, what confirmDestructive protects against, or what the agent should expect after 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?

Schema description coverage is 100%, so the input schema already explains each parameter clearly. The tool description adds no additional parameter meaning, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description states a specific action ('Package') and resource ('document'), with a clear purpose ('for print production'). It is understandable on its own, but it does not explicitly distinguish this from sibling tools like export_pdf or preflight_document.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as export_pdf, preflight_document, or save_document. The phrase 'for print production' vaguely implies context, but no exclusions, prerequisites, or alternative routing are provided.

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

place_imageC

Place an image with advanced options

ParametersJSON Schema
NameRequiredDescriptionDefault
xNoX position in mm
yNoY position in mm
widthNoWidth in mm (optional, maintains aspect ratio if not specified)
heightNoHeight in mm (optional, maintains aspect ratio if not specified)
fitOptionNoPROPORTIONALLY
imagePathYesPath to the image file
pageIndexNoPage index
createFrameNoCreate frame first

TDQS

C2.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 must disclose behavior, but it only states the action without any details about side effects, permissions, or document mutations. It does not explain how parameters like createFrame affect the operation or whether the image is embedded or linked.

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 short sentence, which is concise, but it lacks substantive content and includes filler ('advanced options'). It is not structured to convey important details, though it is not excessively long.

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 8 parameters, no annotations, and no output schema, the description is substantially incomplete. It does not explain the tool's overall effect, return value, or how it fits into a document-editing workflow. The schema helps with parameters but leaves the tool's behavior and integration context unexplained.

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

Parameters3/5

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

The input schema already provides descriptions for 7 of 8 parameters, with high coverage (88%). The description adds no additional parameter semantics; the only undocumented parameter (fitOption) remains vague, but the baseline score of 3 is appropriate given the schema's coverage.

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 identifies the action ('place') and resource ('an image'), making the core purpose clear. However, 'advanced options' is vague and does not elaborate on what those options are, and there is no explicit differentiation from sibling tools beyond the resource type.

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 like create_rectangle or create_text_frame. There is no mention of prerequisites, use cases, or exclusions, leaving the agent to infer applicability.

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

populate_tableC

Populate table with data

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesArray of arrays with table data
pageIndexNoPage index
tableIndexYesTable index on page
includeHeadersNoFirst row contains headers

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavior. It only states 'Populate table with data' without disclosing whether existing data is replaced, how headers are handled, or any side effects. No mention of tableIndex/pageIndex requirements or error conditions.

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

Conciseness3/5

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

The description is one short sentence with no wasted words, but it is under-specified. It earns some credit for being concise, but the brevity sacrifices necessary detail, making it less useful than a moderately detailed description.

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 absence of annotations and output schema, the description should explain the tool's effect on the document and any return values. It fails to mention whether data replaces or appends, whether headers are included, or what happens on success. The 100% schema coverage helps parameters but not overall context.

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 input schema already provides 100% description coverage for all four parameters, so the baseline is 3. The tool description adds no additional parameter meaning beyond what the schema already states, such as the structure of 'data' or the meaning of 'includeHeaders'.

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 clear verb-resource structure ('Populate table') and identifies the resource as a table. It does not explicitly distinguish from siblings like create_table or data_merge, but the action 'populate' suggests filling an existing table, which is reasonably clear. However, it lacks detail on scope (which table, how data maps).

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 does not mention prerequisites (e.g., table must already exist) or contrast with data_merge or edit_text_frame. There is no context about typical use cases.

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

preflight_documentC

Run preflight check on the document

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNodocument
profileNoPreflight profile name

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It fails to state whether the tool is safe/read-only, what output or return value it produces, or any side effects. The term 'preflight' implies checking, but the description does not explicitly assure non-mutating behavior.

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 and is concise, but it is under-specified to the point of being vague. It lacks structural elements like mention of parameters, behavior, or context that would make the conciseness effective.

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 no output schema and no annotations, the description is insufficient for the agent to understand the tool's result or behavior. Given the complexity of a preflight check (likely producing a report), a one-line description is grossly inadequate for successful invocation and output interpretation.

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 50% (only 'profile' has a description). The tool description adds no information about either parameter; it doesn't explain 'scope' beyond the schema enum/default or clarify how 'profile' is used. The description fails to compensate for the partial schema coverage.

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 the specific verb 'Run' with the resource 'preflight check on the document', clearly indicating the tool's function. It is distinct from siblings like 'package_document' or 'export_pdf' because 'preflight' is a recognized term in print workflows, though it doesn't elaborate on what the check entails.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. It doesn't mention that preflight is typically run before export/package, nor does it state any prerequisites or exclusions among the sibling tools.

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

save_documentB

Save the current document

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathNoOptional: Save as new file path
confirmDestructiveNoREQUIRED: Confirm overwrite of existing files

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It only states 'save', but does not explain side effects (e.g., overwriting without confirmation), requirements (confirmDestructive), or return behavior. The schema description of confirmDestructive hints at overwrite, but the tool description itself is silent on these behaviors.

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 zero unnecessary words. It is maximally concise and front-loaded with the core action and object.

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

Completeness2/5

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

For a tool with no output schema and no annotations, the description is severely underspecified. It lacks information about return values, error cases, what happens when filePath is omitted, or the role of confirmDestructive. An agent cannot fully anticipate the tool's behavior from this description alone.

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

Parameters3/5

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

Schema coverage is 100% (both parameters have descriptions), so the schema already documents parameter meaning. The description adds nothing beyond the schema, so a baseline of 3 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 clearly states a specific verb ('Save') and resource ('the current document'), which is unambiguous and distinguishes it from all sibling tools (no other save operation exists). It is immediately obvious what the tool does.

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 or any prerequisites (e.g., a document must be open). There is no mention of typical use cases or conditions, leaving the agent to infer when saving is appropriate.

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

set_active_layerC

Set the active layer

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNameYesLayer name to activate

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only says 'Set the active layer,' which implies a state change, but does not disclose side effects, error behavior if the layer does not exist, or any impact on subsequent operations. 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.

Conciseness2/5

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

The description is a single sentence, but it essentially restates the tool name and provides no extra information. It is under-specified rather than appropriately concise, similar to the 'Process' example where brevity comes at the cost of usefulness.

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 no annotations, no output schema, and only a minimal description, the tool lacks essential context such as prerequisites, behavior, and return value. For a simple setter, it might be acceptable, but the absence of any additional information makes it incomplete for an agent to use confidently.

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 input schema has 100% coverage for the single parameter 'layerName' with description 'Layer name to activate'. The tool description adds no additional semantics beyond the schema, so the baseline of 3 applies.

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 'Set the active layer' clearly states the action (setting) and the resource (active layer). It distinguishes from sibling tools like create_layer and list_layers, though it doesn't explicitly clarify what 'active layer' means or its significance.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, no prerequisites (e.g., layer must exist), and no mention of typical use cases. The agent is left without context for selecting this tool appropriately.

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

view_documentB

Get visual representation and detailed info about the current document

ParametersJSON Schema
NameRequiredDescriptionDefault

No 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 must carry the full burden of behavioral disclosure. It does not state whether the tool is read-only, what 'visual representation' means (e.g., image, UI preview, data), or any side effects or permissions required.

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, front-loaded sentence with no wasted words. It conveys the essential scope efficiently.

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 parameters and no output schema, the description should clarify what the agent will receive or experience, but it does not. The missing return format and behavioral details are significant gaps, especially given similar sibling tools that return structured info or files.

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, making schema coverage trivially complete. With no parameters to document, the baseline is 4, and the description adds no parameter-specific meaning because none are needed.

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 ('Get visual representation and detailed info') and the resource ('current document'), avoiding tautology. However, it does not distinguish this from the sibling get_document_info, which also provides detailed info about a document.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like get_document_info or export_images. No context, prerequisites, or exclusions are provided.

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

zoom_to_pageC

Zoom and fit page in view

ParametersJSON Schema
NameRequiredDescriptionDefault
fitOptionNoFIT_PAGE
pageIndexNoPage index to zoom to

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only states the action without explaining side effects, view changes, or interactions with pageIndex and fitOption. It does not reveal whether the zoom is temporary or persists, nor does it mention any prerequisites.

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 short phrase, which is structurally brief and front-loaded, but it is overly terse and omits necessary context. It is concise but at the expense of clarity.

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 tool has two parameters, an enum, and no output schema, the description is far too minimal to provide complete context. It does not explain the fit options, the meaning of pageIndex, or how this tool fits among view-related siblings, leaving significant gaps.

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 50% with only pageIndex having a description. The description does not elaborate on fitOption's meaning or how it interacts with pageIndex. It fails to compensate for the lack of schema documentation on the enum parameter.

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

Purpose4/5

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

The description 'Zoom and fit page in view' identifies the core action (zoom/fit) and target (page in view). It clearly indicates the tool's primary function, though it does not explicitly mention the fit options or differentiate from sibling tools like navigate_to_page.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as navigate_to_page or view_document. The description lacks context about typical scenarios or exclusions, leaving the agent to infer usage.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 51 tool updatesv1.0.0
    • First observedadd_page
    • First observedanalyze_embedded_objects
    • First observedanalyze_text_problems
    • First observedapply_color
    • First observedapply_object_style
    • First observedapply_paragraph_style
    • First observedclean_imported_text
    • First observedclose_document
    • First observedcreate_character_style
    • First observedcreate_color_swatch
    • First observedcreate_document
    • First observedcreate_ellipse
    • First observedcreate_layer
    • First observedcreate_object_style
    • First observedcreate_paragraph_style
    • First observedcreate_rectangle
    • First observedcreate_table
    • First observedcreate_text_frame
    • First observeddata_merge
    • First observeddelete_page
    • First observedduplicate_page
    • First observededit_text_frame
    • First observedexecute_indesign_code
    • First observedexport_epub
    • First observedexport_images
    • First observedexport_pdf
    • First observedfind_replace_text
    • First observedfind_typography_issues
    • First observedfix_typography_in_selection
    • First observedget_document_info
    • First observedget_selected_objects
    • First observedget_text_content
    • First observedinsert_markdown_text
    • First observedlist_color_swatches
    • First observedlist_grep_searches
    • First observedlist_layers
    • First observedlist_styles
    • First observedlist_text_frames
    • First observedmodify_character_style
    • First observedmodify_object_style
    • First observedmodify_paragraph_style
    • First observednavigate_to_page
    • First observedopen_document
    • First observedpackage_document
    • First observedplace_image
    • First observedpopulate_table
    • First observedpreflight_document
    • First observedsave_document
    • First observedset_active_layer
    • First observedview_document
    • First observedzoom_to_page

TDQS

C2.6/5.0

Scored across 51 tools

Disambiguation2/5

Several tools have overlapping purposes, especially the typography/text-cleaning cluster: find_typography_issues vs analyze_text_problems and fix_typography_in_selection vs clean_imported_text are hard to distinguish in intent. get_text_content/list_text_frames and view_document/get_document_info also create ambiguity, so agents may misselect tools.

Naming Consistency4/5

The vast majority of tools follow a snake_case verb_noun pattern (create_document, export_pdf, list_styles), which is highly consistent. Minor deviations like data_merge, edit_text_frame vs modify_*, and view_document vs get_document_info prevent a perfect score.

Tool Count1/5

51 tools is far beyond the well-scoped 3-15 range and falls into the extreme 50+ category. Even for a broad InDesign automation server, this surface is overwhelming and would benefit from consolidation into fewer, higher-level operations.

Completeness3/5

The server covers document lifecycle, pages, text, styles, layers, colors, tables, and exports comprehensively, including preflight and packaging. However, many resource types lack delete operations (styles, layers, text frames, objects) and there is no list_pages or direct text setter, leaving notable lifecycle gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    B
    maintenance
    Enables AI assistants to automate Adobe InDesign publishing workflows, including document creation, text formatting, image placement, PDF export, and more via 35+ professional tools.
    36
    42
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to control Adobe Illustrator on Windows, including creating, opening, saving, and exporting documents, drawing shapes, adding text, and running arbitrary ExtendScript.
    10
    MIT