Skip to main content
Glama

@zihin/mcp-server

Proxy MCP stdio-to-HTTP para a plataforma Zihin.ai. Conecta clientes MCP ao Zihin MCP Server via HTTP.

zihin-mcp MCP server

Cliente MCP <-stdio-> [@zihin/mcp-server] <-HTTP-> https://llm.zihin.ai/mcp

Inicio rapido

macOS / Linux:

ZIHIN_API_KEY=zhn_live_xxx npx @zihin/mcp-server

Windows (PowerShell):

$env:ZIHIN_API_KEY="zhn_live_xxx"; npx @zihin/mcp-server

Na pratica, a maioria dos clientes MCP (Claude Desktop, Cursor, etc.) define a variavel automaticamente via bloco "env" na configuracao — nao e necessario definir manualmente no shell.

Related MCP server: OpenAPI to Model Context Protocol (MCP)

Configuracao

Claude Desktop

Adicione ao claude_desktop_config.json:

{
  "mcpServers": {
    "zihin": {
      "command": "npx",
      "args": ["-y", "@zihin/mcp-server"],
      "env": {
        "ZIHIN_API_KEY": "zhn_live_xxx"
      }
    }
  }
}

Claude Code

Adicione ao .mcp.json do projeto:

{
  "mcpServers": {
    "zihin": {
      "command": "npx",
      "args": ["-y", "@zihin/mcp-server"],
      "env": {
        "ZIHIN_API_KEY": "zhn_live_xxx"
      }
    }
  }
}

Ou via CLI (a variavel ZIHIN_API_KEY deve estar definida no shell):

claude mcp add zihin -e ZIHIN_API_KEY=zhn_live_xxx -- npx -y @zihin/mcp-server

Cursor

Instalacao em 1 clique (cole na barra de endereco do navegador ou rode open '<link>'):

cursor://anysphere.cursor-deeplink/mcp/install?name=zihin&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkB6aWhpbi9tY3Atc2VydmVyIl0sImVudiI6eyJaSUhJTl9BUElfS0VZIjoiemhuX2xpdmVfeHh4In19

Troque zhn_live_xxx pela sua key nas configuracoes do MCP depois de instalar. Ou adicione ao .cursor/mcp.json:

{
  "mcpServers": {
    "zihin": {
      "command": "npx",
      "args": ["-y", "@zihin/mcp-server"],
      "env": {
        "ZIHIN_API_KEY": "zhn_live_xxx"
      }
    }
  }
}

VS Code (Copilot)

Install in VS Code

O botao abre o VS Code com a config pronta (troque zhn_live_xxx pela sua key). Manual: comando MCP: Add Server ou .vscode/mcp.json:

{
  "servers": {
    "zihin": {
      "command": "npx",
      "args": ["-y", "@zihin/mcp-server"],
      "env": { "ZIHIN_API_KEY": "zhn_live_xxx" }
    }
  }
}

Windsurf

Adicione ao ~/.windsurf/mcp.json:

{
  "mcpServers": {
    "zihin": {
      "command": "npx",
      "args": ["-y", "@zihin/mcp-server"],
      "env": {
        "ZIHIN_API_KEY": "zhn_live_xxx"
      }
    }
  }
}

Gemini CLI

gemini extensions install https://github.com/zihin-ai/gemini-cli-zihin

A extensao pede a API Key na instalacao (fica no keychain) e instala o MCP + contexto. Config manual: ver "Outros clientes MCP".

Codex (OpenAI)

Adicione ao ~/.codex/config.toml (ou .codex/config.toml no projeto):

[mcp_servers.zihin]
command = "npx"
args = ["-y", "@zihin/mcp-server"]
env_vars = ["ZIHIN_API_KEY"]

A variavel ZIHIN_API_KEY deve estar definida no seu shell. Alternativamente, para definir inline:

[mcp_servers.zihin]
command = "npx"
args = ["-y", "@zihin/mcp-server"]

[mcp_servers.zihin.env]
ZIHIN_API_KEY = "zhn_live_xxx"

Outros clientes MCP

Qualquer cliente que suporte o protocolo MCP via stdio pode usar este pacote. O padrao de configuracao e o mesmo: executar npx -y @zihin/mcp-server com a variavel ZIHIN_API_KEY definida.

Variaveis de ambiente

Variavel

Obrigatoria

Descricao

ZIHIN_API_KEY

Sim

API Key do tenant (formato zhn_live_*, zhn_test_* ou zhn_dev_*)

ZIHIN_MCP_URL

Nao

