Skip to main content
Glama

Validate changelog (structured)

liquibase_validate
Read-only

Validates Liquibase changelogs and returns compact structured pass/fail results with per-changeset errors such as duplicate IDs and checksum drift.

Instructions

Validate a Liquibase changelog and return a structured pass/fail result with per-changeset errors (duplicate ids, checksum drift). Much more compact than raw output. liquibase is on PATH — no mise/wrapper needed.

Input Schema

NameRequiredDescriptionDefault
cwdNoDirectory to run liquibase in (where the defaults file / changelog live).
labelsNoLabel expression to filter changesets (--labels).
contextsNoContext expression to filter changesets (--contexts).
extraArgsNoAdditional raw arguments appended to the liquibase invocation.
defaultsFileNoPath to the Liquibase defaults file (--defaults-file), e.g. db-dev.properties. Usually carries the JDBC URL, credentials, and changelog path.
changelogFileNoChangelog path (--changelog-file); usually set in the defaults file instead.

Output Schema

NameRequiredDescriptionDefault
validYes
errorsYes
retainedNo
errorCountYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv5.0.1

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, and the description is consistent with a read-only validation. It adds genuine context beyond annotations: the result is structured and 'much more compact than raw output', and it enumerates the error categories surfaced (duplicate ids, checksum drift). It stops short of saying whether a failing validation is reported as an error result vs a payload.

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, front-loaded with the action and result shape, then the output-format benefit, then the environment prerequisite. Nothing is padded and each sentence carries information an agent would otherwise have to discover.

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?

Output schema exists, so return values need not be explained, and annotations cover the safety profile; the description still adds the error taxonomy and compactness rationale. It is essentially complete, with only the missing sibling routing as a 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 six parameters (cwd, labels, contexts, extraArgs, defaultsFile, changelogFile) are already documented in the schema. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

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

Purpose4/5

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

Specific verb+resource: 'Validate a Liquibase changelog' with a stated output shape (structured pass/fail with per-changeset errors). It distinguishes itself by output format and names the concrete failure classes (duplicate ids, checksum drift), but does not name siblings like liquibase_status or liquibase_update_sql to disambiguate.

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 — validate when you want a pass/fail check — but the description never says when to use this instead of liquibase_status or liquibase_update_sql, nor any prerequisite/exclusion conditions. The 'liquibase is on PATH' note is an environment fact, not usage guidance.

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