Skip to main content
Glama

Bytebase: create a SQL change plan

bytebase_create_plan

Draft a SQL change plan for a database without executing it. Creates a Sheet and Plan for human review and approval, enabling safe write SQL changes.

Instructions

Draft a titled SQL change plan against one database: creates a Sheet (the SQL text) and a Plan (the proposal) in Bytebase. This does NOT open an Issue and does NOT run the SQL — a plan only becomes executable after a human opens it in the Bytebase UI, submits it for review, and it is approved, at which point Bytebase creates the rollout automatically. Available even when BYTEBASE_ALLOW_WRITE is unset, since nothing runs until a human approves it — this is the safe route for write SQL that bytebase_query blocks in read-only mode.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYesPlan title, shown in the Bytebase Plans list.
databaseYesDatabase reference, e.g. "prod/aurora-prod/salla".
statementYesThe SQL to run.
descriptionNoLonger explanation of the change.
priorBackupNoAsk Bytebase to back up affected rows automatically before the change runs (default false).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description carries full burden. It clearly discloses the behavioral lifecycle: only a draft is created, SQL is not executed, execution requires human review and approval, and Bytebase then creates the rollout automatically. It also notes the safety property regarding BYTEBASE_ALLOW_WRITE, adding context 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?

Three sentences, each delivering essential information: what is created, what is not done, and when it is safe to use. No padding or repetition; every clause 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 mutation tool with no annotations and no output schema, the description covers all critical missing context: the side-effect absence, the exact human-backed workflow, and the environmental allow-write condition. An agent can safely invoke this tool with only the schema and this description.

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 the conceptual mapping of statement to Sheet and the notion of a Plan as a proposal, which enriches what the schema alone provides. Although it does not elaborate on title, description, or priorBackup, it gives useful domain context for the other 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 states exactly what the tool does: it creates a Sheet (SQL text) and a Plan (proposal) for one database. It also explicitly says it does NOT open an Issue or run the SQL, which distinguishes it from bytebase_query, bytebase_submit_plan_for_review, and issue-related tools.

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 explicit guidance on when to use this tool: for writing SQL when bytebase_query is blocked in read-only mode, and safe to use even with BYTEBASE_ALLOW_WRITE unset because nothing executes until human approval. It identifies the alternative (bytebase_query) and the condition that makes this tool the right choice.

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