URL do MCP Server (default: https://llm.zihin.ai/mcp)

ZIHIN_MCP_CALL_TIMEOUT_MS

Nao

Teto de tempo de um tools/call, em milissegundos (default: 300000, 5 min; faixa aceita: 10001800000). O server tem deadline proprio por canal (chat 150s, builder 180s, async 240s) — o default deixa o server responder o erro diagnosticavel antes de o proxy cortar. Acima de ~300s o fetch do Node (undici) pode cortar antes, com timeout proprio de headers/body.

Como funciona

O pacote atua como um proxy transparente entre o cliente MCP local (via stdio) e o Zihin MCP Server (via HTTP):

  • Todas as tools, resources e prompts sao descobertos automaticamente do server

  • Auth, RBAC e tenant isolation sao enforced server-side via API Key

  • O role (admin/editor/member) e determinado pela API Key

Skills — deixe seu IDE especialista no Zihin

O servidor expoe 6 skills (playbooks procedurais: criar agente, tools, triggers, diagnostico, governanca) como resources zihin://skills/* — todo client MCP ja as recebe automaticamente, sem instalar nada.

Para instalar tambem no formato NATIVO do seu client (ativacao automatica por contexto):

# Claude Code (Agent Skills em .claude/skills/)
ZIHIN_API_KEY=zhn_live_xxx npx @zihin/mcp-server install-skills --client claude

# Cursor (.cursor/rules/*.mdc) | Windsurf (.windsurf/rules/) | Codex (AGENTS.md + .zihin/skills/)
ZIHIN_API_KEY=zhn_live_xxx npx @zihin/mcp-server install-skills --client cursor
ZIHIN_API_KEY=zhn_live_xxx npx @zihin/mcp-server install-skills --client all

# Offline (usa as skills empacotadas no npm)
npx @zihin/mcp-server install-skills --client claude --bundled

Opcoes: --client claude|cursor|windsurf|codex|all · --dir <raiz-do-projeto> · --global (so claude, instala em ~/.claude/skills) · --bundled (offline).

As skills sao buscadas do server vivo (sempre atualizadas). No Codex, um bloco gerenciado e inserido no AGENTS.md (entre <!-- zihin-skills:start/end -->, idempotente) com o indice das skills em .zihin/skills/.

Plugin Claude Code (MCP + skills em um comando)

claude plugin marketplace add zihin-ai/zihin-mcp
claude plugin install zihin@zihin

O plugin instala o MCP server (via este pacote) + as 6 skills. Requer ZIHIN_API_KEY exportada no ambiente.

Capabilities

As capabilities disponiveis dependem do role da API Key, controlado server-side:

Role

Tools

Resources

Prompts

admin

Todas (96)

20

3

editor

Leitura (52 — writes nao sao listadas)

20

3

member

Subset consumer (5)

-

-

Contagens verificadas contra producao em 31/08/2026 (96 tools / 20 resources — 3 catalogos + 11 schemas + 6 skills / 3 prompts). O numero exato pode variar conforme o server evolui.

Resources disponiveis

URI

Descricao

zihin://agents

Lista de agentes do tenant

zihin://models

Catalogo de modelos LLM disponiveis

zihin://schema-templates

Templates de schema para configuracao

zihin://schemas/{tipo}

Contrato formal (JSON Schema) de cada payload — o mesmo que o server valida (11 tipos)

zihin://skills/{slug}

Playbooks procedurais (6 skills — ver secao Skills acima)

Prompts disponiveis

Nome

Descricao

setup-agent

Cria um agente completo (agente + persona + tools + publicacao)

add-tool

Adiciona uma tool a um agente existente

configure-webhook

Configura trigger webhook para um agente

Testes

62 testes: unitarios offline (classificacao de erros, teto de timeout, install-skills) + integracao real contra o server de producao. Sem ZIHIN_API_KEY, so os offline rodam; com a key, a suite completa:

ZIHIN_API_KEY=zhn_live_xxx npm test

Cobertura: validacao de API Key, tools (incluindo chat_with_agent com session tracking, continuidade e o contrato de saida — execution_id, cancelled, tools_used/tool_calls), resources, prompts, protocolo MCP (identidade espelhada + instructions), classificacao de erros (formas SDK v1 e v2) e o teto de tools/call conferido contra o deadline do server.

A suite de integracao executa um turno REAL de agente (custo de LLM no tenant). No CI ela roda apenas no gate de publish.

Troubleshooting

"ERRO: ZIHIN_API_KEY nao definida"

Defina a variavel de ambiente antes de rodar:

# macOS / Linux
ZIHIN_API_KEY=zhn_live_xxx npx @zihin/mcp-server

# Windows (PowerShell)
$env:ZIHIN_API_KEY="zhn_live_xxx"; npx @zihin/mcp-server

"Falha ao conectar ao server"

  • Verifique sua conexao com a internet

  • Verifique se a API Key e valida e esta ativa

  • Se usar URL customizada, verifique ZIHIN_MCP_URL

"ERRO FATAL: API Key invalida ou revogada"

A API Key foi revogada ou desativada no painel Zihin. Gere uma nova key e atualize a configuracao do cliente MCP. Reinicie o processo apos a troca.

"A tool X passou do teto de 300s do proxy e foi abortada"

O proxy espera ate 5 minutos por um tools/call. Quando essa mensagem aparece, o limite atingido foi o do proxy, nao o do server — o trabalho foi cancelado no servidor (no dialeto 2026-07-28 o abort do request e o sinal de cancelamento), entao nao ha execucao orfa queimando token.

  • Turno de agente legitimamente longo: suba o teto com ZIHIN_MCP_CALL_TIMEOUT_MS (em milissegundos, faixa 10001800000). Acima de ~300s o proprio fetch do Node pode cortar antes.

  • Quem estourou primeiro foi o server (deadline por canal: chat 150s, builder 180s, async 240s): a mensagem que chega e outra, um erro TURN_TIMEOUT com execution_id e session_id — leve esses dois identificadores para o suporte, sao a correlacao com a execucao no servidor.

  • Cliente MCP tem timeout proprio, independente deste: se o host desistir antes, ele mostra o erro dele.

Tools nao aparecem no cliente

  • Reinicie o cliente MCP apos alterar a configuracao

  • Claude Desktop: verifique logs em ~/Library/Logs/Claude/mcp*.log (macOS) ou %APPDATA%\Claude\logs\mcp*.log (Windows)

Limitacoes

  • Turno longo tem teto: tools/call espera no maximo 5 min no proxy (configuravel — ver ZIHIN_MCP_CALL_TIMEOUT_MS), e o server tem deadline proprio por canal (chat 150s, builder 180s, async 240s). Turno que passa disso e cancelado, nao enfileirado.

  • Streaming: A tool chat_with_agent retorna a resposta completa de uma vez (sincrono). O protocolo MCP define que tools retornam um CallToolResult completo — nao ha suporte a streaming progressivo. Para feedback em tempo real durante execucao do agente, use o endpoint REST SSE (POST /api/v2/agents/:agent_id/stream).

Requisitos

  • Node.js >= 20

  • Compativel com macOS, Linux e Windows

Licenca

MIT

Available Tools

96 tools
cancel_agent_turnA
Destructive
Inspect

Cancela um turn de agente EM ANDAMENTO (mid-LLM, mid-tool, mid-stream). Útil quando agente entrou em loop caro, está respondendo errado, ou consumer pediu para parar. Diferente de set_session_control(suspended) que só bloqueia próximo turn — aqui interrompe o que já executa. Em multi-agent (Sprint 63), cancelar parent propaga em cascata via root_execution_id pra sub-agentes ativos.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoMotivo opcional do cancel (audit/telemetria)
session_idYessession_id text (ou UUID id) da sessão alvo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already mark the tool as destructive and non-idempotent, so the description wisely adds context: it interrupts mid-execution and cascades to active sub-agents via root_execution_id in multi-agent scenarios. It does not detail consequences like partial output handling, but the key behavioral traits are disclosed and consistent with the annotations.

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?

Three dense sentences each carry meaningful content: the core action, the applicable scenarios, the distinction from a sibling tool, and the multi-agent cascading behavior. No filler or repetition; the most important information is front-loaded.

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

Completeness4/5

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

The description is largely complete for a destructive cancellation tool: it names the target, the problem cases, the alternative, and the multi-agent propagation behavior. It could be slightly stronger on irreversibility or what happens to already-produced partial output, but overall an agent has enough to decide when 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 schema already documents session_id and reason. The description adds no additional parameter-level meaning beyond what the schema provides, 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 states a precise verb and resource: it cancels an agent turn that is in progress (mid-LLM, mid-tool, mid-stream). It clearly distinguishes itself from the sibling tool set_session_control(suspended), making the tool's scope unmistakable.

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

Usage Guidelines5/5

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

It explicitly states when to use this tool: when the agent is in an expensive loop, responding incorrectly, or the consumer asks to stop. It also contrasts with set_session_control(suspended), telling the agent exactly when this tool is the right choice instead of an alternative.

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

chat_with_agentAInspect

Envia uma mensagem a um agente e recebe a resposta completa (síncrono — sem streaming progressivo). O agente usa todas as tools configuradas (api_config, db_config, MCP externo).

Resposta inclui: response (texto), session_id (manter para contexto), tools_used (nomes), tool_calls (detalhes com name, duration_ms, success), execution_time_ms, model_used, execution_id (correlação com get_execution_diagnostics). Turno que estoura o deadline do runtime retorna erro TURN_TIMEOUT com execution_id e session_id — a execução fica registrada e a sessão pode ser retomada.

IMPORTANTE: use o session_id retornado nas próximas mensagens para manter o contexto da conversa.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesMensagem para enviar ao agente
agent_idYesUUID do agente
session_idNoID da sessão retornado por uma chamada anterior. Envie para manter contexto. Omita na primeira mensagem.

TDQS

A4.1/5.0
Behavior5/5

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

The description goes far beyond annotations, disclosing synchronous execution, no progressive streaming, use of all configured tools, detailed response fields, timeout error semantics (TURN_TIMEOUT), execution_id correlation with get_execution_diagnostics, and resumability after a timeout. This is rich behavioral context that annotations alone do not convey.

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

Conciseness5/5

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

The description is well-structured and front-loaded with the core action, then uses line breaks to enumerate response contents and the important session_id guidance. Every sentence adds useful information—no filler, no repetition of schema details already covered.

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

Completeness5/5

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

Given there is no output schema, the description compensates well by enumerating the response fields, explaining timeout behavior, and telling the agent how to correlate executions and maintain session context. For a synchronous agent-chat tool with moderate complexity, this is complete enough 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%, so the schema already documents all three parameters and their semantics. The description reinforces the session_id behavior ('use o session_id retornado nas próximas mensagens para manter o contexto') but does not add significant new parameter-level meaning beyond what the input schema already states.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb+resource: 'Envia uma mensagem a um agente e recebe a resposta completa'. It also differentiates itself by noting the synchronous nature and absence of streaming. However, it does not explicitly distinguish itself from the sibling tool 'send_manual_message', which appears to serve a similar chat/send-message role.

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 gives clear context about how to maintain conversation state by reusing the returned session_id, and it explains timeout/resume behavior. But it does not provide explicit when-to-use vs. when-not-to-use guidance or name any alternative tools, such as send_manual_message, so the agent must infer when this is the right choice.

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

clone_agentAInspect

Clona um agente existente com seus schemas. O clone é criado em status draft. Triggers podem ser clonados opcionalmente (desabilitados por padrão). Schemas inválidos geram warnings mas não bloqueiam a clonagem.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesUUID do agente a clonar
new_nameNoNome do clone (default: "Cópia de <original>")
include_schemasNoClonar schemas do agente
include_triggersNoClonar triggers (serão criados desabilitados)

TDQS

A4.4/5.0
Behavior5/5

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

The description discloses important side effects not visible in annotations: the clone is always created in draft status, triggers are cloned disabled by default, and invalid schemas only produce warnings without blocking. This is exactly the behavioral context an agent needs beyond the structured annotation hints.

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?

Three short, information-dense sentences with no filler. The main action and post-condition are front-loaded, and each subsequent sentence adds meaningful detail without repeating schema content.

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

Completeness4/5

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

The description covers the essential post-conditions, optional trigger cloning, and non-blocking schema warnings. With no output schema, it does not describe the return value, but for a cloning operation the stated behavior is largely sufficient. A brief note on what the response contains would make it fully complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents agent_id, new_name, include_schemas, and include_triggers with defaults. The description adds some behavioral nuance around invalid schemas and trigger state, but it does not substantially expand on the parameter semantics already present 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 begins with a specific verb and resource: 'Clona um agente existente' and immediately tells the agent the resulting state ('criado em status draft'). This clearly distinguishes clone_agent from create_agent and other agent-management siblings.

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 description gives clear context for when the tool is appropriate: duplicating an existing agent along with its schemas. It also clarifies optional trigger cloning. It does not explicitly name alternatives or exclusions, but the use case is obvious enough to guide selection.

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

compare_versionsA
Read-onlyIdempotent
Inspect

Compara duas versões de um recurso, mostrando diff campo a campo entre elas.

ParametersJSON Schema
NameRequiredDescriptionDefault
to_versionYesVersão de destino (mais recente)
resource_idYesUUID do recurso
from_versionYesVersão de origem (mais antiga)
resource_typeYesTipo do recurso

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the field-by-field diff behavior, which is consistent with annotations, but it does not disclose behavior for invalid versions or how the diff is structured.

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 packs the action, resource, and result type with no filler. It is appropriately 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 read-only comparison tool with fully documented parameters and safety annotations, the description covers the core behavior and return style. It does not specify output structure or invalid-version handling, but these are not heavily needed given the low complexity and the presence 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%, so each parameter already has clear meaning: resource_type is an enum, resource_id is a UUID, and version fields specify older/newer. The description adds no parameter-level detail beyond this, 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 a clear verb ('Compara') and resource ('duas versões de um recurso'), and specifies the output ('diff campo a campo'). This distinguishes it from siblings like get_version (single version retrieval) and list_versions (all versions listing).

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 name and description imply use when comparing two versions, but there is no explicit statement of when to choose this tool over get_version or list_versions. No alternatives, exclusions, or preconditions are mentioned.

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

create_agentAInspect

Cria um novo agente. Retorna o agente criado com seu UUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
bioNoDescrição/biografia do agente
nameYesNome interno do agente
tagsNoTags para categorização
typeNoTipo do agente (orchestrator = invoca outros agentes via invoke_agent)assistant
metadataNoMetadados adicionais em JSON livre. Ex: { "department": "vendas", "priority": "high" }
llm_configNoConfiguração do LLM. model: "provider.modelo" (ex: "openai.gpt-4.1-nano", "anthropic.claude-sonnet-4-6") ou "auto". temperature: 0-2. fallback_chain: cadeia de modelos ordenada.
visibilityNoVisibilidade do agenteprivate
commercial_nameNoNome comercial (exibido ao usuário final)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already signal that this is not read-only (readOnlyHint=false), so the mutation nature is covered. The description adds one behavioral detail beyond annotations: it returns the created agent object with its UUID. However, it does not disclose side effects, required permissions, failure modes, or idempotency expectations beyond what annotations imply.

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, front-loaded sentences with zero redundant wording. It states the action first and the return contract second, making it easy for an agent to parse quickly.

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

Completeness4/5

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

Given the rich schema descriptions and the annotation set, the description provides the essential missing piece: the return contract (created agent with UUID). It does not explicitly cover when to prefer this over cloning or publishing, and there is no output schema, but the tool is a straightforward create operation and the current description plus schema is largely sufficient for invocation.

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

Parameters3/5

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

The input schema has 100% parameter description coverage, including examples for llm_config and model patterns, so the baseline is 3. The description adds no parameter-level information, but the schema already carries the full semantic burden for all 8 parameters.

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 and resource: 'Cria um novo agente' (creates a new agent). It also adds the return value behavior ('Retorna o agente criado com seu UUID'), which distinguishes it from sibling tools like update_agent, delete_agent, and list_agents. The action 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 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 clone_agent, publish_agent, or update_agent. There are no stated conditions, prerequisites, or exclusions. The only usage signal is the tool name itself, which is implicit rather than explicit.

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

create_api_keyAInspect

Cria uma nova API Key para o tenant. Retorna a chave completa (visível apenas neste momento).

Prefixes: zhn_live_ (produção), zhn_test_ (teste), zhn_dev_ (desenvolvimento). Diferença é semântica — mesmo comportamento. A chave gerada é exibida apenas uma vez — salve-a imediatamente.

Roles: admin (todas as tools + endpoints REST), editor (leitura + consumer), member (consumer only). "owner" é exclusivo de contas de usuário (tenant_users), não disponível para API Keys. Anti-escalação: não é possível criar key com role superior ao seu.

Se rate_limit_per_minute for omitido, usa o máximo do plano do tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNome da API Key (ex: "Webhook eBarn", "n8n Produção")
roleNoRole RBAC: admin (todas as tools + REST), editor (consumer + builder-read), member (consumer only). Anti-escalação: não pode ser superior ao seu roleadmin
prefixNoPrefixo da chave: zhn_live_ (produção), zhn_test_ (teste), zhn_dev_ (dev)zhn_live_
descriptionNoDescrição do uso da chave
expires_in_daysNoDias até expiração (omitir para sem expiração)
rate_limit_per_minuteNoLimite de requisições por minuto (validado contra plano do tenant)

TDQS

A4.7/5.0
Behavior5/5

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

The description adds substantial behavioral context beyond the annotations: the generated key is displayed only once, prefixes are semantically equivalent, roles have anti-escalation rules, 'owner' is unavailable for API keys, and omitted rate_limit_per_minute defaults to the tenant plan maximum. This is valuable operational information that the sparse annotations do not convey.

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

Conciseness5/5

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

The description is well-structured with front-loaded purpose and security-critical warnings. Every sentence contributes operational knowledge, from the one-time display warning to prefix semantics, role restrictions, and rate-limiting defaults. There is no filler or redundant restating of the input schema.

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

Completeness5/5

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

For a mutating tool with no output schema, this description covers return behavior, secret handling, role constraints, prefix semantics, and default rate-limit behavior. An agent has enough to invoke the tool correctly and to know what to expect, including the critical 'save immediately' warning. No essential call-time information is 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?

Schema description coverage is 100%, so the baseline is 3, but the description adds meaningful semantics: default behavior when rate_limit_per_minute is omitted, anti-escalation constraints on role, role capability details, and the note that 'owner' is not a valid API key role. This goes beyond the schema descriptions without needing to repeat every parameter.

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

Purpose5/5

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

The description opens with 'Cria uma nova API Key para o tenant', which is a specific verb plus resource. It also says the full key is returned and visible only once, immediately making the tool's purpose distinct from sibling tools like list_api_keys, get_api_key, update_api_key, and delete_api_key.

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 phrase 'Cria uma nova API Key' clearly signals when to use this tool, and sibling names make the alternatives for listing, retrieving, updating, and deleting unambiguous. It does not explicitly say 'use update_api_key to modify' or 'use list_api_keys to view', but the context is clear and no exclusions are needed.

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

create_approval_policyAInspect

Cria uma política de aprovação (quem aprova ações de tools sob HITL). stages[].approvers aceita {type:"user", id:""} ou {type:"role", role:"admin"}. Para ativar em um agente: vincule na CSP via behavior.approval_policy_id + behavior.require_approval_for. Contrato formal: resource zihin://schemas/approval_policy (envie só name/description/stages — tenant_id e created_by são injetados pelo servidor).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNome da política
stagesYesEstágios de aprovação (v1: 1 estágio, min_approvals=1)
descriptionNoDescrição

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the all-false annotations, the description discloses that the server injects tenant_id and created_by, and clarifies that creation alone does not activate the policy—binding to an agent's CSP is required. This is meaningful behavioral context for a write operation.

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

Conciseness5/5

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

Three dense sentences front-load the purpose, then give the approver shapes, activation path, and contract constraints without repetition. Every sentence adds needed information.

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 creation tool with no output schema, the description covers the call contract, parameter restrictions, and the post-creation activation requirement. It does not describe the response shape or error cases, but those are not essential for a correct first 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?

Schema coverage is 100%, so the baseline is 3; the description adds examples for approvers ({type:'user', id:'<uuid>'} vs {type:'role', role:'admin'}) and restricts the payload to name/description/stages. This helps an agent construct valid input beyond the schema's enum/type descriptions.

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

Purpose5/5

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

The description opens with 'Cria uma política de aprovação', giving a specific verb and resource, and clarifies the domain (who approves tool actions under HITL). It is immediately distinguishable from sibling tools like list_approval_policies, get_approval_policy, and update_approval_policy.

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 primary use case (creating an approval policy) is clear, and the description adds an important follow-up step: the policy only takes effect when bound via CSP behavior.approval_policy_id + behavior.require_approval_for. However, it does not explicitly contrast this with update_approval_policy or state when not to use this tool, so alternative selection guidance is only implicit.

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

create_connectionAInspect

Cria uma nova conexão de banco de dados para o tenant. O ID retornado é usado como connection_id no create_schema(db_config).

Providers suportados: postgresql, supabase. Campos sensíveis (password, keys) são mascarados no retorno.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNome da conexão (ex: "Protheus Produção", "Supabase Dev")
providerYesTipo do banco de dados
settingsNoConfigurações adicionais (JSON livre)
is_activeNoCriar como ativa
is_primaryNoMarcar como conexão principal do tenant (remove primary das outras)
descriptionNoDescrição da conexão
connection_configYesConfiguração de conexão. Estrutura por provider: POSTGRESQL: { host: string, port?: number (default 5432), database: string, username: string, password: string, ssl?: boolean (default true para hosts não-localhost) } SUPABASE: { url: string (URL do projeto Supabase), supabase_anon_key: string }

TDQS

A4.2/5.0
Behavior4/5

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

Annotations are all false, so the description carries most of the behavioral burden. It clearly states a create action and adds non-obvious behavior: sensitive fields such as password and keys are masked in the return value, and an ID is returned for downstream use. No contradiction with annotations.

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?

Four short, front-loaded sentences each add value: the core purpose, downstream workflow, allowed providers, and output masking. There is no filler or unnecessary repetition.

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?

With no output schema, the description usefully explains that the call returns an ID used as connection_id and that sensitive fields are masked. Combined with a fully described input schema, an agent has enough to select and invoke the tool correctly; a fuller return-shape description would be the only meaningful gap.

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 and the schema already documents every parameter, including provider-specific connection_config structures. The description does not add parameter-level semantics beyond restating supported providers and the masking behavior, so no upward adjustment is warranted.

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

Purpose5/5

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

The description opens with a specific action and resource ('Cria uma nova conexão de banco de dados para o tenant'), which clearly distinguishes this create operation from sibling list/get/update/delete/test_connection tools. It further contextualizes the object by noting the returned ID feeds create_schema.

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 description gives clear workflow context (the returned ID is used as connection_id in create_schema) and constrains use to supported providers (postgresql, supabase). It does not explicitly name alternatives or exclusion conditions, but these signals are sufficient for selecting the tool in most cases.

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

create_cspAInspect

Cria uma nova política de segurança contextual (CSP).

Escopos: tenant (global), team, agent, user — herança automática de cima para baixo. Tipos: schedule (horários), behavior (comportamento), data (dados), origin (origens), custom.

⚠️ Campo fora do contrato é ACEITO em silêncio (o schema permite propriedades extras) e fica INERTE. Não invente nome de campo: leia zihin://schemas/csp_config e use exatamente os de $defs.{tipo}Rules.

Exemplos de rules por tipo (todos os campos abaixo existem no contrato E são aplicados):

  • schedule: { allowed_hours: { start: "08:00", end: "18:00" }, allowed_days: ["mon","tue","wed","thu","fri"], blocked_dates: ["2026-12-25"], timezone: "America/Sao_Paulo" }

  • behavior: { max_tokens_per_request: 4096, max_iterations: 10, max_tool_calls: 20, must_not_tools: ["web_search","fetch_url"] }

  • data: { sensitive_fields: ["cpf","email"], never_expose: ["password_hash"], restricted_entities: ["folha_pagamento"], restriction_message: "Não posso consultar esse dado." }

  • custom: qualquer shape — é passado ao prompt como bloco de política sem interpretação do runtime.

Controle de superfície de tools (behavior):

  • must_not_tools: nomes de tools que o agente NUNCA executa, mesmo carregadas. Filtrado antes do turno nos dois runtimes (inclui o resume de HITL). É o único jeito de tirar uma tool nativa do agente sem desligar o recurso no tenant.

⚠️ policy_type "origin" NÃO é aplicado em runtime: nenhum entrypoint propaga o IP/origem do cliente até o loop, e countries/vpn/tor exigem provedor de geo que a plataforma não integra. A CSP é aceita e armazenada, mas não bloqueia nada — não use como controle de segurança.

Contrato formal: resource zihin://schemas/csp_config (envie só name/policy_type/scope/rules/... — tenant_id é injetado pelo servidor).

Aprovação por escopo (OE-2a, só chat nativo) — campos de behavior:

  • require_approval_for: array de string (nome de tool) ou objetos { tool_name } | { mcp_server_id } | { source: "mcp"|"api"|"db" } — tools casadas exigem aprovação HITL antes de executar

  • approval_policy_id: UUID de política criada via create_approval_policy — define QUEM aprova (sem ela, aprova o próprio solicitante) Ex: behavior: { require_approval_for: ["create_deal", { source: "db" }], approval_policy_id: "" }

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNome da política
rulesYesRegras da política (estrutura varia por tipo — veja descrição acima)
scopeYesEscopo de aplicação
priorityNoPrioridade (maior = mais importante, default: 0)
exceptionsNoExceções às regras (mesma estrutura de rules, sobrescreve campos específicos)
descriptionNoDescrição da política
policy_typeYesTipo da política
scope_target_idNoID do alvo (obrigatório para escopos team, agent, user)

TDQS

A4.7/5.0
Behavior5/5

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

The description adds substantial behavioral detail beyond annotations: unknown fields are accepted silently and remain inert, origin policies are stored but never enforced at runtime, tenant_id is injected by the server, and must_not_tools is filtered before turns in both runtimes. No annotation contradiction found.

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 long but information-dense and well organized, with the core purpose front-loaded. Some repetition around schema warnings and rule examples prevents a perfect conciseness score, but every substantial section earns its place given the tool's complexity.

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

Completeness5/5

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

For a create tool with 8 parameters, nested rule objects, and no output schema, the description is exceptionally complete. It covers required fields, per-type shapes, scope behavior, runtime limitations, approval setup, and a formal schema reference. The exact return payload is not described, but that is not necessary for correct invocation.

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

Parameters5/5

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

Even though schema coverage is 100%, the description adds far richer meaning: per-type rules structures with concrete examples, scope_target_id requirements, approval-related fields, and the note that tenant_id is server-injected. This goes well beyond the bare input 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 opening sentence names a specific action and resource: "Cria uma nova política de segurança contextual (CSP)". The scopes and policy types further clarify what the tool is for, and the create verb distinguishes it from sibling update/delete/list tools.

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 description gives rich context for when to create CSPs, explains scope inheritance, identifies prerequisites like create_approval_policy, and explicitly warns that origin policies are not a security control. It does not explicitly mention update_csp or list_csps as alternatives, but the usage context is clear.

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

create_mcp_serverAInspect

Registra um novo MCP server para um agente. O agente poderá usar as tools expostas pelo server.

Transports: 'http' (Streamable HTTP; era do protocolo negociada automaticamente), 'stdio' (local, apenas dev). O 'sse' legado foi descontinuado (migração MCP 2026-07-28).

Combinações auth_method + config:

  • none: config vazio {} (sem autenticação)

  • bearer: { vault_secret_id: "NOME_DO_SECRET" } — o secret contém o token Bearer

  • api_key: { vault_secret_id: "NOME_DO_SECRET", api_key_header: "X-Api-Key" } — header customizável

  • tunnel: config vazio {} — token da plataforma resolvido via env var INTERNAL_TUNNEL_TOKEN (não vault). Usar para MCP servers via Zihin Tunnel

  • oauth: { vault_secret_id: "OAUTH_CREDS", oauth_token_url: "https://..." } — OAuth2 client credentials

Campos opcionais em config: timeout (ms, default 30000), headers (object com headers extras), defaults_from_context (object com valores fixos injetados nas tools).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNome do MCP server
configNoConfiguração adicional (vault_secret_id, headers, timeout)
agent_idYesUUID do agente
endpointYesURL do endpoint ou comando stdio
transportNoTipo de transportehttp
auth_methodNoMétodo de autenticaçãonone
descriptionNoDescrição do server

TDQS

A4.5/5.0
Behavior4/5

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

Annotations only provide generic hints (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the description carries the burden of behavior. It meaningfully adds transport negotiation details, deprecated SSE behavior, env-var token resolution, and auth/config coupling. It does not cover return values, error cases, or duplicate-name behavior, but the described side effect and constraints are clear.

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 front-loads the core purpose, then uses compact bullet lists for transports, auth/config combinations, and optional config fields. Every section earns its place; there is no filler or repeated schema content.

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 tool with 7 parameters, nested objects, enums, and no output schema, the description covers the difficult parts: transport validity, auth/config invariants, defaults, and termination of legacy SSE. Minor gaps remain around return value, validation failures, and what happens if the agent_id or endpoint is invalid, but the essential invocation guidance is present.

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

Parameters5/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, but the description substantially enriches the schema: it specifies exact config object shapes per auth_method, explains vault_secret_id usage, custom api_key_header, the INTERNAL_TUNNEL_TOKEN env var, timeout defaults, headers, and defaults_from_context. This is precisely the information an agent needs beyond the raw JSON 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?

A description begins with a clear verb and resource: 'Registra um novo MCP server para um agente' and states the consequence: the agent will be able to use the server's exposed tools. This distinguishes it from sibling MCP tools like list_mcp_servers, update_mcp_server, and delete_mcp_server by naming the creation action.

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 description gives strong context on when to use each transport and auth option: stdio is 'local, apenas dev', SSE is explicitly deprecated, and tunnel is recommended specifically for MCP servers via Zihin Tunnel. It lacks an explicit pointer to siblings like update_mcp_server for modifying an existing server, so it stops short of full alternative routing.

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

create_schemaAInspect

Cria um novo schema para um agente. O schema_data varia conforme o tipo:

  • persona_config: { editor_schema: { persona: { role, objective, tone, language, expertise, constraints, personality_traits, custom_guidelines } } }

  • api_config: { tool_definition, editor_schema } — ATENÇÃO: endpoint.name DEVE ser igual a tool_definition.name

  • db_config: { connection_id, tool_definition, query_template, parameter_mapping }

  • workflow_config: { steps, transitions, conditions }

  • skill_config: { skill: { name, instructions, priority? } } — instruções comportamentais transversais

  • mcp_tool_config / mcp_resource_config: vínculo de tool/resource de MCP server (normalmente gerados pelo Builder) Triggers e CSPs NÃO são schemas: use create_trigger e create_csp.

WORKFLOW RECOMENDADO (evita erros de contrato): leia o resource zihin://schemas/{schema_type} (JSON Schema formal — o mesmo que o servidor valida), monte o schema_data, valide com validate_schema_data (dry-run), então crie.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNome do schema
agent_idYesUUID do agente
descriptionNoDescrição do schema
schema_dataYesDados do schema. Estrutura por tipo: PERSONA_CONFIG: { editor_schema: { persona: { role: string (obrigatório, minLength 3), objective: string (obrigatório, minLength 10), tone?: string, language?: string, expertise?: string[], constraints?: string[], personality_traits?: string[], custom_guidelines?: object, response_style?: { format?: string, rules?: string[], max_response_length?: number } } } } API_CONFIG: { tool_definition: { name: string (snake_case), description: string (min 20 chars), input_schema: { type: "object", required: string[], properties: { campo: { type, description } } } }, editor_schema: { api: { base_url: string (URL), endpoints: [{ name: string (DEVE ser igual a tool_definition.name), method: "GET"|"POST"|"PUT"|"DELETE", path: string }], auth?: { prefix: "Bearer"|"Basic", secret_ref: string } } } } REGRAS CRÍTICAS para API_CONFIG: 1. endpoint.name DEVE ser IGUAL a tool_definition.name (senão a tool falha no roteamento interno) 2. Path parameters usam formato ${variavel} (com cifrão). Ex: /resources/${resource_id}/items 3. Auth: usar "prefix" (não "type") no objeto auth. Ex: { "prefix": "Bearer", "secret_ref": "MY_TOKEN" }. Para Basic Auth, armazenar o secret já em base64 4. Para input_schema com objetos aninhados (ex: body complexo com sub-objetos), definir cada campo como type "object" com suas próprias properties CAMPOS DE TRANSFORMAÇÃO (opcionais em cada endpoint): - default_body: { "from": "noreply@x.com" } — valores fixos mergeados no body (LLM pode sobrescrever, exceto locked_fields) - locked_fields: ["from"] — campos do default_body que o LLM NÃO pode sobrescrever (enforcement server-side) - field_mapping: { "body": "html" } — renomeia campos do body antes de enviar (body vira html) - array_fields: ["to", "cc"] — garante que esses campos sejam sempre arrays - body_format: "array" — wrappa o body inteiro em array [body] (default: "object") - defaults_from_context: { "userId": "idUsuario" } — auto-inject de valores do webhookContext quando LLM não fornece DB_CONFIG: { connection_id: uuid (de private_context_connections), tool_definition: { name, description, input_schema }, query_template: string (SQL com $1, $2...), parameter_mapping: string[] (campos do input na ordem dos $N), result_mapping?: { format: "raw"|"table"|"summary", max_rows?: number } } WORKFLOW_CONFIG: { steps: [{ id, name, action }], transitions: [{ from, to, condition }], conditions?: array } SKILL_CONFIG: { skill: { name: string (minLength 3), instructions: string (minLength 50, markdown com regras comportamentais), priority?: integer (0-1000, default 0, maior = aparece primeiro no prompt) } } Contrato formal de cada tipo: resource zihin://schemas/{schema_type}. CSPs não são schemas — campos multi-agent (max_agent_depth, allowed_invoke_agents, child_timeout_ms) vivem em create_csp com policy_type=behavior.
schema_typeYesTipo do schema

TDQS

A4.6/5.0
Behavior4/5

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

The annotations only provide boolean hints (readOnly=false, idempotent=false, destructive=false). The description adds substantial behavioral context beyond those flags: it warns about the API_CONFIG endpoint.name/tool_definition.name equality requirement, describes transformation-field semantics, notes that mcp_tool_config/mcp_resource_config are usually Builder-generated, and recommends a validation workflow to avoid contract errors. It doesn't detail duplicate-name behavior or failure modes, but the annotations already signal non-idempotency, so this is acceptable.

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 long but well-structured and front-loaded: purpose, then type breakdown, then exclusions, then workflow. It earns its length given the schema-type complexity. Minor redundancy exists because much of the schema_data description is repeated from the input schema, but the use of bold headers and bullets keeps it scannable.

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

Completeness5/5

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

For a create tool with seven schema types, complex nested parameters, and meaningful variant behavior, the description is very complete. It covers exclusions (triggers/CSPs), formal contracts, validation workflow, and even notes that MCP configurations are typically Builder-generated. No output schema exists, so the description and schema together give an agent what it needs to call the tool 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?

Schema description coverage is high and the schema itself is very detailed, so the baseline is 3. The description still adds value by summarizing the type-specific schema_data shapes and by covering mcp_tool_config and mcp_resource_config, which the schema_data description in the schema does not detail. It also adds the pointer to the formal contract resource (zihin://schemas/{schema_type}) and the dry-run validation step, which helps an agent construct schema_data correctly.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Cria um novo schema para um agente.' It also distinguishes itself from sibling tools by explicitly stating that triggers and CSPs are not schemas and should be created via create_trigger and create_csp, which makes the tool's boundary clear.

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

Usage Guidelines5/5

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

It gives explicit when-to-use guidance by enumerating the supported schema types and by saying 'Triggers e CSPs NÃO são schemas: use create_trigger e create_csp.' It also provides a recommended workflow: read the formal schema resource, build schema_data, validate with validate_schema_data (dry-run), then create. This is actionable and prevents contract errors.

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

create_secretAInspect

Cria um novo secret criptografado para o tenant. O valor é criptografado com AES-256-GCM e armazenado no vault. IMPORTANTE: O valor plaintext não será retornado após criação — salve-o antes.

Após criar, use o "name" como:

  • secret_ref em api_config auth (ex: "ZIGMA_API_KEY")

  • vault_secret_id em connection_config (ex: "DB_PASSWORD_PROD")

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNome do secret (ex: "ZIGMA_API_KEY", "DB_PASSWORD_PROD"). Deve ser único por tenant.
valueYesValor plaintext a ser criptografado (ex: a API key, senha do banco)
categoryNoCategoria do secretapi
usage_hintNoDica de uso para desenvolvedores. Valores recomendados: "bearer_token", "api_key", "password", "connection_string", "oauth_client". Puramente informativo — não afeta comportamento.
descriptionNoDescrição do uso do secret

TDQS

A4.7/5.0
Behavior5/5

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

Discloses important behavior beyond annotations: encryption via AES-256-GCM, storage in the vault, and especially that the plaintext value will not be returned after creation and must be saved beforehand. This is critical operational context that readOnlyHint, idempotentHint, and related annotations do not provide.

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?

Three short, focused blocks: the action, a critical warning, and downstream usage guidance. Every sentence earns its place, and the most decision-relevant facts are front-loaded.

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

Completeness5/5

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

For a creation tool with full schema coverage and no output schema, the description supplies sufficient context: what is created, how it is protected, what the agent must retain, and how to use the result. The warning about plaintext not being returned is especially valuable given the absence of an output schema.

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 already provides 100% parameter coverage with descriptions and examples. The description adds genuine value by explaining that the 'name' parameter becomes secret_ref in api_config auth or vault_secret_id in connection_config, which is not stated in the schema. It does not add detail for category or usage_hint, but their schema descriptions are already sufficient.

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?

States 'Cria um novo secret criptografado para o tenant' — a specific verb (create), resource (secret), and scope (tenant). The 'novo' distinguishes it from update/delete/list secret siblings, making the creation operation unambiguous.

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?

'Cria um novo secret' frames when to use the tool: when a new secret is needed. The downstream note 'use o name como secret_ref em api_config auth...' reinforces the practical use case. It does not explicitly name alternatives like update_secret or delete_secret, but the create/update/delete sibling cluster makes the distinction clear.

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

create_triggerAInspect

Cria um novo trigger para um agente. Contrato autoritativo: resource zihin://schemas/trigger_config (o mesmo JSON Schema que o servidor valida; envie apenas agent_id/name/trigger_type/trigger_config — tenant_id e ids são injetados pelo servidor). Use SOMENTE os enums abaixo — não invente valores como "public" para sender_access.mode. A configuração (trigger_config) depende do tipo:

  • webhook: { query_extraction: { field: "chatInput" }, response_adapter: { format: "ebarn"|"slack"|"teams"|"twiml"|"raw" }, context_mapping: {}, session_strategy: { mode: "derive"|"ephemeral", fields?: [] }, sender_access?: { mode: "any"|"members"|"whitelist", identity_field?, match_column?, whitelist? }, execution?: { mode: "sync"|"async", ack_response?: { body, content_type }, callback?: { url, method, content_type, auth: { type, secret_ref }, body_template, response_transform }, message_buffer?: { enabled, window_ms, max_messages, concat_separator }, split_config?: { enabled, max_chunk_size, max_chunks, chunk_strategy: "paragraph"|"sentence"|"length", numbering, inter_chunk_delay_ms } } }

  • db_event: { table, events: ["INSERT","UPDATE"], conditions: {} }

  • email: { allowed_senders: [], subject_filter: "" }

  • schedule: { cron: "0 9 * * *", timezone: "America/Sao_Paulo", query_template: "mensagem fixa", enabled_days?: ["monday","friday"], session_strategy?: { mode: "new"|"persistent" }, output?: { channel: "webhook"|"silent"|"callback", webhook_url?: "https://..." (webhook), callback?: { url, method?, content_type?, auth?: { type, secret_ref }, body_template?, response_transform?: { strip_markdown, max_length } } (callback) } }

response_adapter.format determina defaults automáticos de transform: twiml → strip_markdown=true, max_length=4096. Override via execution.callback.response_transform. sender_access controla quem pode acionar o webhook: "any" (default), "members" (tenant_users), "whitelist" (lista explícita). message_buffer agrupa mensagens rápidas (popcorn) em uma janela de debounce via Redis antes de executar o agente. split_config divide respostas longas em múltiplos chunks para canais com limite de tamanho (WhatsApp, SMS).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNome do trigger
agent_idYesUUID do agente
api_key_idNoUUID da API Key para execução autenticada
descriptionNoDescrição do trigger
trigger_typeYesTipo de trigger
trigger_configNoConfiguração do trigger. Estrutura por tipo: WEBHOOK: { query_extraction: { mode: "field"|"full_body", field?: string (default: "message") }, response_adapter: { format: "ebarn"|"slack"|"teams"|"twiml"|"raw", content_type?: string, max_length?: number }, context_mapping?: { campo: "$.path.no.body" }, session_strategy?: { mode: "derive"|"ephemeral", fields?: string[] }, sender_access?: { mode: "any"|"members"|"whitelist", identity_field?: string, match_column?: string, whitelist?: string[] }, execution?: { mode: "sync"|"async", ack_response?: { body: string|object, content_type: string }, callback?: { url: string, method: "POST"|"PUT"|"PATCH", content_type: string, auth: { type: "basic"|"bearer"|"api_key"|"none", secret_ref: string }, headers?: object, body_template: object|string, response_transform?: { strip_markdown: boolean, max_length: number } }, message_buffer?: { enabled: boolean, window_ms?: number (100-60000, default 5000), max_messages?: number (1-100, default 10), concat_separator?: string (default "\n") }, split_config?: { enabled: boolean, max_chunk_size?: number (100-50000, default 1500), max_chunks?: number (1-50, default 10), chunk_strategy?: "paragraph"|"sentence"|"length" (default "paragraph"), numbering?: boolean (default true), inter_chunk_delay_ms?: number (0-10000, default 500) } } } SCHEDULE: { cron: string (ex: "0 9 * * *"), timezone?: string (default: "America/Sao_Paulo"), query_template: string (tarefa para o agente), enabled_days?: string[] (ex: ["monday","friday"]), session_strategy?: { mode: "new"|"persistent" }, output?: { channel: "webhook"|"silent"|"callback" (default: "silent"), webhook_url?: string (se channel=webhook), callback?: { url, method?, content_type?, auth?: { type, secret_ref }, body_template?, response_transform?: { strip_markdown?, max_length? } } (se channel=callback) }, memory_config?: { enabled: boolean, user_key_field?: string (campo do body_template, ex: "To"), strip_prefix?: string (ex: "whatsapp:"), ttl_hours?: number (default: 48), user_key?: string (fixo, alternativa a user_key_field) } } DB_EVENT: { table: string, events: ["INSERT"|"UPDATE"|"DELETE"], conditions?: object } EMAIL: { allowed_senders: string[], subject_filter?: string }

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only indicate the tool is not read-only, not idempotent, and not destructive; the description adds substantial context: server-side ID injection, strict enum constraints, type-dependent configuration, automatic transform defaults (twiml → strip_markdown/max_length), sender_access semantics, message_buffer debounce, and split_config behavior. No contradiction with annotations.

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 front-loaded with purpose and contract, but it becomes very long and largely reproduces the schema's trigger_config structure with examples. While the added semantics justify some length, several config snippets are redundant with the schema and could be trimmed.

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?

Covers purpose, authoritative contract, per-type config structures, enums, defaults, and key behavioral nuances—enough to make correct create_trigger calls. However, it explicitly says to send only four fields while the schema also exposes optional api_key_id and description, and it does not mention response/error behavior, leaving minor gaps.

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

Parameters5/5

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

Even with 100% schema coverage, the description adds meaning beyond the schema: it tells which parameters are actually expected, enumerates allowed enum values, and explains the effects and defaults of response_adapter.format, sender_access, message_buffer, and split_config. The authoritative contract reference resolves most ambiguity from the inline examples.

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 action ('Cria um novo trigger para um agente') with a clear resource (trigger for agent) and points to the authoritative contract. It is easily distinguished from sibling tools such as update_trigger, delete_trigger, and list_triggers.

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

Usage Guidelines4/5

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

Provides strong usage guidance: send only agent_id/name/trigger_type/trigger_config because the server injects tenant_id and ids, and warns against inventing enum values. It does not explicitly name alternatives or state when to prefer this tool over update_trigger, so it stops short of a 5.

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

delete_agentA
Destructive
Inspect

Arquiva um agente (soft delete). O agente pode ser restaurado depois.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesUUID do agente a arquivar

TDQS

A4/5.0
Behavior4/5

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

Annotations already signal mutation and destructiveness, and the description adds the valuable nuance that the delete is soft and reversible ('soft delete', 'pode ser restaurado depois'). It does not detail effects on related resources or whether deletion is idempotent, but the core behavior is disclosed beyond the annotated flags.

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 carry the operation, its soft-delete nature, and reversibility with no filler. Every sentence adds information, and the key action is front-loaded.

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

Completeness4/5

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

For a one-parameter, schema-covered operation with no output schema, the description covers the essential safety-relevant detail: it is reversible. It could mention what happens to the archived agent's active sessions or visibility, but nothing critical is missing for a simple soft-delete call.

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 sole parameter is fully documented in the schema ('UUID do agente a arquivar'), so the description does not need to provide parameter meaning. The description adds no extra semantic detail about the parameter beyond the schema, matching the baseline for high schema coverage.

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 ('Arquiva') and resource ('um agente'), and immediately clarifies that this is a soft delete, distinguishing it from a destructive removal. The added note that the agent can be restored later sharpens the meaning of the operation.

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

Usage Guidelines3/5

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

The restorability note implies this tool is the choice when an agent must be removed but kept recoverable, which is a usable usage cue. However, the description does not name alternative tools or state when not to use it, leaving the when-to-use guidance mostly implicit.

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

delete_agent_memoryA
Destructive
Inspect

Remove (soft delete) uma memória específica de um agente. Requer agent_id, memory_key e user_key.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesUUID do agente
user_keyYesIdentificador do usuário final dono da memória
memory_keyYesChave da memória a ser removida

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the description's 'soft delete' qualifier adds valuable nuance beyond the structured metadata. It clarifies that the operation is not a hard permanent removal, though it does not explain recoverability or downstream visibility.

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 short and front-loaded with the core action and soft-delete behavior. The 'Requer...' sentence is slightly redundant with the required parameter list, but it serves as an at-a-glance checklist without adding unnecessary length.

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

Completeness4/5

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

For a simple three-parameter destructive operation, the description and annotations give enough context to invoke it correctly. Return-value expectations are not specified, but for a delete-style tool without an output schema this is a minor gap; clarifying soft-delete consequences would make it more complete.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter is already documented. The description only repeats the parameter names without adding format, selection, or usage details beyond what the schema provides, making baseline 3 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 names a specific action ('Remove (soft delete)') and a specific resource ('uma memória específica de um agente'), which clearly distinguishes it from deleting an entire agent or listing memories. It does not explicitly mention sibling tools, but the object and scope are clear enough.

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 list_agent_memory or delete_agent. The description only restates the required parameters without providing selection criteria or exclusions.

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

delete_api_keyA
Destructive
Inspect

Revoga uma API Key permanentemente. Triggers e webhooks que usam esta chave deixarão de funcionar.

ParametersJSON Schema
NameRequiredDescriptionDefault
key_idYesUUID da API Key a revogar

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide destructiveHint=true, readOnlyHint=false, and idempotentHint=false. The description adds value beyond these by disclosing that revocation is permanent and that dependent triggers and webhooks will stop functioning. This is useful behavioral context not present in the annotations.

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, front-loaded sentences. The first states the core action and permanence; the second adds the most important side effect. No filler or redundancy.

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

Completeness4/5

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

For a simple single-parameter destructive tool with annotations already covering the safety profile, the description is largely complete: it states permanence, the side effect on triggers/webhooks, and the schema covers the parameter. It lacks an explicit pointer to non-destructive alternatives or reversibility, but these are minor gaps given the tool's simplicity.

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 sole parameter key_id has a full description in the schema ('UUID da API Key a revogar'). The tool description adds no additional parameter-level meaning, so the baseline 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 a specific verb ('Revoga' = revokes), a clear resource ('uma API Key'), and adds the modifier 'permanentemente' to distinguish permanent revocation from other operations. This clearly differentiates it from sibling tools like update_api_key, which modify rather than permanently revoke.

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 description makes the usage context clear: use this when you want to permanently revoke an API key, and it warns about the consequence that triggers and webhooks using the key will stop working. It does not explicitly name an alternative like update_api_key for non-destructive changes, so it stops short of a full when/when-not comparison.

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

delete_connectionA
Destructive
Inspect

Desativa uma conexão (soft delete). A conexão fica inativa mas pode ser restaurada.

ParametersJSON Schema
NameRequiredDescriptionDefault
connection_idYesUUID da conexão a desativar

TDQS

A4.1/5.0
Behavior4/5

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

The annotations already mark the operation as destructive, non-read-only, and non-idempotent. The description adds meaningful nuance by explaining this is a soft delete that leaves the connection inactive but restorable, which goes beyond what the annotations alone convey.

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. The key action is front-loaded, and the important soft-delete/restore behavior is stated efficiently.

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

Completeness5/5

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

For a single-parameter mutation with annotations covering its destructive nature, the description is complete enough. It tells the agent what the operation does and what the consequence is, including reversibility, without needing an output schema.

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 only parameter, connection_id, is already fully documented in the input schema. The description adds no extra parameter-level detail, so the baseline score 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 ('Desativa') and resource ('conexão'), and clearly qualifies the operation as a soft delete. This distinguishes it from other delete-like tools targeting different resources such as delete_api_key or delete_mcp_server.

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 tool is used to deactivate a connection and that the action is reversible, but it does not explicitly state when to use it over alternatives, nor does it mention exclusions or prerequisites. The usage context is largely inferred from the verb and resource.

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

delete_cspA
Destructive
Inspect

Remove uma política de segurança permanentemente.

ParametersJSON Schema
NameRequiredDescriptionDefault
csp_idYesUUID da CSP a remover

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is known. The description adds the 'permanentemente' qualifier, signaling irreversibility, but does not mention cascading effects, required permissions, or failure behavior if the CSP is in use.

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 one short, direct sentence with no filler or repeated schema information. The key message—permanent removal of a security policy—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 one-parameter delete operation with destructiveHint and idempotentHint annotations, the description sufficiently states the action and permanence for invocation. It omits post-deletion effects and return value, but no output schema exists and the operation is simple.

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%; the single required csp_id parameter has a UUID format and a description ('UUID da CSP a remover'). The tool description adds no parameter-level detail, but the schema fully documents the parameter, 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 uses a specific verb ('Remove') and resource ('uma política de segurança') and adds 'permanentemente', making it clear this is a permanent deletion tool. This distinguishes it from sibling tools like create_csp, update_csp, toggle_csp, and list_csps even without naming them.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not contrast permanent deletion with toggle_csp for temporary disabling or update_csp for modification, leaving the agent to infer usage context.

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

delete_mcp_serverA
Destructive
Inspect

Remove um MCP server de um agente. As tools do server deixam de estar disponíveis.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcp_server_idYesUUID do MCP server a remover

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true readOnlyHint=false. The description adds a concrete behavioral consequence—'As tools do server deixam de estar disponíveis'—which is useful for an agent to understand the operational impact beyond the generic destructive flag. It does not contradict the annotations.

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. The main action is stated first, and the consequence is given immediately after, making it easy for an agent to parse quickly.

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?

This is a straightforward single-parameter deletion tool. The description covers the core action and the immediate outcome, while the schema and destructiveHint cover the parameter and risk. Missing details such as irreversibility or authorization requirements are not explicitly stated, but given the low complexity and annotation coverage, the description is sufficiently complete.

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

Parameters3/5

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

Schema description coverage is 100%, and the parameter description ('UUID do MCP server a remover') already fully documents the only parameter. The tool description adds no additional meaning beyond what the schema already provides, so 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 states a specific verb ('Remove') and a specific resource ('um MCP server de um agente'), clearly distinguishing this as the deletion operation among siblings like create_mcp_server, update_mcp_server, and test_mcp_server. It also adds the meaningful consequence that the server's tools become unavailable.

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: use this when you want to remove an MCP server from an agent, with the effect that its tools stop being available. However, it does not explicitly contrast it with alternatives such as update_mcp_server or invalidate_mcp_cache, nor does it state when not to use it. The guidance is implied rather than explicit.

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

delete_schemaA
Destructive
Inspect

Desativa um schema (soft delete). O schema fica inativo mas pode ser reativado.

ParametersJSON Schema
NameRequiredDescriptionDefault
schema_idYesUUID do schema a desativar

TDQS

A3.6/5.0
Behavior4/5

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

It discloses that this is a soft delete, that the schema becomes inactive, and that it can be reactivated—useful context beyond the destructiveHint annotation. It does not mention side effects on dependent resources or failure behavior, but annotations already cover the destructive nature, so the added reactivation detail is valuable.

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 no filler. The primary action is front-loaded, and the soft-delete qualification immediately follows, making intent clear without wasted words.

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 single-parameter tool with a high-coverage schema and relevant annotations, this description is largely complete. It covers the key distinction from hard delete and the reactivation possibility, though it leaves minor gaps around what 'inactive' means operationally and how reactivation would be performed.

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 only parameter, schema_id, is fully documented in the schema as 'UUID do schema a desativar' with 100% coverage. The description adds no further semantic detail about the parameter, so the schema carries the load and 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 clearly states the tool deactivates a schema via soft delete, which prevents misinterpretation of the 'delete' name as a hard delete. It does not explicitly differentiate from the sibling 'toggle_schema', which may also affect schema active state, leaving some ambiguity about which operation is intended.

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 explains the effect but provides no guidance on when to use delete_schema versus alternatives such as toggle_schema or update_schema. There is no statement about when to prefer this tool or what scenarios call for the soft-delete behavior.

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

delete_secretA
Destructive
Inspect

Remove um secret permanentemente. ATENÇÃO: api_config e db_config que referenciam este secret deixarão de funcionar.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNome do secret a remover

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description adds crucial behavioral context: deletion is permanent, and dependent api_config and db_config entries will stop working. This directly discloses real-world consequences of 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?

The description is two concise sentences with no wasted words. The core action is front-loaded, and the critical warning is placed immediately after, making the most important information easy to parse.

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

Completeness5/5

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

For a single-parameter destructive tool with no output schema, the description is complete: it states the action, the permanence, and the impact on dependent configurations. Nothing essential is missing for an agent to decide whether and how to call 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?

The schema already fully describes the sole 'name' parameter with 100% coverage. The description adds no additional parameter-level meaning beyond referring to the secret to be removed, so the baseline score 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 a specific verb and resource ('Remove um secret permanentemente'), making the tool's purpose immediately clear. It also distinguishes itself from sibling tools like create_secret, update_secret, and list_secrets by emphasizing permanent deletion.

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 context is implied: use this when you want to permanently delete a secret. However, the description does not explicitly state when not to use it or mention alternatives such as update_secret for modifying rather than removing.

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

delete_triggerA
Destructive
Inspect

Remove um trigger permanentemente. Esta ação não pode ser desfeita.

ParametersJSON Schema
NameRequiredDescriptionDefault
trigger_idYesUUID do trigger a remover

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already mark the tool as destructive (destructiveHint: true). The description adds valuable context beyond that by explicitly stating the action cannot be undone, reinforcing the irreversibility for the agent. It does not address side effects or permissions, but for a single-parameter destructive action this is adequate.

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 no filler. The key warning about permanence is front-loaded and immediately reinforces the destructive nature of the operation.

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

Completeness4/5

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

For a simple delete operation with one documented parameter and destructive annotations, the description is largely complete. It could mention the response/return behavior or cascading effects, but the provided information is sufficient for an agent to invoke the tool safely.

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 has 100% description coverage for the only parameter (trigger_id with a clear UUID description), so the description does not need to add parameter details. The tool description itself does not explain the parameter, but the schema already fully carries that responsibility.

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 ('Remove um trigger') and emphasizes permanence ('permanentemente', 'não pode ser desfeita'), making it distinct from update/toggle operations. It does not explicitly name sibling tools, but the resource and permanent-deletion semantics are 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 given on when to use this tool versus alternatives such as toggle_trigger for temporary deactivation. The irreversible nature is noted, but there is no explicit when-to-use or when-not-to-use framing.

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

get_agentB
Read-onlyIdempotent
Inspect

Retorna detalhes completos de um agente, incluindo schemas, triggers e configurações.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesUUID do agente

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds return-content context (schemas, triggers, configurations), but does not disclose operational behaviors such as error handling, permission requirements, or response structure beyond that.

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 filler. It immediately conveys the action and the key content categories, and every word contributes to understanding what the tool returns.

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

Completeness4/5

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

For a simple one-parameter read-only fetch, the description is mostly complete: it names the resource, the parameter is fully documented in the schema, and annotations cover safety. The main gap is the unresolved ambiguity with 'get_agent_full', which prevents full confidence in tool selection.

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%, and the single parameter 'agent_id' is already described as 'UUID do agente' in the input schema. The tool description adds no additional meaning, format details, or usage nuance for the parameter, so the baseline score 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 states a clear verb ('Retorna') and resource ('detalhes completos de um agente'), and specifies what is included: schemas, triggers, and configurations. However, it does not differentiate this endpoint from the sibling 'get_agent_full', which appears to have an overlapping purpose.

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 'list_agents' or 'get_agent_full'. The description implies it is for fetching details of a single agent, but it does not state exclusions, preconditions, or when a sibling would be more appropriate.

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

get_agent_budgetA
Read-onlyIdempotent
Inspect

Retorna o orçamento (teto de gasto em USD) e o saldo do ciclo atual de um agente. O budget conta TODAS as chamadas LLM do agente, incluindo BYOK. unlimited=true significa sem teto configurado.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesUUID do agente

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds meaningful behavioral context: it counts ALL LLM calls including BYOK, and defines what unlimited=true means. These details go beyond annotations and clarify the semantics 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?

Two sentences with zero wasted words. The main return values are front-loaded, and the technical detail about BYOK and unlimited is placed after the core message. Every sentence earns its place.

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 getter with one parameter and no output schema, the description adequately states what is returned (budget and balance) and defines key terms (unlimited). It doesn't detail the exact JSON response structure, but with no output schema provided, this level of detail is acceptable. The behavioral context about BYOK rounding it out.

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% (agent_id is described as 'UUID do agente'). The description adds no new parameter semantics beyond what the schema provides. Baseline 3 applies because the schema fully documents the only 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 clearly states the specific verb 'Retorna' (returns) and the resource: the budget (spending cap in USD) and balance of the current cycle for a single agent. It indicates a read operation and implies it's for one agent via 'de um agente', but does not explicitly contrast with list_agent_budgets, which likely handles multiple agents.

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

Usage Guidelines3/5

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

The description implies usage for a single agent's budget but provides no explicit guidance on when to use this tool versus list_agent_budgets or other alternatives. It doesn't mention exclusions or scenarios. The context is clear but not directive, so a 3 is appropriate.

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

get_agent_fullA
Read-onlyIdempotent
Inspect

Retorna visão completa do agente: dados, schemas ativos, triggers, CSPs vinculadas e configuração de publicação.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesUUID do agente

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful context about what the returned data includes, but it does not disclose response-size limits, authorization expectations, or behavior when some sections are empty or unavailable.

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 compact sentence that immediately states the tool's purpose and enumerates the included components. There is no filler, repetition, or unnecessary context.

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 read-only aggregate endpoint with one required parameter, the description covers the main expected return categories: data, schemas, triggers, CSPs, and publishing configuration. It stops short of full completeness because there is no output schema and no hint of response structure, such as nesting or whether some sections may be omitted.

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 has 100% description coverage and fully documents agent_id as 'UUID do agente'. The description does not add anything beyond the schema for the single parameter, which is acceptable given the complete schema coverage.

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 ('Retorna') and resource ('visão completa do agente'), and enumerates the exact contents: data, active schemas, triggers, linked CSPs, and publishing configuration. This differentiates it from more specific siblings like get_agent or list_triggers by establishing it as the aggregate 'full' view.

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 'visão completa' implies this tool is appropriate when the entire agent state is needed, which gives some contextual guidance. However, it does not explicitly mention when not to use it or name alternatives such as get_agent for basic agent data, so the differentiation from sibling tools is mostly left to inference.

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

get_agent_lineageA
Read-onlyIdempotent
Inspect

Retorna pares orquestrador→subagente que INVOCARAM de fato (via invoke_agent), com contagem de invocações e último uso. Complementa allowed_invoke_agents (que é "pode invocar").

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds meaningful behavioral detail: it filters to real invocations only, includes counts and last-use timestamps, and clarifies the semantic relationship to allowed_invoke_agents.

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 concise sentences fully convey the tool's purpose and differentiating context. The core action and result are front-loaded, and every sentence earns its place without unnecessary elaboration.

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 read-only tool, the description provides sufficient operational context: what is returned, the invocation filter, the counts, and the last-use timestamp. There is no output schema, but the described shape is simple enough. It could be slightly richer by mentioning ordering or scope, but the essentials are present.

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 and the schema is empty, so the baseline is 4. The description adds no parameter details because none are needed; nothing about parameters is left unexplained.

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

Purpose5/5

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

The description states a specific verb and resource ('Retorna pares orquestrador→subagente'), defining that it returns actual invocations via invoke_agent, with invocation count and last use. It explicitly differentiates itself from allowed_invoke_agents, so an agent can distinguish its purpose clearly.

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 description clearly indicates this tool is for actual invocations, complementing allowed_invoke_agents (which expresses potential permission). This gives context on when to use it versus the conceptual alternative, though it does not explicitly name sibling tools or provide 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.

get_agent_metricsA
Read-onlyIdempotent
Inspect

Retorna métricas agregadas de um agente: chamadas LLM (calls, errors, success_rate, tokens, custo, latência p50/p95 — agregação em SQL, sem cap de linhas), uso de tools (amostra das últimas 2000 chamadas, com flag sample_truncated) e sessões. Útil para monitorar performance e custos de um agente em produção. Para saúde de infra do tenant (erros sem agente), use get_tenant_health.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoPeríodo de análise: 1d (último dia), 7d (última semana), 30d (último mês)7d
agent_idYesUUID do agente

TDQS

A4.4/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral details beyond those: SQL aggregation without row cap, tool-call metrics computed from a sample of the last 2000 calls with a sample_truncated flag, and specific latency percentiles. This goes beyond what annotations alone provide.

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 sentences deliver dense, useful information with no filler. The first sentence front-loads what the tool returns, and the second provides use case and routing to an alternative. Every part earns its place.

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?

With no output schema, the description carries the responsibility of explaining the return content, and it names the key metrics (calls, errors, success_rate, tokens, custo, latency p50/p95, sample_truncated, sessions). Minor details about the exact shape of the sessions portion are omitted, but the tool is callable and its results are sufficiently scoped.

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 both parameters already have clear descriptions: agent_id is a UUID and period has an enum with date ranges and defaults. The description does not add new parameter-level semantics, 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 uses a specific verb ('Retorna') and resource ('métricas agregadas de um agente'), then lists the concrete metric families: LLM calls, tool usage, and sessions. It also explicitly distinguishes itself from get_tenant_health, so an agent can tell this tool apart from a closely related sibling.

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

Usage Guidelines5/5

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

It states the intended use case: 'monitorar performance e custos de um agente em produção.' It also gives an explicit exclusion with an alternative: for tenant infra health, use get_tenant_health. This gives clear when-to-use versus when-not-to-use guidance.

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

get_api_keyA
Read-onlyIdempotent
Inspect

Retorna detalhes completos de uma API Key específica: nome, status, role, rate limits, estatísticas de uso e tenant associado.

ParametersJSON Schema
NameRequiredDescriptionDefault
key_idYesUUID da API Key

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that it returns full details including usage statistics, but does not disclose behavioral aspects like authentication requirements, error behavior for unknown key_id, or whether the raw key secret is returned.

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 and enumerates the return fields without any filler. Every part of the sentence contributes useful information.

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

Completeness5/5

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

For a one-parameter, read-only operation, the description compensates for the missing output schema by listing the returned fields (name, status, role, rate limits, usage stats, tenant). The annotations cover the side-effect profile, so an agent has enough to invoke this tool 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?

The input schema already documents key_id as 'UUID da API Key' with 100% coverage. The description adds no additional meaning about the parameter, 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 uses a specific verb ('Retorna') and resource ('uma API Key específica'), and lists the exact fields returned (nome, status, role, rate limits, estatísticas de uso, tenant associado). This clearly distinguishes it from list_api_keys by emphasizing specificity.

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 word 'específica' implies this tool is for fetching one key by ID, contrasting with listing, creating, updating, or deleting API keys among siblings. However, it does not explicitly state alternatives or when-not-to-use, so it is clear but lacks explicit exclusions.

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

get_approval_policyA
Read-onlyIdempotent
Inspect

Retorna uma política de aprovação por ID (nome, stages com aprovadores, is_active).

ParametersJSON Schema
NameRequiredDescriptionDefault
policy_idYesUUID da política

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the specific return fields, which is useful behavioral context, but it does not disclose error handling, not-found behavior, or whether an inactive policy is still returned. For a simple read operation, this is adequate but not exceptional.

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 leads with the verb and resource, then immediately states the scope and return fields. Every word contributes information; there is no filler or repetition of schema details.

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 single-parameter read tool with no output schema, the description covers the key elements: what it returns (fields) and how it identifies the resource (by ID). It omits edge cases like non-existent policies or inactive records, but these are minor for such a simple operation, and annotations already confirm the read-only nature.

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 single parameter policy_id is well documented as 'UUID da política'. The description's 'por ID' aligns with the parameter meaning but adds no new semantics beyond what the schema already provides. 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 names a specific verb ('Retorna' = returns), a specific resource (approval policy), and a distinct scope (by ID). It also lists the returned fields (name, stages with approvers, is_active), making it easy to distinguish from list_approval_policies, create_approval_policy, and update_approval_policy even without naming them.

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 'por ID' implies the tool should be used when a specific policy_id is known, contrasting implicitly with list_approval_policies. However, the description does not explicitly state when to use this tool vs alternatives, nor does it provide any exclusions or conditions. The usage guidance is implied rather than stated.

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

get_connectionA
Read-onlyIdempotent
Inspect

Retorna detalhes de uma conexão, incluindo configuração (com campos sensíveis mascarados), schema_cache e semantic_cache.

ParametersJSON Schema
NameRequiredDescriptionDefault
connection_idYesUUID da conexão

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds useful behavior beyond annotations by disclosing that sensitive fields are masked and that both schema_cache and semantic_cache are included in the response.

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 filler. Every clause adds meaningful information: the action, the returned object, sensitive-field masking, and the included caches.

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?

With one required parameter, clear read-only annotations, and no output schema, the description provides enough for an agent to call the tool correctly and understand the response contents. It lacks explicit error-handling details and alternative routing, but neither is essential for this simple retrieval operation.

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

Parameters3/5

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

The only parameter, connection_id, already has a complete schema description ('UUID da conexão') with 100% coverage. The tool description adds no additional parameter-level 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.

Purpose4/5

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

The description states a specific verb and resource: 'Retorna detalhes de uma conexão', and enumerates what is included (configuration, schema_cache, semantic_cache). It is clearly a single-connection read operation, though it does not explicitly distinguish itself from siblings like get_connection_schema or get_connection_semantic.

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?

No explicit when-to-use or when-not-to-use guidance is provided. The singular resource and read-only annotations imply use when needing full connection details, with list_connections as the obvious listing alternative, but this is left to inference.

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

get_connection_schemaA
Read-onlyIdempotent
Inspect

Retorna o schema em cache de uma conexão (tabelas, colunas, tipos). Use antes de criar db_config para saber quais tabelas e colunas estão disponíveis. Se o cache estiver vazio, use refresh_connection_schema primeiro.

ParametersJSON Schema
NameRequiredDescriptionDefault
connection_idYesUUID da conexão

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds meaningful context by revealing that the schema is cached, implying possible staleness or emptiness, and by stating the prerequisite to refresh when needed. This goes beyond the structured annotations without contradicting them.

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

Conciseness5/5

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

The description is three sentences with no filler. It leads with the core functionality, then gives the intended use case, then provides the fallback instruction. Every sentence adds value.

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

Completeness5/5

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

For a simple, read-only, single-parameter tool, the description fully covers what the tool returns, when to call it, and what to do when the cache is empty. Given the annotations and complete schema, nothing essential is missing for correct invocation.

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

Parameters3/5

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

The input schema fully documents connection_id with a UUID format and a description, so schema coverage is 100%. The description does not add parameter-level detail, but it does reinforce the connection context. Baseline of 3 is appropriate since the schema does the heavy lifting.

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 ('Retorna') and identifies the exact resource ('schema em cache de uma conexão') with its contents ('tabelas, colunas, tipos'). It clearly differentiates this cached-schema retrieval from related tools like refresh_connection_schema by explicitly referring to cache and cache-empty fallback.

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

Usage Guidelines5/5

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

The description explicitly says when to use the tool ('Use antes de criar db_config') and gives a concrete condition for using an alternative ('Se o cache estiver vazio, use refresh_connection_schema primeiro'). This provides clear decision guidance without leaving it to inference.

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

get_connection_semanticA
Read-onlyIdempotent
Inspect

Retorna o cache semântico de uma conexão (domínios, keywords, contexto de negócio). O cache semântico é usado pelo auto-routing para selecionar a fonte de dados correta. Formato: { domains: { nome_dominio: { keywords: [], entities: [], context: "" } } }

ParametersJSON Schema
NameRequiredDescriptionDefault
connection_idYesUUID da conexão

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish that the operation is read-only, idempotent, and non-destructive. The description adds useful behavioral context by explaining what the semantic cache represents and how the returned data is used, going beyond the annotations without contradicting them.

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

Conciseness5/5

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

The description is compact and well-structured: it leads with the action, explains the purpose, and provides the return format in a clear example. Every sentence contributes meaningful information without redundancy.

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

Completeness5/5

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

For a simple read-only retrieval tool with one well-documented parameter and no output schema, the description is complete. It specifies the return structure, the purpose of the cache, and the role in auto-routing, which is enough for an agent to call 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?

The single parameter connection_id is already fully documented in the schema with type, format, and description, yielding 100% schema coverage. The tool description adds no extra parameter-level meaning, which corresponds to the baseline of 3 for fully covered schemas.

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 ('Retorna'), a specific resource ('cache semântico de uma conexão'), and the exact contents (domains, keywords, business context). It also distinguishes itself from the sibling get_connection_schema by naming the semantic cache and its purpose in auto-routing.

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 description provides clear context for when this tool is relevant: it explains that the semantic cache is used by auto-routing to select the correct data source. However, it does not explicitly state when not to use it or point to alternatives, so it stops short of a 5.

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

get_consumer_profileA
Read-onlyIdempotent
Inspect

Retorna o perfil agregado de um consumidor (cross-session, cross-agent). Inclui display_name, canais usados, # de sessões, # de turns, lista de agentes que já interagiram, flags de produto e timestamps.

ParametersJSON Schema
NameRequiredDescriptionDefault
consumer_keyYesIdentificador do consumer (WaId/idUsuario/email normalizado). Mesmo valor de agent_sessions.consumer_key.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is established. The description adds meaningful behavioral context by specifying that results are aggregated across sessions and agents and by listing the included data fields, going beyond the annotations.

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 that front-loads the purpose and then lists the return fields compactly. Every part adds information, with no filler or repetition of the tool name or annotations.

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 low-complexity, single-parameter read-only tool, the description provides a solid summary of the return payload since there is no output schema. The only minor gap is the lack of detail on field types or formats, but the enumerated fields are sufficient for an agent to understand what the tool returns.

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 single parameter consumer_key is fully described in the schema, including normalization expectations and its equivalence to agent_sessions.consumer_key. With 100% schema description coverage, the tool description does not need to add parameter details, 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 uses a specific verb and resource ('Retorna o perfil agregado de um consumidor') and enumerates the returned fields, making the tool's function clear. It conveys a distinct scope ('cross-session, cross-agent') that separates it from session-specific siblings like get_session_history, but it does not explicitly name or contrast 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 Guidelines3/5

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

The description implies when to use the tool: when an aggregated, cross-session, cross-agent profile of a single consumer is needed. It provides no explicit guidance on when not to use it or which alternative to choose (e.g., list_consumers, list_consumer_sessions, get_session_history).

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

get_cspA
Read-onlyIdempotent
Inspect

Retorna detalhes completos de uma política de segurança, incluindo regras e exceções.

ParametersJSON Schema
NameRequiredDescriptionDefault
csp_idYesUUID da CSP

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already establish readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is known. The description adds that results include rules and exceptions, which is useful given the lack of an output schema, but it goes no further into behavior such as error cases or response shape.

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 that states the resource, depth of detail, and included content without any filler. Every part contributes useful information.

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

Completeness4/5

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

For a simple read-only lookup by ID, the description plus annotations are largely sufficient. The absence of an output schema is partially mitigated by mentioning rules and exceptions, though a fuller listing of returned fields would make it more complete.

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

Parameters3/5

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

The single parameter csp_id is fully documented in the input schema with type, format, and a description, so schema coverage is 100%. The tool description adds no additional meaning or usage detail about the parameter beyond what the schema already provides.

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 ('Retorna') with a clear resource ('detalhes completos de uma política de segurança') and specifies the content scope ('incluindo regras e exceções'). This clearly distinguishes it from list-style siblings like list_csps and get_effective_csps.

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 tool is used when a single CSP's full details are needed by providing a csp_id. However, it does not explicitly mention when to prefer it over alternatives such as list_csps or get_effective_csps, nor does it state any exclusions.

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

get_effective_cspsA
Read-onlyIdempotent
Inspect

Retorna as políticas efetivas para um contexto específico, considerando herança de escopos. A resolução segue: tenant → team → agent → user (mais específico sobrescreve).

ParametersJSON Schema
NameRequiredDescriptionDefault
team_idNoUUID do time para resolver CSPs no escopo team
user_idNoUUID do usuário para resolver CSPs no escopo user
agent_idNoUUID do agente para resolver CSPs no escopo agent

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds meaningful behavioral context by specifying the resolution order tenant → team → agent → user and the override rule, which is not present in the schema or annotations.

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 concise, front-loaded sentences carry all essential information. There is no repetition of schema details or annotation content.

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

Completeness4/5

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

The description plus schema gives an agent enough to select and invoke the tool: purpose, scopes, and resolution behavior are clear. It does not explain the output shape or whether parameters can be combined, but this is a read-only resolution tool and these gaps are minor.

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 is already described with its scope ('UUID do time para resolver CSPs no escopo team', etc.). The description adds the inheritance ordering but no additional per-parameter semantic detail.

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

Purpose5/5

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

The description uses a specific verb ('Retorna') and names the exact resource ('políticas efetivas') for a specific context. The mention of scope inheritance and hierarchy clearly differentiates it from sibling tools like get_csp or list_csps.

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

Usage Guidelines4/5

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

It clearly states when this tool is appropriate: when a caller needs resolved/effective policies after applying scope inheritance. It does not explicitly name alternatives or exclusions, but the context is unmistakable.

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

get_execution_diagnosticsA
Read-onlyIdempotent
Inspect

Retorna trace de diagnóstico completo de uma execução: timeline cronológica de LLM calls e tool calls, com tokens, latência, modelo usado e finish_reason. Use o execution_id (campo id do agent_executions) ou root_execution_id retornado pelo chat_with_agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
execution_idYesUUID da execução (id do agent_executions ou root_execution_id)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful detail about the output contents, though it does not disclose any additional behavioral caveats such as pagination, limits, or failure modes. This is adequate given the annotation coverage.

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

Conciseness5/5

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

The description is a single well-structured sentence that front-loads the tool's purpose and enumerates the returned diagnostic fields. There is no filler or duplication of schema information.

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 read-only, single-parameter tool with no output schema, the description adequately explains both the input provenance and the output structure. It is sufficiently complete for an agent to select and call the tool correctly, though it could briefly note the relationship to get_execution_trace.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already documents that execution_id is a UUID. The description adds valuable semantic context beyond the schema by clarifying that execution_id can be either the agent_executions id or the root_execution_id returned by chat_with_agent, which helps the agent select the correct 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 identifies the tool's function: returning a complete diagnostic trace of an execution, including a chronological timeline of LLM and tool calls with tokens, latency, model, and finish_reason. It is specific and action-oriented, but it does not explicitly distinguish this tool from the similarly named sibling get_execution_trace.

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 description provides clear context on what input to supply and where that input can be sourced: the execution_id field from agent_executions or the root_execution_id returned by chat_with_agent. It does not mention when to prefer this tool over alternatives like get_execution_trace, but the selection context is otherwise unambiguous.

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

get_execution_traceA
Read-onlyIdempotent
Inspect

Trace hierárquico de uma execução multi-agente a partir do root_execution_id: árvore supervisor→subagentes com fases, tool calls e custo por nó. Use get_session_agent_tree quando tiver o session_id em vez do execution_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
root_execution_idYesUUID da execução raiz (root_execution_id)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the description only needs to add behavioral context beyond that. It adds the output structure (supervisor→subagents tree with phases, tool calls, cost per node), which is valuable. Minor gaps like invalid-id behavior are not disclosed, but the read-only and idempotent nature is well covered by annotations.

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 sentences with no redundancy. The main purpose and output are front-loaded in the first sentence, and the routing guidance in the second adds direct value without padding.

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

Completeness5/5

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

For a single-parameter read-only tool, the description explains what it does, what input it expects, what it returns, and which sibling to use in the alternative case. The annotations cover safety and idempotency. Nothing essential is missing for the 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 description coverage is 100%, meaning the schema already fully documents root_execution_id as 'UUID da execução raiz'. The description reinforces its role in building the trace but adds no new parameter-specific details. Baseline 3 is appropriate since the schema carries the semantic weight.

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 ('Trace') and resource ('execução multi-agente'), and specifies exactly what it produces: a hierarchical supervisor→subagents tree with phases, tool calls, and cost per node. It also distinguishes itself from the sibling get_session_agent_tree by explicitly stating when that tool should be used instead.

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

Usage Guidelines5/5

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

The description gives clear when-to-use guidance (when you have root_execution_id) and explicit when-not-to-use guidance ('Use get_session_agent_tree quando tiver o session_id em vez do execution_id'). This routes the agent to the correct sibling without relying on inference.

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

get_mcp_serverB
Read-onlyIdempotent
Inspect

Retorna detalhes completos de um MCP server, incluindo configuração e capabilities.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcp_server_idYesUUID do MCP server

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, non-mutating operation. The description adds only marginal context by stating what the response covers (configuration and capabilities), but says nothing about error behavior for unknown IDs or response shape. Given that annotations carry the safety profile, a 3 is appropriate.

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 zero filler. It states the action and the scope of the returned data compactly. Nothing could be trimmed without losing meaning, and it is correctly sized for a one-parameter read tool.

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 low-complexity, single-parameter read with strong annotation coverage (readOnly, idempotent, non-destructive), the description is nearly complete: it identifies the target, the parameter, and the scope of returned details. The absence of a return-format description is a minor gap given there is no output schema, but it does not obstruct correct 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% — the schema already documents mcp_server_id as 'UUID do MCP server' with a uuid format. The description adds nothing about the parameter beyond the schema, so the baseline 3 applies. Since the single parameter is fully documented in the schema, no compensation is 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 states a specific verb ('Retorna' – returns) and resource (complete details of an MCP server), naming the returned content (configuration and capabilities). It is clearly distinguished from CRUD siblings like create/update/delete_mcp_server and from test_mcp_server. It does not explicitly differentiate from list_mcp_servers, but the get-vs-list distinction is easily inferred.

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 list_mcp_servers (for enumeration) or test_mcp_server (for connectivity checks). The description implies usage only by restating the function; there are no exclusions, prerequisites, or selection criteria to help an agent choose correctly among the many mcp_server siblings.

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

get_scheduler_statusA
Read-onlyIdempotent
Inspect

Retorna o status atual do serviço de agendamento (SchedulerService). Mostra jobs ativos, próximas execuções e estatísticas.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful context by specifying what status information is returned and that it reflects the current state, which is valuable because there is no output schema. No contradiction with annotations.

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 brief sentences lead with the core action and resource, then detail the key output categories. Every word earns its place; no fluff or redundant restatement of the title.

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 no-parameter, read-only status tool without an output schema, the description adequately conveys the return scope. It could be more precise about the exact shape of jobs/statistics, but it gives enough for an agent to invoke it and interpret the general response.

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 and the schema adds no burden, so the baseline of 4 applies. The description does not need to explain parameters and does not omit anything relevant.

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 ('Retorna') and identifies the resource ('SchedulerService') and the exact kind of information provided (active jobs, upcoming executions, statistics). It clearly distinguishes this as a status/observation tool among the large set of scheduler, trigger, and health-related siblings.

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 tool is for checking scheduler health and activity, but it does not explicitly state when to use it over alternatives like get_tenant_health, list_triggers, or list_trigger_executions. There is no when/when-not guidance, but the intended context is reasonably clear from the content.

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

get_schemaB
Read-onlyIdempotent
Inspect

Retorna detalhes completos de um schema, incluindo schema_data.

ParametersJSON Schema
NameRequiredDescriptionDefault
schema_idYesUUID do schema

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds some value by noting that the response includes schema_data, but it does not disclose other behavioral details such as not-found behavior or required permissions.

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

Conciseness5/5

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

The description is a single focused sentence with no filler. It front-loads the main purpose and mentions the notable response field without redundancy.

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

Completeness4/5

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

For a simple read-only getter with one well-documented UUID parameter and safety annotations, the description is largely sufficient. It lacks explicit context about when to prefer this over list_schemas and does not describe error cases, but the tool is simple enough that this is a minor gap.

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%: the only parameter, schema_id, is already described as 'UUID do schema'. The description adds no additional meaning to the parameter itself, 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 a specific operation ('Retorna') and resource ('schema'), and explicitly mentions schema_data in the response. It is unambiguous but does not actively distinguish itself from siblings like list_schemas or validate_schema_data.

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 list_schemas, create_schema, or validate_schema_data. The intended usage is only implied by the verb and the required schema_id parameter.

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

get_session_agent_treeA
Read-onlyIdempotent
Inspect

Árvore de agentes de uma SESSÃO (linhagem por parent_session_id, #227): supervisor + subagentes de todos os turnos. Funciona em sessões multi-turno onde o trace por execução não fecha a árvore.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYessession_id da sessão âncora (a do supervisor)
execution_idNoOpcional: restringe a árvore a uma execução específica

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds meaningful behavioral context: the tree spans all turns, uses parent_session_id for lineage, and is suited to multi-turn sessions where execution traces are incomplete.

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 concise sentences front-load the core concept and then explain the relevant usage context. The internal reference '#227' is minor noise, but overall the description is efficient and readable.

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 read-only tree query with one required parameter, the description and schema together provide enough to select and invoke the tool. It does not describe return shape or potential size, but no output schema exists and the key semantics are covered.

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 schema already documents both session_id and execution_id. The description reinforces the session-anchor concept but adds no parameter-level detail 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 clearly identifies a session-scoped agent tree built from parent_session_id lineage, including supervisor and subagents across turns. It partially differentiates from per-execution tracing, but does not explicitly name or distinguish it from sibling tools like get_execution_trace or get_agent_lineage.

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 description gives a clear usage context: multi-turn sessions where an execution-level trace does not fully represent the tree. It implies the contrast with per-execution tracing but does not explicitly name the alternative tool or state when not to use this one.

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

get_session_historyA
Read-onlyIdempotent
Inspect

Retorna o histórico de mensagens de uma conversa. Filtra mensagens técnicas (tool calls) e retorna apenas interações user/assistant.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesID da sessão (retornado por chat_with_agent ou list_agent_sessions)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so no safety contradiction exists. The description adds meaningful behavioral context beyond the annotations: it explicitly states that technical/tool-call messages are filtered out and only user/assistant interactions are returned, which is valuable for an agent deciding whether this tool fits the task.

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

Conciseness5/5

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

The description is only two sentences, each earning its place: the first states the primary function and resource, and the second clarifies the filtering behavior. It is concise, front-loaded, and free of filler or redundant restatements of the tool name.

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

Completeness5/5

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

For a tool with one well-documented parameter and read-only/idempotent annotations, this description is complete. It specifies the exact resource, the session identifier concept, and the output filtering behavior. There is no output schema, but the description sufficiently explains what the caller will receive, and no critical calling context is 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%, and the session_id parameter is already described in the schema, including where the ID comes from. The description does not add extra parameter meaning, but it does use the phrase 'de uma conversa', which reinforces that session_id identifies a conversation. With full schema coverage, 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 uses a specific verb ('Retorna') and resource ('o histórico de mensagens de uma conversa'), making the tool's function immediately clear. It further differentiates the tool by stating it filters tool-call messages and returns only user/assistant interactions, which separates it from raw trace or execution-history tools.

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 clearly implies this tool is meant for retrieving cleaned, user-facing conversation history for a given session. However, it does not explicitly state when to prefer this over alternatives, nor does it name any alternatives or exclusions, such as when a technical/raw history tool like get_execution_trace would be more appropriate.

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

get_session_trigger_contextA
Read-onlyIdempotent
Inspect

Navegação reversa: a partir de um session_id, retorna o trigger e a execução que originaram a sessão. Retorna has_trigger: false se a sessão não veio de trigger.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYessession_id da sessão

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds the conditional result has_trigger=false for sessions not originating from a trigger, which is useful behavioral detail beyond the annotations and does not contradict them.

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 no filler. The core verb, resource, and conditional return behavior are all front-loaded, and each clause earns its place.

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?

Even without an output schema, the description conveys the main return values: trigger, execution, and has_trigger flag. It does not specify error handling for invalid or missing session_id, but that is a minor gap for a simple read-only lookup.

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

Parameters4/5

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

The schema's session_id description is circular ('session_id da sessão'), so the description adds meaning by explaining that this parameter is the starting point for tracing back to the originating trigger and execution. It doesn't add format or constraints, but for a single string identifier that is acceptable.

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?

Clear verb+resource: it returns the trigger and originating execution for a given session_id, plus a has_trigger flag. It is not explicitly contrasted with sibling tools, but the reverse-navigation wording makes its unique purpose identifiable.

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

Usage Guidelines3/5

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

Usage context is implied ('a partir de um session_id', reverse navigation), so an agent can infer when to call it. It does not name alternatives or state when not to use it, so guidance is contextual rather than explicit.

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

get_snapshotA
Read-onlyIdempotent
Inspect

Retorna detalhes completos de um snapshot de publicação, incluindo estado do agente, schemas, triggers e MCP servers.

ParametersJSON Schema
NameRequiredDescriptionDefault
snapshot_idYesUUID do snapshot

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the core safety profile is covered. The description adds no behavioral nuance beyond the listed return content; it does not mention pagination, size, permissions, or error behavior, but it also does not contradict the annotations.

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, compact sentence that front-loads the operation and resource, then lists the relevant content areas. There is no filler or redundancy.

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

Completeness4/5

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

For a one-parameter read-only retrieval tool without an output schema, the description gives a useful overview of the return content (agent state, schemas, triggers, MCP servers). It is complete enough for correct selection and invocation, though it does not fully specify the response structure or edge-case behavior.

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

Parameters3/5

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

Schema coverage is 100% and the single parameter snapshot_id already has a clear UUID description. The description adds that the snapshot is a 'publication snapshot', which gives useful context, but otherwise does not add meaning beyond what the schema already provides. 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 states a specific action ('Retorna') and a clear resource ('detalhes completos de um snapshot de publicação') and enumerates meaningful content categories (agent state, schemas, triggers, MCP servers). This distinguishes it from list-style siblings like list_snapshots and from mutation tools like rollback_snapshot.

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 this tool should be used when a complete snapshot's details are needed, and the verb 'Retorna' suggests a read/retrieval operation. However, it does not explicitly state when to prefer this over alternatives such as list_snapshots or get_version, nor does it provide any 'not for X' guidance.

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

get_tenant_healthA
Read-onlyIdempotent
Inspect

Saúde de infra no nível do tenant: erros NÃO atribuíveis a um agente específico (rate limit, auth de provider, infra), agrupados por código canônico. Complementa get_agent_metrics (que é por agente).

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNoFim da janela (ISO 8601). Default: sem filtro.
start_dateNoInício da janela (ISO 8601). Default: sem filtro.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful context about what is returned (infra errors, grouped by canonical code) and what is excluded (agent-specific errors). No contradiction. Could mention output shape more explicitly, but this is adequate.

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 no filler. The core scope is front-loaded, examples are parenthesized, and the sibling comparison is at the end. Every word earns its place.

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

Completeness5/5

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

For a simple read-only tool with two optional parameters, the schema covers parameter semantics, annotations cover safety, and the description covers data scope and grouping. The relationship to get_agent_metrics completes the context. Nothing critical is 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 coverage is 100%: both start_date and end_date have descriptions in the schema. The tool description adds no parameter-specific 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.

Purpose5/5

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

The description states a clear domain and scope: tenant-level infrastructure health, showing errors not attributable to a specific agent (rate limit, provider auth, infra), grouped by canonical code. It explicitly differentiates from get_agent_metrics, which is per-agent, so an agent can distinguish this tool without opening the schema.

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

Usage Guidelines5/5

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

The description names get_agent_metrics as the complementary sibling and gives a decision rule: use this tool for errors not attributable to a specific agent, as opposed to per-agent metrics. This is explicit when-to-use guidance with an alternative.

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

get_triggerA
Read-onlyIdempotent
Inspect

Retorna detalhes completos de um trigger, incluindo configuração e estatísticas.

ParametersJSON Schema
NameRequiredDescriptionDefault
trigger_idYesUUID do trigger

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already disclose readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds some value by specifying the returned content (configuration and statistics), but it does not describe error behavior, permissions, or other 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.

Conciseness5/5

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

The description is a single, focused sentence that conveys the action, resource, and the scope of returned data without unnecessary words.

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

Completeness4/5

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

For a simple single-parameter read tool with strong annotations, the description is adequate: it states what the tool returns and that it covers configuration and statistics. It could be slightly more complete by explicitly mentioning that it fetches one trigger by ID, but the schema supplies that detail.

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%: the only parameter, trigger_id, is already documented as a UUID. The description does not add additional meaning to the parameter, so the baseline score 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 states a specific verb ('Retorna') and resource ('um trigger'), and adds that it returns complete details including configuration and statistics. This is clear, though it does not explicitly distinguish itself from sibling tools like list_triggers or get_trigger_execution.

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 tool is used when complete details of a single trigger are needed, and the required trigger_id clarifies the by-ID usage. However, there is no explicit guidance about when to use this tool instead of alternatives such as list_triggers or test_trigger.

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

get_trigger_executionB
Read-onlyIdempotent
Inspect

Retorna detalhes enriquecidos de uma execução: session correlacionada, chamadas LLM, tool calls e métricas agregadas.

ParametersJSON Schema
NameRequiredDescriptionDefault
execution_idYesUUID da execução

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds some behavioral context about the kind of data returned, but it does not disclose potential costs, errors, or limitations of retrieving 'enriched details'.

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

Conciseness5/5

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

The description is a single, well-structured sentence with no filler or redundancy. It front-loads the main purpose and then compactly lists the enriched content categories, so every word earns its place.

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 read-only tool with one required parameter and safety annotations, the description is largely sufficient: it names the resource and the categories of returned data. Since there is no output schema, slightly more detail about the return shape or format could improve completeness, but the current description is adequate for 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%, and the single parameter execution_id is already documented as 'UUID da execução'. The description does not add meaningful semantics beyond what the schema 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 uses a specific verb ('Retorna') and a clear resource ('detalhes enriquecidos de uma execução'), and it enumerates what the details include: correlated session, LLM calls, tool calls, and aggregated metrics. It does not explicitly differentiate from siblings such as list_trigger_executions or get_execution_trace, but the purpose itself is clear.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus close siblings like list_trigger_executions, get_execution_trace, or get_execution_diagnostics. There are no exclusions, prerequisites, or alternative conditions mentioned, so the agent must infer usage from the tool name alone.

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

get_versionA
Read-onlyIdempotent
Inspect

Retorna detalhes de uma versão específica de um recurso, incluindo dados before/after e campos alterados.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYesNúmero da versão
resource_idYesUUID do recurso
resource_typeYesTipo do recurso

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already convey read-only, idempotent, and non-destructive behavior. The description adds value by revealing what the response contains—before/after data and changed fields—which is useful context beyond the annotations. No contradiction exists.

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, dense sentence that front-loads the action and resource, then adds the key output details. No wasted words or restatement of the title.

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?

This is a simple read-only getter with fully documented required parameters. The description partially compensates for the absent output schema by naming the main response contents, though it does not describe possible error behavior or the overall response envelope. Still, it is adequate for 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?

All three parameters have schema descriptions covering 100% of the parameter space, so the baseline is 3. The description does not add parameter-level detail, but none is needed given the schema coverage.

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 ('Retorna') and a clear resource ('versão específica de um recurso'), and it states the distinguishing output ('dados before/after e campos alterados'). This separates get_version from list_versions and compare_versions without needing to inspect 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 Guidelines4/5

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

The phrase 'versão específica' clearly indicates this tool is for retrieving one version's details rather than listing or comparing versions. It provides clear context but does not explicitly name alternatives or exclusion conditions, so it stops short of a 5.

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

invalidate_mcp_cacheA
Idempotent
Inspect

Invalida o cache de tools MCP. Use quando:

  • Atualizou tools no MCP server externo e quer que o agente carregue as novas tools imediatamente

  • Um MCP server está com problemas e quer forçar reconexão

  • Quer limpar cache após alterar configuração de auth Funciona mesmo sem MCP Client ativo (reseta metadados no DB para forçar reconexão). Sem parâmetros: invalida todo o cache do tenant. Com mcp_server_id: invalida apenas o server especificado.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcp_server_idNoUUID do MCP server específico (omitir para invalidar todo o cache do tenant)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, and the description adds useful mechanism-level behavior: it resets metadata in the DB to force reconnection, and works even without an MCP client active. This goes beyond what the annotations convey. No contradiction with annotations is present.

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

Conciseness5/5

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

The description is compact and front-loaded with the primary action, followed by a scannable bulleted list of use cases and a clear explanation of parameter behavior. Every sentence adds meaningful guidance without redundancy.

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

Completeness5/5

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

Given the tool has only one optional parameter, no output schema, and annotations covering idempotency/safety, the description fully equips an agent to decide when to call it and what will happen. It covers scope, side effects, and prerequisite-free behavior.

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

Parameters4/5

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

The schema covers the sole mcp_server_id parameter 100% with a clear description, and the tool description further enriches semantics by explaining the difference between omitting the parameter (invalidate whole tenant cache) versus providing it (invalidate only that server). This adds real value over the schema alone.

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

Purpose5/5

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

The description states a specific verb and resource: 'Invalida o cache de tools MCP', and explains concrete trigger scenarios. It clearly distinguishes itself from sibling tools like delete_mcp_server or test_connection by focusing on cache/metadata invalidation rather than server management or connection testing.

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 description provides explicit 'Use quando' scenarios for when to invoke this tool, covering tool updates, server issues, and auth configuration changes. It also clarifies that it works without an active MCP client. It does not explicitly mention alternatives or when not to use it, but the usage cases are concrete and actionable.

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

list_agent_budgetsA
Read-onlyIdempotent
Inspect

Lista saldo/teto de gasto (USD) de TODOS os agentes do tenant em batch. Útil para visão de burn-rate consolidada sem N+1.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

The annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint false). The description adds useful behavioral context: batch operation, all-agents scope, and USD currency. However, it does not disclose return format, pagination, or what happens when agents have no budget, so it doesn't go beyond a 3.

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 carry the entire definition with no filler. The core purpose and scope are front-loaded, and the 'without N+1' phrase adds practical value without adding bulk.

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 parameterless batch read tool with strong annotations, the description is nearly complete. It states what data is returned (budgets/limits in USD) and for whom (all tenants). The only minor gap is the lack of an explicit response shape or field details, but that is not critical for invoking the tool 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?

The tool has zero parameters, and the schema already reflects that (100% coverage). With no parameters to describe, the baseline of 4 applies; the description correctly focuses on behavior rather than parameters.

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 action (list), a specific resource (agent budgets in USD), and an explicit scope (all agents in the tenant, in batch). This clearly differentiates it from sibling get_agent_budget, which is singular, even though that sibling is not named directly.

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

Usage Guidelines4/5

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

It tells the agent when this tool is valuable: for a consolidated burn-rate view without N+1 calls. It doesn't explicitly say 'use get_agent_budget for a single agent,' but the batch/all semantics and 'without N+1' make the intended use case clear.

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

list_agent_historyA
Read-onlyIdempotent
Inspect

Timeline completa de todas as alterações de um agente (schemas, triggers, MCP servers). Filtrável por tipo de recurso.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoLimite de resultados (default: 50)
offsetNoOffset para paginação
agent_idYesUUID do agente
resource_typeNoFiltrar por tipo de recurso

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so there is no contradiction. The description adds modest value by clarifying that the timeline covers schemas, triggers, and MCP servers and is filterable by resource type. It does not explain ordering, pagination behavior, auth requirements, or the shape of returned entries.

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

Conciseness5/5

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

The description is compact, front-loaded with the core action and object, and each clause earns its place. The filterability note is a short, separate sentence that adds useful information without bloat.

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 essential call contract is present: required agent_id, optional resource_type filter, and pagination parameters are all covered by schema and description. However, without an output schema, the description does not clarify what a timeline entry contains, and it does not route the agent away from overlapping history/version tools. It is adequate but not complete.

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

Parameters3/5

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

Schema description coverage is 100%, so limit, offset, agent_id, and resource_type are already documented in the schema. The description mainly reinforces the resource_type filter through the parenthetical examples, adding little meaning beyond what the enum already provides.

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 names a specific resource and action: it returns a 'complete timeline' of changes to an agent, listing examples (schemas, triggers, MCP servers). This makes the tool's purpose easy to identify. It does not explicitly distinguish itself from similar siblings like list_versions or list_snapshots, 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 description implies this tool is for inspecting agent change history and mentions filtering by resource type. It does not state when to prefer this tool over sibling tools such as list_versions, list_snapshots, or get_execution_trace, nor does it provide when-not guidance. Usage context is present but only implicit.

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

list_agent_memoryB
Read-onlyIdempotent
Inspect

Lista memórias persistentes de um agente. Retorna fatos, preferências, instruções e contexto armazenados.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesUUID do agente
categoryNoFiltrar por categoria de memória
user_keyNoFiltrar por user_key específico (identifica o usuário final)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safe-read nature is covered. The description adds the memory category types, but omits the `schedule_report` category present in the schema, which is a minor transparency gap.

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

Conciseness5/5

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

Two short sentences with no filler. The action is front-loaded and the return categories are listed efficiently. Every sentence earns its place.

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 a list operation with no output schema, so the description should convey more about the return structure or pagination, but it does not. It is also missing the `schedule_report` category, making it incomplete against the schema.

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 meaning by mapping the return content to `fact`, `preference`, `instruction`, and `context`, but it does not mention `schedule_report` and does not clarify `agent_id` or `user_key` 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 clearly identifies the action ('Lista') and the resource ('memórias persistentes de um agente'), and enumerates the return categories: facts, preferences, instructions, and context. It is distinct from the nearest sibling `delete_agent_memory`, though it does not explicitly differentiate itself from `list_agent_history` or `get_session_history`.

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 like `list_agent_history`, `list_agent_sessions`, or `get_agent`. The description only states what it does, not the conditions under which it is the right choice.

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

list_agentsB
Read-onlyIdempotent
Inspect

Lista todos os agentes do tenant. Retorna id, nome, status, tipo e metadados.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFiltrar por tipo (ex: assistant, chatbot)
statusNoFiltrar por status
include_archivedNoIncluir agentes arquivados
include_unpublishedNoIncluir agentes despublicados (publicação inativa no tenant). Use para encontrar um agente que sumiu da lista após unpublish e republicá-lo.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already establish read-only, idempotent, and non-destructive behavior, so the bar is lower. The description adds tenant scope and return-field context, but it does not disclose pagination, default filtering behavior, or how 'todos' interacts with the archived/unpublished flags.

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 no filler. The core purpose is front-loaded, and the return shape is stated efficiently.

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

Completeness4/5

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

For a low-complexity list tool with rich annotations and fully documented parameters, the description is mostly complete. It lacks pagination details and explicit sibling differentiation, but an agent can reasonably select and call 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 description coverage is 100%, so the baseline is 3. The tool description adds no parameter-level meaning, but the schema already documents each parameter, including the nuanced purpose of include_unpublished.

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 identifies the action ('Lista todos os agentes do tenant') and the resource, and it specifies the output fields. It does not explicitly differentiate from the sibling list_published_agents, though 'todos os agentes' implies a broader scope than published-only.

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 such as list_published_agents. It does not mention exclusions, prerequisites, or preferred scenarios beyond the generic listing purpose.

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

list_agent_sessionsA
Read-onlyIdempotent
Inspect

Lista conversas recentes com um agente. Para usuários finais (role member), retorna apenas as próprias sessões; operadores (admin/editor/owner) veem as do tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoLimite de resultados (default: 20, max: 100)
offsetNoOffset para paginação
agent_idYesUUID do agente
roots_onlyNotrue = só sessões raiz (exclui sessões de subagentes, #227)
consumer_keyNoFiltra pelas sessões de um consumidor específico
control_modeNoFiltra por modo de controle da sessão (Sprint 72)

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds valuable behavioral context beyond annotations: the caller's role determines whether sessions are scoped to the caller or to the entire tenant. No contradiction with annotations.

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 compact sentences with no wasted words. The core action is front-loaded, and the role-based scoping nuance is placed right after, making the description 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 read-only list operation, the description covers the essential behavior, role scoping, and the required agent_id context is in the schema. The absence of an output schema means return shape is not described, which is a minor gap, but not enough to reduce materially.

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 are already documented in the schema. The description adds no parameter-specific meaning beyond that, 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 states a specific verb ('Lista') and resource ('conversas recentes com um agente'), and it distinguishes its scope by role: end users see only their own sessions, while operators see tenant-wide sessions. This makes the operation clear without needing to inspect the schema.

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

Usage Guidelines3/5

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

The description implies when to use the tool—listing recent conversations for a specific agent—and gives useful role-based context. However, it does not explicitly name alternative sibling tools like list_consumer_sessions or state when not to use this tool, so the agent must infer selection from context.

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

list_agent_toolsA
Read-onlyIdempotent
Inspect

Lista todas as ferramentas resolvidas de um agente (api_config + db_config + MCP tools + core tools). Mostra o que o agente efetivamente terá disponível em runtime, com nome, descrição e parâmetros.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesUUID do agente

TDQS

A4.3/5.0
Behavior4/5

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

Annotations (readOnlyHint, idempotentHint, destructiveHint) already convey the non-mutating nature. The description adds valuable context beyond annotations by specifying the output contents (name, description, parameters) and the runtime scope (api_config + db_config + MCP + core). It does not contradict annotations and provides useful behavioral detail about what the tool returns, so a 4 is appropriate.

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

Conciseness5/5

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

The description is two sentences with no redundancy. The first sentence front-loads the primary action and scope, and the second efficiently lists output details. Every clause earns its place, making it highly concise and well-structured.

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

Completeness5/5

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

Given no output schema, the description compensates by explicitly stating that the tool returns the agent's resolved tools with name, description, and parameters. It covers the input (agent_id), the scope (resolved tools), and the output content. For a simple read-only listing tool, this is complete — an agent knows exactly what to expect and how to invoke it. No critical information is 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% — the only parameter, agent_id, is already described as 'UUID do agente'. The description does not add any additional semantics beyond restating 'de um agente'. With full schema coverage, the baseline is 3, and the description adds no extra meaning to the parameter, so it stays at 3.

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

Purpose5/5

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

The description clearly states the specific action: listing all resolved tools of an agent, and enumerates the composition (api_config, db_config, MCP tools, core tools). It differentiates from siblings like list_agents or get_agent by focusing on tool inventory rather than agent metadata. The phrase 'Mostra o que o agente efetivamente terá disponível em runtime' clarifies the scope and output, making the tool's purpose unmistakable.

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 description provides clear context: this tool is for listing an agent's resolved toolset at runtime. However, it does not explicitly mention when to prefer this over siblings like list_agents or get_agent, nor does it state any exclusions. The context is clear enough for an agent to infer the use case, but without explicit alternatives or when-not-to-use guidance, it stops short of a 5.

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

list_api_keysA
Read-onlyIdempotent
Inspect

Lista todas as API Keys do tenant. Retorna id, nome, status, prefix, suffix, rate limit e estatísticas.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value by disclosing the return contents (id, name, status, prefix, suffix, rate limit, statistics), which is especially useful given no output schema. It does not contradict the annotations.

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: the verb and scope come first, followed by the return field list. Every phrase adds information, and there is no fluff or repetition.

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

Completeness4/5

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

For a simple, parameterless, read-only listing tool, the description provides the tenant scope and return fields, and annotations cover the behavioral safety profile. A minor gap is the absence of pagination or response shape details, but these are not essential for basic 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 there is no parameter semantics to document. The description reinforces the no-argument, tenant-wide listing behavior and describes what is returned, which is sufficient for a parameterless tool. Baseline for 0 params is 4.

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 and resource: 'Lista todas as API Keys do tenant', clearly identifying the listing operation and tenant scope. It also enumerates the returned fields, which helps distinguish it from get_api_key, create_api_key, update_api_key, and delete_api_key.

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 intended use as a tenant-wide listing is implied by 'todas as API Keys do tenant' and the tool name, but there is no explicit guidance about when to prefer this over get_api_key or any mention of pagination/filtering conditions. The usage context is clear but not explicitly contrasted with alternatives.

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

list_approval_policiesA
Read-onlyIdempotent
Inspect

Lista políticas de aprovação do tenant (quem aprova o quê). Políticas são referenciadas por CSPs via behavior.approval_policy_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
active_onlyNotrue = apenas políticas ativas

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already cover safety (readOnlyHint=true, idempotentHint=true, destructiveHint=false), lowering the burden on the description. The description adds useful domain context about how policies are referenced, but it does not disclose runtime behaviors such as pagination, ordering, or whether the default output includes inactive policies (the schema's 'active_only' param implies this but is not in 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.

Conciseness5/5

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

Two short sentences with no redundancy. The first sentence states the core operation and scope, and the second provides valuable referential context. The description is front-loaded and every word earns its place.

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 very simple tool with one optional parameter, no output schema, and no nested objects, the description is nearly complete: it covers the resource, tenant scope, and semantic context. It lacks explicit sibling differentiation, but the clarity of 'políticas de aprovação do tenant (quem aprova o quê)' makes its function clear enough to call 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?

The single parameter 'active_only' is fully described in the input schema (description: 'true = apenas políticas ativas') with a default value, so the description does not need to add param-specific meaning. The schema coverage is 100%, and the description adds no additional parameter guidance beyond what the schema already states, warranting the baseline 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 specifies a clear verb ('Lista'), resource ('políticas de aprovação do tenant'), and scope ('do tenant'), and adds a parenthetical definition ('quem aprova o quê') that disambiguates the resource type. The additional note about CSP references via behavior.approval_policy_id further clarifies the role of these policies, distinguishing it from list_approvals, which presumably lists approval records.

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 when to use the tool (to list tenant-level policy definitions) and even hints at its downstream use by CSPs, but it does not explicitly mention alternatives or when not to use it. There is no routing guidance against siblings like get_approval_policy or list_approvals, leaving the agent to infer selection from the name and resource phrasing.

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

list_approvalsA
Read-onlyIdempotent
Inspect

Lista pendências de aprovação HITL do tenant (ações de tools aguardando aprovação de usuário). admin/owner veem todas; editor vê apenas as próprias solicitações e o que pode aprovar. A decisão (aprovar/rejeitar) acontece no chat do aprovador, não por esta API.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMáximo de itens (default: 100, max: 200)
statusNoFiltro de status (default: awaiting_user)awaiting_user

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint, so the description adds value by explaining role-based visibility and the fact that approve/reject actions are not performed here. This boundary clarifies an important behavioral trait beyond the annotations.

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

Conciseness5/5

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

The description is three sentences with no filler. It front-loads the core function, then adds relevant access-control nuance and a key boundary, all in economical prose.

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?

Combined with rich annotations and full schema coverage, the description covers the key behavioral context: role scoping and the fact that decisions happen elsewhere. It is complete enough for an agent to decide when to call it, though it doesn't mention response shape or pagination, which are minor given there is no output schema and the tool is simple.

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 limit and status are already fully documented in the schema. The description adds no additional semantic nuance about parameter usage, which is acceptable at the baseline for full schema coverage.

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 action ('Lista pendências de aprovação HITL do tenant') with a clear resource (approval pending items for tool actions). It further clarifies scope by role (admin/owner vs editor), making it distinct from policy-related siblings like list_approval_policies.

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

Usage Guidelines4/5

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

It provides clear context on when to use this tool: to list HITL approval pendings. It explicitly excludes decision-making ('decisão acontece no chat do aprovador, não por esta API') and describes role-based visibility. However, it does not explicitly name alternatives or state when not to use it in favor of other tools.

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

list_connectionsA
Read-onlyIdempotent
Inspect

Lista todas as conexões de banco de dados do tenant. Retorna id, nome, provider, status — use o id como connection_id no create_schema(db_config).

ParametersJSON Schema
NameRequiredDescriptionDefault
active_onlyNoFiltrar apenas conexões ativas
include_deletedNoIncluir conexões deletadas (soft delete)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds value by clarifying it lists ALL connections of the tenant and reveals the return fields, but it does not discuss potential large result sets or pagination behavior, which would be relevant for a listing operation.

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

Conciseness5/5

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

A single, well-structured sentence that front-loads the purpose, lists return fields, and provides a practical usage hint with zero redundancy. Every part earns its place.

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

Completeness4/5

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

Given the tool's simplicity—no output schema, two optional boolean filters—the description covers the key information: scope, return fields, and a usage example. It lacks mention of pagination or handling of large lists, but for a straightforward listing tool with annotated safety, this is nearly complete.

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

Parameters3/5

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

Schema coverage is 100%, with both parameters (active_only, include_deleted) fully documented in the schema. The description does not expand on parameter behavior beyond what the schema already states, so the baseline of 3 applies; the connection_id hint is not parameter-related.

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

Purpose5/5

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

The description clearly states the verb (Lista) and resource (conexões de banco de dados) with a tenant scope. It lists the returned fields (id, nome, provider, status) and even explains the downstream use of id, effectively distinguishing it from the singular get_connection tool.

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 description provides a clear purpose—listing all tenant database connections—and adds a specific usage hint (use id as connection_id in create_schema). However, it does not explicitly contrast with alternatives like get_connection or mention when not to use it, so it stops short of full routing guidance.

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

list_consumersA
Read-onlyIdempotent
Inspect

Lista paginada de consumidores do tenant atual, ordenada por mais recentes (last_seen_at desc). Útil pra dashboards "consumers ativos" ou ranking.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMáximo de registros (até 100)
offsetNoOffset de paginação
searchNoSubstring case-insensitive em display_name ou consumer_key (até 80 chars, sanitizado)
blockedNotrue = só denylisted, false = só não-denylisted, omit = todos

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context such as tenant scoping, pagination, and ordering by last_seen_at desc, but does not go further into return format or edge cases.

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 sentences with no filler; the core purpose appears immediately and the use-case sentence is useful rather than redundant. Every sentence earns its place.

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

Completeness4/5

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

For a simple paginated list tool with four optional, fully documented parameters and no output schema, the description gives sufficient context: scope, ordering, and typical use. It could mention the shape of returned consumer objects, but that is not critical for selecting and invoking the tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all four parameters. The description does not add extra parameter-level semantics; it only speaks to the overall result set ordering.

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

Purpose5/5

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

The description states a specific verb and resource: 'Lista paginada de consumidores do tenant atual', and adds a concrete ordering ('ordenada por mais recentes (last_seen_at desc)'). It is clearly distinct from siblings like get_consumer_profile (single consumer) and list_consumer_sessions (consumer sessions).

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 description gives clear usage context: 'Útil pra dashboards "consumers ativos" ou ranking'. This tells an agent when the tool is valuable, though it does not explicitly mention alternatives or when not to use it.

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

list_consumer_sessionsA
Read-onlyIdempotent
Inspect

Lista as sessões de um consumidor específico (cross-agent, ordenadas por mais recentes). Complementa get_consumer_profile (que retorna só contadores agregados).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMáximo de registros (até 100)
offsetNoOffset de paginação
consumer_keyYesIdentificador do consumer (mesmo de agent_sessions.consumer_key)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety is covered. The description adds useful behavioral context: cross-agent scope and most-recent ordering. It does not describe what fields the returned sessions contain or pagination behavior, but this is moderate added value given the annotations.

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 compact sentences with no filler. The first sentence front-loads the core behavior and qualifiers; the second sentence adds the comparison to get_consumer_profile, which is directly useful for tool selection.

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

Completeness4/5

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

For a simple read-only list tool, the description plus schema and annotations are sufficient for correct invocation. The main gap is that with no output schema, the agent gets no hint about the shape of the returned sessions, and there is no explicit differentiation from list_agent_sessions.

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 limit, offset, and consumer_key are already fully documented. The description reinforces 'consumidor específico' as the consumer_key role but adds no new parameter-level semantics.

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 ('Lista'), the resource ('sessões de um consumidor específico'), and key qualifiers ('cross-agent, ordenadas por mais recentes'). It also distinguishes itself from get_consumer_profile by contrasting sessions with aggregate counters.

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

Usage Guidelines4/5

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

It explicitly mentions when this tool complements get_consumer_profile, telling the agent that get_consumer_profile only returns aggregate counters while this tool returns actual sessions. However, it does not mention alternative session-list tools like list_agent_sessions or state explicit exclusions.

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

list_cspsA
Read-onlyIdempotent
Inspect

Lista todas as políticas de segurança (CSPs) do tenant. Filtrável por escopo, tipo e status.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoFiltrar por escopo da política
is_activeNoFiltrar por status ativo/inativo
policy_typeNoFiltrar por tipo de política
scope_target_idNoFiltrar por ID do alvo (agent_id, team_id, user_id)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds only the tenant-wide scope and filterability, which are more about purpose than behavior; no extra details on pagination, ordering, or response shape 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 a single compact sentence that front-loads the action and resource, then states the filtering capability. There is no redundant wording or filler.

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

Completeness4/5

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

For a simple, read-only list tool with all parameters optional and fully described in the schema, the description is sufficient for correct invocation. The only notable gap is the lack of mention of return shape or pagination, but that is minor for this tool.

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

Parameters3/5

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

The input schema covers 100% of the parameters with descriptions, so the baseline of 3 applies. The description broadly mentions filtering by scope, type, and status, which maps to scope, policy_type, and is_active, but does not add meaningful detail 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 uses a specific verb ('Lista') and resource ('políticas de segurança (CSPs) do tenant'), making it clear this is a listing operation. It is distinguishable from the singular get_csp and the computed get_effective_csps by saying it lists all tenant policies, though it does not explicitly name those siblings.

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: it lists all tenant CSPs with optional filters by scope, type, and status. It does not explicitly mention when to prefer this over alternatives like get_csp or get_effective_csps, so some inference is required.

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

list_mcp_serversA
Read-onlyIdempotent
Inspect

Lista os MCP servers vinculados a um agente. MCP servers conectam o agente a tools externas.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFiltrar por status
agent_idYesUUID do agente

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful domain context about what MCP servers are, but it does not disclose behavioral details such as how results are ordered, whether pagination applies, or how the status filter affects results. It is consistent with annotations and does not contradict them.

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

Conciseness5/5

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

The description is only two sentences long, with the primary purpose front-loaded in the first sentence. The second sentence adds concise, relevant context without padding. Every word earns its place and the structure is easy for an agent to parse quickly.

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

Completeness4/5

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

For a simple read-only list operation with 100% schema coverage and no nested objects, the description is largely complete. It identifies the target resource and agent binding, and annotations cover idempotency and safety. It could optionally mention the shape of the returned list, but the tool name and action make that reasonably inferable.

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 both agent_id and status are already documented with clear descriptions and an enum for status. The description does not need to repeat parameter details and adds no extra semantic information beyond the schema. A baseline score of 3 is appropriate because the schema carries the parameter documentation burden.

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 action ('Lista') and a specific resource ('MCP servers vinculados a um agente'), making it clear that this tool returns the MCP servers associated with a given agent. It is easily distinguished from sibling tools like get_mcp_server (single server) and list_agent_tools (tools, not servers). The added explanation that MCP servers connect agents to external tools reinforces the domain context.

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 main use case: call it to list the MCP servers linked to an agent. However, it does not explicitly state when not to use it or mention alternatives such as get_mcp_server for retrieving a single server or create_mcp_server for adding one. The usage context is clear but not contrasted with sibling options.

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

list_published_agentsA
Read-onlyIdempotent
Inspect

Lista agentes disponíveis para conversa. Retorna apenas agentes publicados do tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds valuable scoping context ('apenas agentes publicados do tenant') beyond what annotations provide, but does not disclose details such as pagination, ordering, or response structure. This is acceptable for a simple list tool, so a 3 is appropriate.

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 consists of two short, front-loaded sentences with no filler. The first sentence identifies the action and resource, and the second adds the critical published-only scope. Every word earns its place.

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

Completeness5/5

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

For a parameterless, read-only list tool with rich annotations, the description provides all necessary invocation context: what is listed, what scope is returned, and the tenant boundary. There is no missing information that would prevent an agent from calling 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?

The input schema has zero parameters and schema description coverage is 100%, so the schema imposes no burden. With no parameters, the baseline is 4, and the description correctly adds no unnecessary parameter details.

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 action ('Lista') on a specific resource ('agentes disponíveis para conversa') and further narrows the scope with 'Retorna apenas agentes publicados do tenant.' This distinguishes it from siblings like list_agents by emphasizing the published-only filter.

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 description provides clear context: use this tool when you need published agents available for conversation, scoped to the tenant. It does not explicitly name an alternative like list_agents for non-published agents, but the 'apenas agentes publicados' phrasing makes the intended use case reasonably clear.

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

list_schemasA
Read-onlyIdempotent
Inspect

Lista todos os schemas (configurações) de um agente. Schemas definem persona, tools (API/DB/MCP), skills e workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesUUID do agente
schema_typeNoFiltrar por tipo de schema
include_inactiveNoIncluir schemas desativados

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds domain context about what schemas define, but not behavioral details like output shape, filtering effects, or how include_inactive changes results.

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 concise sentences with the main purpose front-loaded. No filler or redundant wording.

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 read-only list tool with full parameter documentation and safety annotations, the description plus schema are largely sufficient. The only real gap is that no output schema exists and the description does not mention return structure or pagination, but this is minor given the tool's simple nature.

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 even without parameter details in the description. The description does not add parameter-specific semantics beyond the schema, though it loosely maps schema concepts to the schema_type enum values.

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?

States a specific verb and resource: 'Lista todos os schemas (configurações) de um agente'. It also clarifies what schemas contain, which distinguishes it from singular get_schema and from create/update/delete schema siblings.

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?

Usage is implied: use this when you need all schemas for an agent. However, there is no explicit when/when-not guidance or mention of get_schema for retrieving a single schema, nor any direction on when to apply schema_type filtering.

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

list_secretsA
Read-onlyIdempotent
Inspect

Lista todos os secrets do tenant (sem expor valores). Retorna nome, categoria, descrição, uso e timestamps. Use o campo "name" como secret_ref em api_config ou vault_secret_id em db_config.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description's additional statement 'sem expor valores' is valuable beyond the schema: it guarantees that secret values are not returned. It also discloses the exact metadata fields returned, giving the agent a clear behavioral contract.

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

Conciseness5/5

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

The description is three concise sentences with no filler. It front-loads the core action, immediately states the critical 'does not expose values' constraint, lists return fields, and then gives practical integration guidance for the returned name field. Every sentence earns its place.

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

Completeness5/5

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

With no parameters and no output schema, the description fully compensates by specifying both the scope (all tenant secrets) and the return content (name, category, description, usage, timestamps). It also tells the agent how to use the returned name in api_config and db_config, which is complete enough for a simple list operation.

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 and 100% schema description coverage, so the schema leaves nothing to explain. The description adds no parameter semantics but provides useful field-level semantics for the returned 'name' field, which is not required for parameters but enriches the agent's understanding of the output.

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 starts with a specific verb and resource: 'Lista todos os secrets do tenant' (lists all tenant secrets), and clarifies the operation is read-only and does not expose values. It also summarizes the returned fields and notes how the 'name' field is used downstream, making the tool's purpose unmistakable even without the sibling context.

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 makes the usage context clear by stating it lists all tenant secrets and does not expose values, and it gives downstream guidance for using the returned 'name'. However, it does not explicitly mention when to use this tool versus related alternatives such as create_secret, update_secret, delete_secret, or list_versions, leaving the agent to infer routing.

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

list_snapshotsA
Read-onlyIdempotent
Inspect

Lista snapshots de publicação de um agente. Cada snapshot captura o estado completo no momento da publicação.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoLimite de resultados (default: 20)
offsetNoOffset para paginação
agent_idYesUUID do agente

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds useful context beyond annotations by explaining that each snapshot 'captura o estado completo no momento da publicação,' which clarifies that snapshots are full-state captures rather than partial updates. No annotation contradiction exists.

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 concise sentences deliver the core purpose and an important semantic detail without filler. The key action is front-loaded in the first sentence, making it easy for an agent to scan.

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

Completeness4/5

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

For a simple read-only list operation, the description combined with the schema and annotations is mostly sufficient. It does not specify ordering or whether snapshots are returned newest-first, but the parameters and safety profile are adequately covered.

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 limit, offset, and agent_id are already documented in the schema. The description does not add any parameter-specific meaning beyond what the schema provides, 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 states a specific action and resource: 'Lista snapshots de publicação de um agente' (lists publication snapshots of an agent). It also clarifies the semantic meaning of each snapshot as capturing the complete state at publication time, distinguishing this from generic version/history listing 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 given about when to use this tool versus alternatives like list_versions, get_snapshot, or list_agent_history. The description implies its purpose but does not provide context, prerequisites, or exclusions.

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

list_trigger_executionsA
Read-onlyIdempotent
Inspect

Lista execuções de um trigger com paginação. Retorna histórico de execuções incluindo status, tempos e tokens.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoLimite de resultados (default: 20, max: 100)
offsetNoOffset para paginação
trigger_idYesUUID do trigger

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds context by noting that the tool returns execution history with status, times, and tokens, but it does not disclose ordering, default pagination behavior, or any other behavioral nuance beyond the schema.

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. The main action is front-loaded, and each sentence adds relevant information: first the operation, then the returned fields.

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 straightforward paginated list tool with rich annotations, full schema coverage, and no output schema, the description is nearly complete. It identifies required trigger_id, pagination, and the nature of the returned history, though a bit more detail about the output shape or default ordering could push it higher.

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 schema fully documents trigger_id, limit, and offset. The description mentions pagination generically, which matches limit/offset, but it does not add detail beyond what the input schema already provides. 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 states a specific verb ('Lista'), a resource ('execuções de um trigger'), and the scope (historical executions with status, times, and tokens). It clearly differentiates from siblings like get_trigger_execution by indicating this is a paginated list operation rather than a single-item fetch.

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 tool is used to retrieve paginated trigger execution history, but it does not explicitly state when to prefer it over related tools such as get_trigger_execution or get_execution_trace. There are no exclusions or alternative routing instructions.

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

list_triggersA
Read-onlyIdempotent
Inspect

Lista todos os triggers do tenant. Triggers disparam execuções de agentes automaticamente.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledNoFiltrar por status (habilitado/desabilitado)
agent_idNoFiltrar por agente específico
trigger_typeNoFiltrar por tipo de trigger

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read operation. The description adds useful domain context ('Triggers disparam execuções de agentes automaticamente') but does not disclose additional behavior such as pagination, ordering, or response shape.

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, front-loaded sentences with no filler. The primary function appears first, and the second sentence earns its place by clarifying the domain purpose of triggers.

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

Completeness4/5

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

For a simple read-only list operation with fully documented optional parameters and safety covered by annotations, this description is nearly complete. Minor missing details like pagination or field ordering could help, but they are not essential for correct tool selection.

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 schema already documents all three optional filters (enabled, agent_id, trigger_type). The description adds no extra parameter meaning, which keeps this at the baseline score.

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 'Lista todos os triggers do tenant', giving a specific verb, resource, and tenant scope. This distinguishes it from singular/action siblings like get_trigger, create_trigger, and delete_trigger.

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 description conveys that this is the tool for retrieving all triggers within the tenant, which is clear context for typical list scenarios. It does not explicitly name alternatives or exclusions, but the scope is unambiguous and no competing list-trigger sibling exists.

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

list_versionsB
Read-onlyIdempotent
Inspect

Lista o histórico de versões de um recurso (agent, schema, trigger ou mcp_server). Cada versão registra uma alteração com before/after.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoLimite de resultados (default: 20, max: 100)
offsetNoOffset para paginação
resource_idYesUUID do recurso
resource_typeYesTipo do recurso

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already cover readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the description does not need to repeat safety traits. It adds a useful detail that each version records a change with before/after, but does not disclose other behavioral aspects like ordering, pagination behavior (beyond schema fields), or any rate limits. This is adequate given the annotations but not rich.

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

Conciseness5/5

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

The description is two concise sentences with the purpose front-loaded. The first sentence states what the tool does and the second adds a relevant detail about the content of versions. No wasted words.

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

Completeness3/5

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

The tool lists versions with before/after, but with no output schema, the description does not specify the return format (e.g., fields like version number, timestamp, author). Pagination is covered by the schema, but ordering and exact response structure are not described. For a list tool, this is adequate but leaves gaps that could confuse an agent.

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

Parameters3/5

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

The input schema has 100% coverage with descriptions for all parameters (resource_type, resource_id, limit, offset). The description does not add any additional parameter semantics 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 lists version history for specific resource types (agent, schema, trigger, mcp_server), with a specific verb and scope. It does not explicitly name sibling tools like get_version or compare_versions, but the 'list' action distinguishes it implicitly, so it falls just short of a 5.

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

Usage 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 get_version for a single version or compare_versions for comparing two versions. There are no explicit when-to-use or when-not-to-use instructions, nor any mention of alternatives.

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

publish_agentA
Idempotent
Inspect

Publica ou despublica um agente para o tenant. Publicar torna o agente disponível para uso.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAção: publicar ou despublicar
agent_idYesUUID do agente

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate this is a write operation (readOnlyHint=false), non-destructive, and idempotent. The description adds minimal context by stating that publishing makes the agent available for use, but it does not disclose further behavioral details such as effects on existing published state or on active sessions.

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, direct sentences convey the action, resource, scope, and key effect without redundancy. The most important information is front-loaded and every word adds value.

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

Completeness4/5

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

For a simple publish/unpublish operation with two required parameters and helpful annotations, the description is largely sufficient. It could mention what unpublishing does to current availability or any prerequisites, but those gaps are minor given the idempotent and non-destructive hints.

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 covers 100% of parameter descriptions, so the schema already explains agent_id and action. The description adds no additional parameter-level meaning, leaving it at the baseline for fully documented schemas.

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 names the action (publish/unpublish), the resource (agent), and the tenant scope, and explains the outcome of publishing. It is unambiguous, though it does not explicitly differentiate from sibling tools such as list_published_agents or update_agent.

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 intended use is implied by the action name and description: use it to publish or unpublish an agent for the tenant. However, there is no explicit guidance about when to prefer this tool over alternatives, nor any mention of exclusions or prerequisites.

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

refresh_connection_schemaAInspect

Atualiza o schema cache conectando ao banco real e extraindo tabelas/colunas. Opcionalmente enriquece com semântica via LLM (auto_enrich=true). Pode demorar alguns segundos dependendo do tamanho do banco.

ParametersJSON Schema
NameRequiredDescriptionDefault
auto_enrichNoEnriquecer automaticamente com semântica via LLM após extração
connection_idYesUUID da conexão

TDQS

A4/5.0
Behavior4/5

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

A descrição adiciona contexto comportamental além das annotations: conecta ao banco real, atualiza cache, opcionalmente enriquece via LLM e pode demorar segundos. Não contradiz readOnlyHint=false ou destructiveHint=false, e cobre informação relevante de latência e efeito.

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?

Duas frases objetivas, sem enrolação, com a ação principal na primeira frase e detalhes relevantes (LLM, latência) na segunda. Nenhuma palavra é desperdiçada.

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?

Para uma ferramenta simples com apenas 2 parâmetros, a descrição cobre comportamento, efeito, opção e latência. Não há output schema, mas não é essencial aqui. Poderia mencionar comportamento em caso de falha de conexão, mas o conjunto é suficiente.

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?

O schema já descreve 100% dos parâmetros, incluindo auto_enrich e connection_id, então a descrição da ferramenta não precisa repeti-los. Ela menciona auto_enrich=true, o que reforça, mas não adiciona semântica nova além do 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?

A descrição usa verbo e recurso específicos ('Atualiza o schema cache') e explica o mecanismo (conectar ao banco real, extrair tabelas/colunas). Isso a distingue claramente de ferramentas irmãs como get_connection_schema, get_connection_semantic e test_connection.

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?

O uso é implícito: a descrição indica que serve para atualizar o cache do schema, mas não diz explicitamente quando preferi-la a alternativas como get_connection_schema ou test_connection, nem quando evitar usá-la.

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

rollback_snapshotA
Destructive
Inspect

Restaura um agente completo para um snapshot de publicação anterior. Restaura agent, schemas, triggers e MCP servers.

ParametersJSON Schema
NameRequiredDescriptionDefault
snapshot_idYesUUID do snapshot para restaurar

TDQS

A3.5/5.0
Behavior3/5

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

The annotations already flag this as destructive and not read-only, so the bar is lower. The description adds useful context by naming exactly what gets restored (agent, schemas, triggers, MCP servers), but it does not explicitly state that the current configuration will be overwritten or that the rollback may be irreversible.

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, purposeful sentences with no filler. The main action is front-loaded and the component list is concise, making the description easy to scan and act on.

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 destructive operation with a single parameter, the description is minimally sufficient: it identifies the resource, the target state, and the affected components. However, it omits guidance on how to obtain the snapshot_id, what happens to the current agent state, and what response or confirmation to expect, especially since there is no output schema.

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%, so the one parameter (snapshot_id) is already documented as a UUID. The description adds only mild semantic context by clarifying that the snapshot is a 'publication snapshot,' which is helpful but does not materially expand 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 clear action ('Restaura... um agente completo') and a specific target ('snapshot de publicação anterior'), and it enumerates the affected components: agent, schemas, triggers, and MCP servers. This makes the tool's purpose evident and largely distinguishes it from sibling version-rollback tools, 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 Guidelines3/5

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

The usage is implied: use this tool to restore a full agent to a previous publication snapshot. However, the description does not explicitly contrast it with alternatives like rollback_version or mention exclusions, so an agent must infer when this tool is preferred over its siblings.

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

rollback_versionB
Destructive
Inspect

Restaura um recurso individual para uma versão anterior. O trigger grava automaticamente a nova versão resultante do rollback.

ParametersJSON Schema
NameRequiredDescriptionDefault
resource_idYesUUID do recurso
resource_typeYesTipo do recurso
target_versionYesNúmero da versão para restaurar

TDQS

B3.4/5.0
Behavior4/5

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

The description discloses that a rollback automatically results in a new version being recorded, which adds useful behavior beyond the destructiveHint annotation. It does not contradict annotations. The wording 'O trigger' is confusing, but the key behavioral point—rollback produces a new version—is still conveyed.

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

Conciseness4/5

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

The description is concise and front-loaded with the core purpose. The second sentence provides relevant behavioral context, but the ambiguous use of 'trigger' hurts clarity and prevents a top score.

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 destructive tool with no output schema, the description covers the essential purpose, resource scope, and the notable side effect of creating a new version. However, it does not explain what the response contains, whether the operation is reversible beyond the new version record, or how target_version relates to the current version history, leaving it only minimally complete.

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

Parameters3/5

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

Schema description coverage is 100%, so resource_type, resource_id, and target_version are already documented in the schema. The description adds little parameter-level meaning beyond mapping 'recurso' and 'versão anterior' to those fields, which is adequate but not additive.

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 a specific action and resource: it restores an individual resource to a previous version. The phrase 'recurso individual' helps distinguish this from snapshot-level rollback, though it does not explicitly name the sibling rollback_snapshot. The second sentence about 'trigger' is somewhat ambiguous and slightly muddles the purpose.

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

Usage Guidelines2/5

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

No when-to-use guidance is provided beyond the inherent definition. The description does not mention alternatives such as rollback_snapshot, list_versions, or compare_versions, nor does it explain when this tool should or should not be selected.

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

send_manual_messageAInspect

Envia uma mensagem manual ao consumer pelo MESMO canal outbound do agente (Twilio/Meta/webhook), sem invocar LLM e sem consumir quota. Útil quando atendimento humano assumiu uma sessão (use combinado com set_session_control mode=manual_handoff). Mensagem é gravada no conversation_history com metadata.author=human (F4) — assim o agente NÃO aprende a imitar esse padrão se reassumir.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesTexto da mensagem manual a enviar
session_idYessession_id text (ou UUID id) da sessão

TDQS

A4.5/5.0
Behavior5/5

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

The description discloses important side effects beyond the annotations: it writes to conversation_history, sets metadata.author=human, and prevents the agent from learning the pattern if it resumes. This is exactly the kind of behavioral context an agent needs beyond readOnly/destructive hints.

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?

Three dense sentences deliver the channel, the no-LLM/no-quota behavior, the intended usage scenario, the combined tool call, and the side effect on conversation history. Every sentence earns its place and the most important facts are front-loaded.

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

Completeness5/5

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

For a simple 2-parameter tool with full schema coverage, the description supplies all needed context: why to use it, which sibling to combine it with, what side effects it has, and what it avoids. No output schema exists, but the description does not need to explain return values for a fire-and-forget send action.

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 both session_id and message already described in the input schema. The description does not add parameter-level details, but none are needed because the schema fully documents them.

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 identifies a specific action — sending a manual message to the consumer over the same outbound channel as the agent — and clearly differentiates it from LLM-driven interaction by stating it does not invoke the LLM or consume quota. This distinguishes it from sibling tools like chat_with_agent without needing to consult 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 Guidelines4/5

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

The description explicitly states when to use the tool: when human service has taken over a session, and it even names the companion tool and mode, set_session_control mode=manual_handoff. It does not explicitly state when not to use it, but the intended context is clear.

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

set_agent_budgetA
Idempotent
Inspect

Define ou remove o teto de gasto (USD) de um agente. limit_usd=null remove o teto (ilimitado). É também o laço de recuperação: elevar o teto faz um agente parado por budget voltar a rodar no próximo turno. Retorna o saldo recalculado.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesUUID do agente
limit_usdYesTeto em USD (>= 0) ou null para remover o teto

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate idempotent and non-destructive behavior. The description adds valuable context beyond them: null removes the cap, the tool is the recovery loop for budget-stopped agents, and it returns the recalculated balance. No contradiction with annotations.

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 and front-loaded with the core purpose. The second sentence partially restates schema information about null, but the recovery-loop sentence adds distinctive value without bloat.

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

Completeness4/5

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

Given only two required parameters and no output schema, the description covers the key behavior, the null case, the recovery-loop consequence, and the return value. It could mention permission requirements or invalid-agent behavior, but the essential information for a correct call is present.

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% and the schema already documents limit_usd and agent_id. The description adds meaningful behavioral nuance, especially that limit_usd=null means unlimited and that increasing the limit resumes a stopped agent.

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 ('Define ou remove') and identifies the exact resource (agent spending cap in USD). It also distinguishes the tool from the sibling getters get_agent_budget and list_agent_budgets by emphasizing the mutation and recovery-loop behavior.

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

Usage Guidelines4/5

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

It clearly explains the context for use: setting or removing a cap, and raising a cap to resume a budget-stopped agent. It does not explicitly name get_agent_budget/list_agent_budgets as alternatives or state when not to use it, but the usage context is strong.

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

set_consumer_denylistA
Idempotent
Inspect

Adiciona ou remove um consumidor do denylist universal do tenant (flag do_not_contact). Quando ativo, todas as mensagens desse consumer são bypassadas pelo Consumer Denylist Gate (sem invocação de LLM/Whisper, sem consumo de quota). Cross-agent — bloqueia em TODOS os agentes do tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoMotivo opcional do bloqueio (audit/telemetria). Apenas usado quando blocked=true.
blockedYestrue = adiciona ao denylist; false = remove.
messageNoMensagem canned opcional a ser entregue ao consumer ao tentar interagir. Vazia = ACK silencioso (default). Apenas usado quando blocked=true.
consumer_keyYesIdentificador do consumer (mesmo de agent_sessions.consumer_key).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and idempotentHint=true; the description adds valuable behavioral context by explaining that active denylisting bypasses the Consumer Denylist Gate, avoids LLM/Whisper and quota usage, and applies across all tenant agents. This goes beyond the annotations and gives the agent a clear picture of the side effects. No contradiction with annotations was found.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core add/remove action, followed by the relevant consequences. Every clause adds meaningful information with no filler or repetition.

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

Completeness4/5

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

The schema and description together cover required parameters, conditional behavior, scope, and side effects. There is no output schema, but the description still gives an agent enough context to invoke the tool correctly; only a minor gap exists around what the response returns, which is not critical for this mutation tool.

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

Parameters3/5

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

The input schema covers 100% of parameters, including conditional usage rules for reason and message (only when blocked=true). The description itself does not add parameter-level meaning beyond the schema, 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 states a specific verb and resource: it adds or removes a consumer from the tenant's universal denylist via the do_not_contact flag. It also makes the scope explicit ('Cross-agent — bloqueia em TODOS os agentes do tenant') and clarifies the functional consequence, so the tool is clearly distinguishable from consumer session or profile tools.

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 description provides clear context for when this tool applies: blocking a consumer from all tenant agents and bypassing the Consumer Denylist Gate without LLM/Whisper or quota consumption. It does not name alternatives or explicit exclusions, but no sibling tool directly competes with this denylist action, so the context is sufficient.

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

set_session_controlA
Idempotent
Inspect

Define o modo de controle de uma sessão específica (engaged | suspended | manual_handoff). Quando != engaged, o gate sessionControlGate curto-circuita o agent loop sem consumir quota. Use suspended pra pausar temporariamente; manual_handoff pra sinalizar que atendimento humano assumiu.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesengaged = volta ao normal; suspended = pausa; manual_handoff = humano assumiu
reasonNoMotivo opcional (audit/telemetria)
messageNoCanned message opcional. Vazia = ACK silencioso (default). Só aplicada quando mode != engaged.
session_idYessession_id text (ou UUID id) da sessão

TDQS

A4/5.0
Behavior4/5

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

Beyond the annotations (idempotent, non-destructive), the description reveals an important side effect: when mode != engaged, sessionControlGate short-circuits the agent loop without consuming quota. This helps the agent reason about consequences beyond what readOnlyHint/destructiveHint convey.

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

Conciseness5/5

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

The description is three compact sentences: purpose, behavioral consequence, and mode-specific guidance. Every sentence contributes information and there is no redundant phrasing.

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 4-parameter, no-output-schema setter, the description covers the core purpose, mode meanings, and key behavioral effect. It doesn't mention in-flight agent behavior or return/errors, but these are not strongly needed given the schema and 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 coverage is 100% and the parameter descriptions already explain each field, so the description adds little per-parameter value. The mode semantics in the description largely mirror the schema's enum descriptions, though the gate/quota context is a useful tie-in.

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 pair ('Define o modo de controle de uma sessão específica') and enumerates the three allowed modes, so an agent knows exactly what the tool does. It doesn't explicitly contrast with sibling tools, but its scope 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 Guidelines4/5

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

The description gives concrete usage direction: use 'suspended' to pause temporarily and 'manual_handoff' to signal human takeover, and explains the gate/quota behavior when mode is not 'engaged'. It doesn't name alternative tools or exclusion cases, but the context is clear enough for correct selection.

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

test_connectionAInspect

Testa a conectividade de uma conexão existente. Verifica se o banco está acessível e retorna latência.

ParametersJSON Schema
NameRequiredDescriptionDefault
connection_idYesUUID da conexão a testar

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already provide a non-destructive, non-idempotent profile. The description adds the useful behavioral detail that it checks database accessibility and returns latency, but it does not mention possible side effects, failure behavior, or authentication requirements. This is acceptable for a simple test tool but not rich.

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

Conciseness5/5

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

Two short sentences with zero filler. The core action and output are 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.

Completeness4/5

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

For a one-parameter diagnostic tool, the description covers the action and return value. The main gap is the lack of usage guidance relative to siblings, but the tool's simplicity means the essential call information is present.

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% and the only parameter, connection_id, is described as 'UUID da conexão a testar'. The description adds almost nothing beyond restating that an existing connection is tested, 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 a specific verb ('Testa'), a specific resource ('conexão existente'), and the outcome ('verifica se o banco está acessível e retorna latência'). This clearly distinguishes it from related connection CRUD tools and from test_mcp_server.

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 explains what the tool does but gives no guidance on when to use it versus alternatives like get_connection, list_connections, or test_mcp_server. It implies an existing connection but never states exclusions or the context that should trigger this tool.

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

test_mcp_serverAInspect

Testa a conectividade de um MCP server externo com handshake REAL do protocolo (negociação de era) e listagem de tools. Retorna era/versão do protocolo, latência, tools disponíveis e classe de erro em falha. Use para diagnosticar problemas de conexão, auth, endpoint offline ou incompatibilidade de protocolo.

ParametersJSON Schema
NameRequiredDescriptionDefault
mcp_server_idYesUUID do MCP server a testar

TDQS

A4/5.0
Behavior4/5

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

The description adds behavioral context beyond the annotations by specifying that the tool performs a real protocol handshake, lists tools, and returns protocol version, latency, and error class. It is consistent with openWorldHint=true and does not contradict the annotations, though it could mention potential side effects or auth requirements more explicitly.

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

Conciseness5/5

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

The description is three short, front-loaded sentences: action/resource, return values, and use cases. Every sentence earns its place, with no filler or redundancy.

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

Completeness4/5

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

With no output schema, the description usefully enumerates the key return fields: protocol era/version, latency, available tools, and error class. It is complete enough for selecting and invoking the tool, though it leaves minor room for more precision about response structure and latency units.

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 only parameter, mcp_server_id, is already fully documented in the input schema with a clear UUID description and 100% schema description coverage. The tool description adds no extra semantic detail about this parameter, which is acceptable under the baseline rule for high 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 ('Testa a conectividade'), the target resource ('um MCP server externo'), and the distinctive mechanism ('handshake REAL do protocolo', 'listagem de tools'). It does not explicitly contrast itself with the sibling test_connection, so it misses full 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 Guidelines4/5

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

It provides explicit when-to-use guidance: 'Use para diagnosticar problemas de conexão, auth, endpoint offline ou incompatibilidade de protocolo.' However, it does not state when not to use it or point to an alternative tool such as test_connection.

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

test_triggerAInspect

Testa um trigger enviando um payload de exemplo. Executa o agente vinculado e retorna o resultado. Útil para verificar se webhook, schedule ou email trigger estão configurados corretamente. ATENÇÃO: executa o agente de verdade (não é dry-run), mas usa uma sessão temporária.

ParametersJSON Schema
NameRequiredDescriptionDefault
trigger_idYesUUID do trigger a testar
test_payloadNoPayload de teste. Para webhook: { "chatInput": "mensagem teste" }. Para schedule: omitir (usa query do cron).

TDQS

A4.4/5.0
Behavior5/5

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

The description explicitly warns that this tool executes the agent for real and is not a dry-run, which is essential behavioral context beyond the annotations. It also discloses that the execution uses a temporary session, giving the agent a clearer picture of side effects and scope. This is consistent with readOnlyHint=false, idempotentHint=false, and destructiveHint=false.

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

Conciseness5/5

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

The description is three sentences long, front-loaded with the core action, followed by the use case and the critical non-dry-run warning. Every sentence contributes essential information without redundancy.

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

Completeness4/5

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

Given no output schema, the description covers the main invocation context: the payload, the executed agent, and the temporary session. It could be slightly more complete by describing the shape of the returned result, but the combination of schema detail and the warning makes it sufficient for correct selection and 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?

Parameter documentation is already complete in the schema (100% coverage), including trigger_id as the UUID and test_payload with webhook/schedule examples. The description adds little parameter-specific meaning beyond the schema, 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 a specific verb and resource: it 'testa um trigger' by sending an example payload, executes the linked agent, and returns the result. This clearly separates it from sibling tools like test_connection or test_mcp_server, which do not execute a linked agent. The purpose is immediately actionable.

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 description states a clear use case: verifying whether webhook, schedule, or email triggers are configured correctly. It does not explicitly name alternatives or say when not to use this tool, but the context is specific enough for an agent to select it appropriately.

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

toggle_cspAInspect

Ativa ou desativa uma política de segurança. CSPs inativas não são aplicadas.

ParametersJSON Schema
NameRequiredDescriptionDefault
csp_idYesUUID da CSP

TDQS

A4/5.0
Behavior4/5

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

Annotations already signal a non-read-only, non-idempotent mutation. The description goes beyond these structured hints by explaining that deactivated CSPs are not enforced, which clarifies the real-world impact of toggling. There is no contradiction with annotations.

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 consists of two short, front-loaded sentences with no filler. The action verb appears first, and the consequence sentence earns its place by explaining why toggling matters.

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 one-parameter toggle with no output schema, the description adequately covers the action and a key behavioral consequence. It does not mention return values, but for a simple state-change tool this is not a significant gap.

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 provides full coverage (100%) for the single parameter csp_id, including a description ('UUID da CSP'). The tool description adds no extra parameter-level detail, which is acceptable given the schema already documents the only required field.

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 ('Ativa ou desativa' – activates or deactivates) on a specific resource ('política de segurança' – security policy/CSP) and adds the operational effect that inactive CSPs are not applied. This distinguishes it from sibling toggle_* tools (toggle_trigger, toggle_schema) and from other CSP CRUD tools.

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 intended use is implied: call this when you want to change a CSP's active state, and the consequence statement ('CSPs inativas não são aplicadas') reinforces when deactivation matters. However, the description does not explicitly mention alternatives (e.g., update_csp, delete_csp) or state when not to use this tool.

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

toggle_schemaAInspect

Ativa ou desativa um schema sem deletá-lo. Schemas inativos não são carregados no runtime do agente.

ParametersJSON Schema
NameRequiredDescriptionDefault
schema_idYesUUID do schema

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate the operation is not read-only, not idempotent, and not destructive. The description adds valuable behavioral context by explaining that inactive schemas are not loaded into the agent runtime, which helps the agent anticipate side effects beyond the annotations.

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

Conciseness5/5

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

The description is only two sentences, with the primary action stated first and the most important behavioral consequence second. Every sentence earns its place and there is no redundancy.

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

Completeness4/5

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

For a simple one-parameter toggle operation, the description covers what the tool does and an important runtime consequence. It does not mention the return value or whether the new state is returned, but given no output schema and a very simple input, this is not a significant gap.

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 fully documents the single required parameter, schema_id, with type and format. The description adds no additional parameter-level meaning, but with 100% schema coverage 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 clearly states the tool activates or deactivates a schema without deleting it, using a specific verb and resource. It distinguishes itself from delete_schema and update_schema, and its meaning is unambiguous even among many sibling tools.

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 description sets clear context: use this to change a schema's active/inactive state while preserving it. It explicitly excludes deletion behavior, but it does not name sibling alternatives like get_schema or delete_schema for comparison.

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

toggle_triggerAInspect

Habilita ou desabilita um trigger. Triggers desabilitados não disparam execuções.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYestrue para habilitar, false para desabilitar
trigger_idYesUUID do trigger

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate this is a write operation (readOnlyHint=false, idempotentHint=false), so the bar for extra disclosure is lower. The description adds a meaningful consequence—'Triggers desabilitados não disparam execuções'—which helps the agent understand the effect of disabling, though it does not go deeper into side effects or reversibility.

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. The primary action is front-loaded, and the second sentence adds valuable behavioral context rather than repeating the schema.

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

Completeness4/5

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

For a simple two-parameter toggle operation, the description is mostly complete: it states the action, the consequence of disabling, and the schema covers all parameters. Minor gaps are the lack of usage guidance and no mention of return format, but these are not critical for a straightforward toggle tool.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameters already have clear descriptions in the input schema ('true para habilitar, false para desabilitar' and 'UUID do trigger'). The tool description adds no parameter-level meaning beyond what the schema provides, 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 states a specific action ('Habilita ou desabilita') on a specific resource ('um trigger'), making the tool's purpose unambiguous. It also implicitly distinguishes it from trigger CRUD siblings by focusing solely on enable/disable state.

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 reach for this tool versus alternatives like update_trigger, list_triggers, or the other toggle tools (toggle_csp, toggle_schema). The intended use is only implied by the tool name and the action verb.

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

update_agentA
Idempotent
Inspect

Atualiza campos de um agente existente. Envia apenas os campos que deseja alterar.

ParametersJSON Schema
NameRequiredDescriptionDefault
bioNoNova descrição/biografia
nameNoNovo nome interno
tagsNoNovas tags
typeNoNovo tipo
agent_idYesUUID do agente a atualizar
metadataNoNovos metadados em JSON livre
llm_configNoNova configuração do LLM. model: "provider.modelo" ou "auto". temperature: 0-2. fallback_chain: cadeia de fallback.
visibilityNoNova visibilidade
chat_enabledNoHabilita/desabilita o agente no chat nativo (chat.zihin.ai). Gate por agente do canal chat — default false. Vive em tenant_agents, não no agente.
commercial_nameNoNovo nome comercial

TDQS

A4/5.0
Behavior3/5

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

Annotations already convey idempotence, non-read-only, and non-destructive behavior. The description adds the key behavioral detail that only provided fields are altered, which is useful beyond the annotations; however, it does not mention validation, rejection behavior, or what happens for omitted or empty fields.

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, front-loaded sentences with no filler; the first identifies the action and resource, the second captures the critical usage convention.

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

Completeness4/5

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

Given the rich schema and moderate annotations, a concise pointer to partial-update semantics is sufficient for invoking the tool correctly. It does not describe return values, but there is no output schema, and this is not essential to making a correct call.

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 schema already documents every parameter, including nested llm_config fields, enums, and defaults. The description only reinforces the partial-update convention and adds no field-level 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?

Clearly states the operation ('updates fields') on a specific resource ('an existing agent'), and the second sentence explicitly constrains it to a partial update. This distinguishes it from create_agent and delete_agent without needing the tool name alone.

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 partial-update instruction ('send only the fields you wish to change') gives clear operational guidance and implies the tool is for modifying existing agents rather than creating or replacing them. It does not explicitly name alternatives or exclusions, so it stops short of a 5.

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

update_api_keyA
Idempotent
Inspect

Atualiza o rate_limit_per_minute de uma API Key existente. O novo valor é validado contra o plano do tenant. Evita a necessidade de revogar e recriar a chave apenas para ajustar o RPM.

ParametersJSON Schema
NameRequiredDescriptionDefault
key_idYesUUID da API Key a atualizar
rate_limit_per_minuteYesNovo limite de requisições por minuto (validado contra plano do tenant)

TDQS

A4.2/5.0
Behavior4/5

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

The description adds information beyond annotations by explaining that the new value is validated against the tenant plan and that the operation is non-destructive. This complements the idempotentHint and destructiveHint annotations without contradicting them.

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?

Three short sentences, with the core action front-loaded and every sentence adding relevant context. No redundant or promotional language.

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

Completeness4/5

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

For a simple two-parameter mutation with complete schema coverage and a strong annotations block, the description provides all essential invocation context. It doesn't describe return values or error cases, but no output schema exists and the tool is straightforward.

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?

Both parameters are already fully described in the schema (100% coverage), so the description adds little semantic value for parameters. It only restates the validation behavior already in the schema's parameter description.

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 ('Atualiza'), the resource ('API Key existente'), and the exact field being updated ('rate_limit_per_minute'), clearly distinguishing it from create/delete/list/get API key siblings in the tool list.

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

Usage Guidelines4/5

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

It explains when this operation is appropriate by stating that it avoids revoking and recreating the key just to adjust RPM, effectively contrasting with delete+create. It lacks an explicit 'when not to use' statement, but the context is unambiguous.

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

update_approval_policyA
Idempotent
Inspect

Atualiza uma política de aprovação (nome, descrição, stages, is_active). is_active=false desativa a política. Envie apenas os campos a alterar.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNovo nome
stagesNoNovos estágios
is_activeNofalse = desativar política
policy_idYesUUID da política
descriptionNoNova descrição

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate this is a non-read-only, idempotent, non-destructive write. The description adds meaningful behavioral context by specifying that is_active=false deactivates the policy and that only changed fields should be sent, which affects how partial/repeated calls behave. No contradiction with annotations.

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 in Portuguese: the first states the action and affected fields, the second states the critical deactivation behavior and the partial-update rule. Every sentence earns its place with no redundant wording.

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 an update tool with a rich schema and annotations, the description covers the core call requirements: resource, mutable fields, partial update semantics, and the is_active=false special case. It does not describe the return value, but no output schema exists and a short update description can reasonably omit that.

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 schema already documents each parameter; the description adds the partial-update convention that ties the optional fields together but gives no per-parameter meaning beyond the schema. 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 uses the verb 'Atualiza' (updates) with a specific resource 'política de aprovação' and enumerates the mutable fields (name, description, stages, is_active), making the operation clear. It does not explicitly contrast with sibling create/get/list approval policy tools, so it stops short of full differentiation.

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?

It provides a clear partial-update instruction: 'Envie apenas os campos a alterar,' which tells the agent how to call the tool. However, it does not state when to prefer this over create_approval_policy or get_approval_policy, nor any exclusions or prerequisites, so usage context is only implied.

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

update_connectionA
Idempotent
Inspect

Atualiza uma conexão existente. Apenas os campos fornecidos serão alterados.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNovo nome
settingsNoNovas configurações adicionais
is_activeNoAtivar ou desativar
is_primaryNoAlterar status de primary
descriptionNoNova descrição
connection_idYesUUID da conexão a atualizar
connection_configNoNova configuração de conexão (mesma estrutura de create_connection)

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already indicate this is a non-readonly, non-destructive, idempotent update. The description adds valuable behavioral context beyond annotations by stating that only provided fields will be changed, preventing an agent from assuming a full replacement update.

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

Conciseness5/5

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

The description is a single sentence that front-loads the action and clarifies the critical partial-update behavior. There is no filler or redundant information.

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?

While the schema and annotations cover parameters and safety, the description is thin on usage context for a 7-parameter mutation tool. It does not mention return values, error conditions, or what happens with nested objects, and there is no output schema to fill that gap.

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 parameters are already documented in the schema. The description does not detail individual parameters but does add general semantics about partial updates, which slightly augments 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 uses a specific verb and resource: 'Atualiza uma conexão existente' clearly states it updates an existing connection. It also adds the crucial partial-update scope, 'Apenas os campos fornecidos serão alterados', which distinguishes it from create/delete/get connection 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?

There is no explicit guidance about when to use this tool versus alternatives like create_connection or test_connection. The word 'existente' implies it is not for creating, but no alternatives or when-not-to-use conditions are provided.

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

update_cspA
Idempotent
Inspect

Atualiza uma política de segurança existente. Envia apenas os campos que deseja alterar.

⚠️ rules é SUBSTITUÍDO, não mesclado: reenvie os campos que quer manter. Campo fora do contrato é aceito em silêncio e fica inerte — confira em zihin://schemas/csp_config.

Campos de behavior mais usados:

  • must_not_tools: blocklist de tools que o agente nunca executa (único controle de superfície de tools).

  • max_iterations / max_tool_calls / max_tokens_per_request: tetos de execução por turno.

  • require_approval_for + approval_policy_id: aprovação por escopo (OE-2a, só chat nativo — ver create_approval_policy).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNovo nome
rulesNoNovas regras (substituem as anteriores por completo)
csp_idYesUUID da CSP a atualizar
priorityNoNova prioridade
exceptionsNoNovas exceções
descriptionNoNova descrição

TDQS

A4.7/5.0
Behavior5/5

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

The description adds significant behavioral context beyond the annotations: it explicitly warns that 'rules é SUBSTITUÍDO, não mesclado' (rules are replaced, not merged), and that fields outside the contract are silently accepted and become inert. This is critical side-effect information that the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=true) do not convey. The description also points to a schema URI for further details, exceeding the baseline.

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

Conciseness5/5

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

The description is well-structured: a clear opening sentence, a critical warning with an emoji for emphasis, and a bullet list of optional fields. Every sentence adds value—no fluff. The most important caveat (rules replacement) is front-loaded, and the list of common fields is concise and actionable.

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

Completeness4/5

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

The description is quite complete for an update tool: it covers the main behavior, the rules replacement, and useful field hints. However, it does not mention expected response or errors, and it doesn't explicitly state success criteria. Given the complexity and absence of an output schema, a 4 is fair—there's a small gap but nothing that would mislead an agent.

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

Parameters5/5

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

Although the schema covers 100% of parameters, the description adds substantial semantics for the 'rules' parameter, explaining the replacement semantics and listing the most-used behavior fields (must_not_tools, max_iterations, etc.). It also clarifies that extra fields are inert. This goes well beyond the schema definitions and helps agents construct valid payloads.

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: 'Atualiza uma política de segurança existente' (updates an existing security policy), specifying the verb, resource, and that it's for existing policies. This distinguishes it from create_csp, delete_csp, and toggle_csp. The purpose is unambiguous and context-specific.

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

Usage Guidelines4/5

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

It provides explicit usage guidance: 'Envia apenas os campos que deseja alterar' (send only the fields you want to change) and warns about the rules replacement behavior. It also references create_approval_policy for approval fields, which is an alternative tool. However, it doesn't explicitly state when NOT to use this tool (e.g., for creation) or list all alternatives, so a 4 is appropriate.

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

update_mcp_serverC
Idempotent
Inspect

Atualiza configuração de um MCP server existente.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNovo nome
configNoNova configuração
statusNoNovo status
endpointNoNovo endpoint
transportNoNovo tipo de transporte
auth_methodNoNovo método de autenticação
descriptionNoNova descrição
mcp_server_idYesUUID do MCP server

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already carry the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), so the description's job was to add behavioral context beyond that — but it adds none. It does not disclose whether the update is partial (only provided fields change) or a full replacement, whether the 'config' object overwrites the entire configuration, or any validation side effects. For a mutation tool, the update semantics are a significant undisclosed behavior.

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

Conciseness4/5

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

One short sentence with the action front-loaded and zero filler. It is efficient, though it is minimal to the point of bordering on under-specification rather than purposeful conciseness.

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, 3 enums, a nested config object, and no output schema, a single sentence is insufficient. It leaves open what the tool returns, how partial updates behave, and whether unspecified fields are preserved or reset. The schema and annotations cover a lot, but the description fails to close genuine gaps that an agent would need before calling 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 description coverage is 100%, so the baseline is 3. Each parameter has a terse 'Novo X' ('New X') description conveying that it sets a new value, and three params have enums. The tool description itself adds no parameter-level meaning, and the 'config' object remains vague (additionalProperties: {}) in both schema and description, but the schema does the heavy lifting as expected.

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 'Atualiza configuração de um MCP server existente' ('Updates configuration of an existing MCP server') states a specific verb (update), resource (MCP server), and scope (existing), which clearly separates it from siblings like create_mcp_server, delete_mcp_server, get_mcp_server, and test_mcp_server. It doesn't explicitly name alternatives, but the action+resource is specific enough. Minor wrinkle: the description is in Portuguese while the tool name and annotation title are English, which could reduce clarity for agents without Portuguese support.

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 test_mcp_server for validating changed configs, no prerequisites (e.g., server must exist), and no exclusions. The only implied context is 'existing server' (opposed to create_mcp_server for new ones), which is passive rather than explicit.

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

update_schemaA
Idempotent
Inspect

Atualiza um schema existente. Pode alterar nome, dados ou descrição. Para api_config: endpoint.name DEVE ser igual a tool_definition.name. Para persona_config: usar formato { editor_schema: { persona: { role, objective, ... } } }.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNovo nome
schema_idYesUUID do schema a atualizar
descriptionNoNova descrição
schema_dataNoNovos dados do schema (mesma estrutura por tipo de create_schema). IMPORTANTE: enviar schema_data completo, não parcial — o objeto substitui o anterior por inteiro.

TDQS

A4.3/5.0
Behavior5/5

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

Beyond annotations (idempotent, non-destructive, read-write), the description discloses the critical behavioral trait that schema_data is an entire replacement ('substitui o anterior por inteiro'), warning against partial payloads. It also adds validation constraints that apply at write time (endpoint.name equals tool_definition.name for api_config). No contradiction with annotations exists; full replacement of data is distinct from destructive resource deletion.

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 text is three dense sentences: purpose, mutable fields, and type-specific format constraints. It is front-loaded and every clause contributes; no filler or repetition of annotation content.

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 4-param update with no output schema, the description covers the operation, replacement semantics, and per-type payload requirements, and points to create_schema for structure. It could be more explicit about when to choose update_schema over create/delete siblings, but the remaining inference is straightforward.

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?

All four parameters are already documented in the schema (100% coverage), so the baseline is 3. The description raises value by specifying the api_config equality requirement and the persona_config wrapper format, which are not derivable from the generic schema_data object type.

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

Purpose4/5

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

The description names the operation ('Atualiza') and the resource ('um schema existente') and enumerates the mutable fields: nome, dados, descrição. It does not explicitly name or contrast with create_schema/delete_schema, though 'existente' makes the core distinction from creation implicit.

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

Usage Guidelines4/5

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

It clearly frames the tool for already-existing schemas and gives concrete payload-format guidance for api_config and persona_config, plus the full-replacement rule. It lacks an explicit when-not-to-use or alternatives statement, but the context is unambiguous enough for tool selection.

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

update_secretA
Idempotent
Inspect

Atualiza o valor de um secret existente. O novo valor é criptografado e substitui o anterior.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNome do secret a atualizar
valueYesNovo valor plaintext
descriptionNoNova descrição (opcional)

TDQS

A4/5.0
Behavior4/5

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

Annotations already show this is a non-readonly, idempotent, non-destructive update. The description adds meaningful context: the new value is encrypted and replaces the previous value. This discloses the replacement/overwrite behavior, which is useful beyond what annotations provide.

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, front-loaded sentences with no filler. Each sentence adds distinct value: what the tool does, and the encryption/replacement behavior. Very efficient for an agent 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 low-complexity tool with robust annotations and full schema coverage, the description adequately covers the action, target, and an important behavioral consequence. It could mention the need for the secret to already exist or what happens on failure, but these are minor given the schema and 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%, so the parameters are already documented. The description adds a relevant encryption detail about the value, but it does not explain the optional description parameter or add significant parameter-level 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 ('Atualiza' = updates), a specific resource ('secret existente'), and what changes (the value). It clearly differentiates from the sibling tools create_secret and delete_secret by emphasizing 'existing' secret.

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 context is implied rather than explicit: the word 'existente' tells an agent this is for changing a secret that already exists. However, it never names alternatives like create_secret or states a when-not-to-use condition, so guidance is limited.

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

update_triggerA
Idempotent
Inspect

Atualiza um trigger existente. Envia apenas os campos que deseja alterar.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNovo nome
api_key_idNoNova API Key para execução
trigger_idYesUUID do trigger a atualizar
descriptionNoNova descrição
trigger_configNoNova configuração do trigger (mesma estrutura por tipo de create_trigger)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate this is a mutating, idempotent, non-destructive operation. The description adds the important PATCH-like behavior: only fields that need changing should be sent. This goes beyond what the annotations provide and helps an agent avoid sending the full object.

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, focused sentences convey the core purpose and key usage rule with no wasted words. The most important instruction is front-loaded and immediately actionable.

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

Completeness4/5

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

For a simple update operation with complete schema coverage and appropriate annotations, this description is largely sufficient. It lacks explicit mention of return behavior or authorization requirements, but these are not critical given the low complexity and no output schema. It does not leave major ambiguities for an agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all five parameters. The description does not add much parameter-level meaning beyond reinforcing the partial-update intent, which is already implied by the schema's optional fields. 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 operation: 'Atualiza um trigger existente' (updates an existing trigger). This distinguishes it from siblings like create_trigger, delete_trigger, and toggle_trigger. The verb and resource are 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 Guidelines4/5

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

The instruction 'Envia apenas os campos que deseja alterar' provides clear usage guidance for partial updates. It implies that the tool is for modifying an existing trigger rather than creating or deleting one, though it does not explicitly name alternative tools or state when not to use it.

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

validate_agent_schemasA
Read-onlyIdempotent
Inspect

Valida todos os schemas de um agente. Verifica api_config (endpoints, auth) e db_config (connection, query_template). Retorna schemas válidos, inválidos e warnings — útil antes de publicar o agente.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesUUID do agente a validar

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds meaningful behavioral detail beyond annotations, specifying what is verified (api_config, db_config) and what kind of result is produced (valid schemas, invalid schemas, warnings), which helps the agent anticipate outcomes.

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?

Three short sentences with no filler. The first sentence states the core action, the second specifies scope, and the third summarizes outputs and use case. Every sentence earns its place and the most important information is front-loaded.

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

Completeness4/5

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

For a single-parameter, read-only validation tool with rich annotations, the description is largely complete: it names the validated agent identifier, lists the two checked config areas, and summarizes the return categories. There is no output schema, so a slightly more structured description of the returned valid/invalid/warnings shape would be ideal, but the current level is sufficient 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 description coverage is 100% and the single parameter agent_id is already described as 'UUID do agente a validar'. The tool description does not add further parameter-level meaning, but the baseline of 3 applies because the schema carries the documentation burden.

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

Purpose5/5

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

The description states a specific verb and resource: 'Valida todos os schemas de um agente' and enumerates exactly what is checked (api_config endpoints/auth, db_config connection/query_template). It is clearly distinguishable from siblings like validate_schema_data, which targets schema data validation rather than the agent's overall configuration schemas.

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 description supplies a clear usage context: 'útil antes de publicar o agente' — telling the agent when this validation is appropriate. It does not explicitly name alternatives or describe when not to use it, but the context is unambiguous and sufficient for routing.

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

validate_schema_dataA
Read-onlyIdempotent
Inspect

Valida schema_data sem salvar (dry-run) — MESMA validação Ajv do create_schema/update_schema. Use SEMPRE antes de criar/atualizar schemas para evitar tentativa e erro. O contrato formal de cada tipo está no resource zihin://schemas/{schema_type}. Retorna erros, warnings e infos de validação.

ParametersJSON Schema
NameRequiredDescriptionDefault
schema_dataYesDados do schema a validar (mesma estrutura de create_schema)
schema_typeYesTipo do schema a validar (todos os tipos canônicos — trigger_config/csp_config são validados aqui mas criados via create_trigger/create_csp)

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already mark it read-only/idempotent/non-destructive, and the description adds valuable behavioral context: no persistence (dry-run), identical validation to create/update_schema, and the return categories 'erros, warnings e infos.' This goes well beyond the annotation hints.

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?

Three compact sentences place the core behavior first, the usage rule second, and the result/contract info last. Every sentence earns its place with no repetition or filler.

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

Completeness5/5

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

For a two-parameter validation tool with no output schema, the description covers what it does, when to use it, what it returns, and where to find the formal type contract. The schema fills in the remaining parameter details, making it complete.

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

Parameters3/5

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

Schema coverage is 100%, with both parameters described and schema_type having a detailed enum. The description's 'same structure as create_schema' pointer adds a little cross-tool context, but the schema already carries the parameter meaning, so baseline 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 opens with a specific verb and resource: 'Valida schema_data sem salvar (dry-run)' and anchors the behavior to 'MESMA validação Ajv do create_schema/update_schema.' This clearly distinguishes it as the validation-only counterpart to the create/update schema tools.

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

Usage Guidelines4/5

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

It gives an explicit directive: 'Use SEMPRE antes de criar/atualizar schemas para evitar tentativa e erro,' providing a clear when-to-use rule. It does not mention exclusions or alternative validation tools, so it stops short of a full 5.

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

whoamiA
Read-onlyIdempotent
Inspect

Identifica o tenant, role e plano da sessão MCP atual. Use para confirmar em qual organização e com qual nível de acesso você está conectado.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the main behavioral traits. The description adds value by specifying the exact information returned (tenant, role, plan), but this is not behavior beyond what annotations imply. The description does not contradict annotations.

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

Conciseness5/5

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

The description is compact—two short sentences with no filler. The main action is front-loaded ('Identifica o tenant, role e plano'), and the usage guidance follows directly. Every word earns its place.

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

Completeness5/5

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

For a tool with no parameters and no output schema, the description provides all necessary context: what it returns (tenant, role, plan) and when to use it. There is no missing information an agent would need to call 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?

The tool has zero parameters, so the schema coverage is trivially 100%. The description doesn't need to explain parameters. Baseline for 0 parameters is 4, and the description adds context about what it returns, but not parameter details (since there are none).

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 identifies the tool's purpose: it identifies the tenant, role, and plan of the current MCP session. The verb 'identifies' is specific, and the resource is well-defined. It distinguishes itself from all sibling tools by focusing on the current session context.

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

Usage Guidelines5/5

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

The description explicitly states when to use it: 'Use para confirmar em qual organização e com qual nível de acesso você está conectado.' This gives a clear, actionable usage scenario. No alternatives are mentioned, but none are needed as it's a unique introspection tool.

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. 96 tool updatesv0.1.0
    • First observedcancel_agent_turn
    • First observedchat_with_agent
    • First observedclone_agent
    • First observedcompare_versions
    • First observedcreate_agent
    • First observedcreate_api_key
    • First observedcreate_approval_policy
    • First observedcreate_connection
    • First observedcreate_csp
    • First observedcreate_mcp_server
    • First observedcreate_schema
    • First observedcreate_secret
    • First observedcreate_trigger
    • First observeddelete_agent
    • First observeddelete_agent_memory
    • First observeddelete_api_key
    • First observeddelete_connection
    • First observeddelete_csp
    • First observeddelete_mcp_server
    • First observeddelete_schema
    • First observeddelete_secret
    • First observeddelete_trigger
    • First observedget_agent
    • First observedget_agent_budget
    • First observedget_agent_full
    • First observedget_agent_lineage
    • First observedget_agent_metrics
    • First observedget_api_key
    • First observedget_approval_policy
    • First observedget_connection
    • First observedget_connection_schema
    • First observedget_connection_semantic
    • First observedget_consumer_profile
    • First observedget_csp
    • First observedget_effective_csps
    • First observedget_execution_diagnostics
    • First observedget_execution_trace
    • First observedget_mcp_server
    • First observedget_scheduler_status
    • First observedget_schema
    • First observedget_session_agent_tree
    • First observedget_session_history
    • First observedget_session_trigger_context
    • First observedget_snapshot
    • First observedget_tenant_health
    • First observedget_trigger
    • First observedget_trigger_execution
    • First observedget_version
    • First observedinvalidate_mcp_cache
    • First observedlist_agent_budgets
    • First observedlist_agent_history
    • First observedlist_agent_memory
    • First observedlist_agent_sessions
    • First observedlist_agent_tools
    • First observedlist_agents
    • First observedlist_api_keys
    • First observedlist_approval_policies
    • First observedlist_approvals
    • First observedlist_connections
    • First observedlist_consumer_sessions
    • First observedlist_consumers
    • First observedlist_csps
    • First observedlist_mcp_servers
    • First observedlist_published_agents
    • First observedlist_schemas
    • First observedlist_secrets
    • First observedlist_snapshots
    • First observedlist_trigger_executions
    • First observedlist_triggers
    • First observedlist_versions
    • First observedpublish_agent
    • First observedrefresh_connection_schema
    • First observedrollback_snapshot
    • First observedrollback_version
    • First observedsend_manual_message
    • First observedset_agent_budget
    • First observedset_consumer_denylist
    • First observedset_session_control
    • First observedtest_connection
    • First observedtest_mcp_server
    • First observedtest_trigger
    • First observedtoggle_csp
    • First observedtoggle_schema
    • First observedtoggle_trigger
    • First observedupdate_agent
    • First observedupdate_api_key
    • First observedupdate_approval_policy
    • First observedupdate_connection
    • First observedupdate_csp
    • First observedupdate_mcp_server
    • First observedupdate_schema
    • First observedupdate_secret
    • First observedupdate_trigger
    • First observedvalidate_agent_schemas
    • First observedvalidate_schema_data
    • First observedwhoami

TDQS

A3.7/5.0

Scored across 96 tools

Disambiguation4/5

With 96 tools, there is potential for confusion, but the tool names and descriptions clearly separate resources (agents, triggers, schemas, connections, secrets, MCP servers, etc.). Some pairs like get_agent vs get_agent_full serve different depths, and descriptions clarify usage. Overall, each tool has a distinct purpose with only minor overlaps (e.g., test_connection vs test_mcp_server), but the volume makes selection slightly harder.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (e.g., list_agents, create_agent, update_agent, delete_agent). Even exceptions like whoami and chat_with_agent are clear and fit the pattern. There are no mixed conventions or chaotic naming.

Tool Count1/5

96 tools is far beyond the typical range for an MCP server, even for a full platform admin. The sheer volume creates cognitive overhead for agents and increases misselection risk. While the domain is broad, this count is excessive and would benefit from consolidation or namespacing.

Completeness5/5

The tool surface is exceptionally complete, covering CRUD and lifecycle operations for agents, schemas, triggers, connections, secrets, MCP servers, CSPs, API keys, and more. It includes diagnostics, validation, versioning, snapshots, approvals, budgets, and consumer management. No obvious gaps are apparent for the stated purpose of full tenant management.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A proxy server that bridges AI agents and external APIs by dynamically translating OpenAPI specifications into standardized MCP tools, enabling seamless interaction without custom integration code.
    69
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A centralized management platform that aggregates multiple Model Context Protocol (MCP) servers into a single unified endpoint for AI agents. It provides a web interface for hot-swappable tool management, proxying of existing servers, and AI-powered generation of custom MCP plugins.
    1
    -
  • F
    license
    A
    quality
    F
    maintenance
    MCP server that exposes 300+ AI agents as tools via a single API key. Supports listing agents, invoking any agent with chat-completion style messages, checking agent health, and retrieving platform statistics.
    5
    3
    -