Skip to main content
Glama

fb_execute_ddl

Execute Firebird DDL statements such as CREATE, ALTER, DROP, or RECREATE with explicit commit and mandatory double confirmation.

Instructions

Executa comandos estruturais DDL no Firebird (CREATE, ALTER, DROP, RECREATE, etc.) com commit explícito.

REGRA RÍGIDA DE SEGURANÇA — DUPLA CONFIRMAÇÃO OBRIGATÓRIA: O assistente NUNCA deve executar comandos estruturais sem autorização expressa do usuário. Etapas obrigatórias antes da execução:

  1. Apresentar a instrução DDL exata que será executada.

  2. Explicar claramente o que ela altera na estrutura do banco.

  3. Detalhar o impacto técnico (bloqueios exclusivos de metadados, dependências, irreversibilidade de DROP).

  4. Solicitar a confirmação direta do usuário para prosseguir.

SOMENTE após o usuário responder confirmando expressamente no chat, reexecute passando confirmed=True. Se houver múltiplos bancos no projeto e nenhum estiver ativo na sessão, pergunte antes ao usuário.

Input Schema

NameRequiredDescriptionDefault
ddlYes
db_aliasNo
confirmedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so richly: it discloses exclusive metadata locks, dependency effects, DROP irreversibility, commit semantics, and a double-confirmation protocol tied to the confirmed flag. This is exactly the behavioral context an agent needs for a destructive operation.

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

Conciseness4/5

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

Front-loaded with the purpose followed by the safety rule, and every step earns its place for a dangerous tool. Slightly verbose and repetitive in the safety section, but the structure is logical.

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 DDL mutation tool with no annotations and no output schema, the description covers safety, side effects, and the confirmation flow well. It does not describe the response/return shape or error behavior, though no output schema exists to offload that.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It explains the confirmed=True workflow explicitly and implies db_alias selection via the multi-database guidance; the ddl parameter is self-evident from the purpose. Minor gap: db_alias is not fully spelled out.

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 (executa) and resource (comandos estruturais DDL no Firebird), enumerating the exact operations (CREATE, ALTER, DROP, RECREATE) and noting the explicit commit. It clearly distinguishes itself from data-manipulation siblings like fb_execute_dml and fb_query.

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?

Provides an explicit mandatory workflow: enumerate the exact DDL, explain structural impact, detail locks/dependencies/irreversibility, request confirmation, and only then re-invoke with confirmed=True. It also dictates behavior when no database is active. The 'never without express authorization' clause is a clear when/when-not rule.

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