Liquibase Changelog MCP Server
OCI · GHCR.IO/LIQUIBASE/LIQUIBASE-MCP-CHANGELOG-SERVER:1.0.0 · SCANNED SEP 21
Convert natural language into validated Liquibase XML or SQL changesets. 19 tools, 12 databases.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security0
- Malware scan not yet available for this package.Unverified
- Known CVEs could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
- Install-script risk not yet assessed.Unverified
- Dependency health could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
Provenance & Transparency6
- Repository check failed: the declared repository URL returned HTTP 404. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: no license is declared. See how to fix → Fail
- Actively maintained (last published 104 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability63
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 9648 tokens (~321/item across 30 items; 30 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
- Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 11 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "drop_procedure" implies "drop" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 30 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities20
- Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28. See how to fix → Fail
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
How do I install the Liquibase Changelog MCP Server server?
Liquibase Changelog MCP Server runs locally as a container image, launched with docker run --rm -i ghcr.io/liquibase/liquibase-mcp-changelog-server:1.0.0. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.
oci · ghcr.io/liquibase/liquibase-mcp-changelog-server:1.0.0
claude mcp add liquibase-changelog-mcp-server -- docker run --rm -i ghcr.io/liquibase/liquibase-mcp-changelog-server:1.0.0
{
"mcpServers": {
"liquibase-changelog-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"ghcr.io/liquibase/liquibase-mcp-changelog-server:1.0.0"
]
}
}
} {
"servers": {
"liquibase-changelog-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"ghcr.io/liquibase/liquibase-mcp-changelog-server:1.0.0"
]
}
}
} codex mcp add liquibase-changelog-mcp-server -- docker run --rm -i ghcr.io/liquibase/liquibase-mcp-changelog-server:1.0.0
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"liquibase-changelog-mcp-server": {
"type": "local",
"command": [
"docker",
"run",
"--rm",
"-i",
"ghcr.io/liquibase/liquibase-mcp-changelog-server:1.0.0"
],
"enabled": true
}
}
} mcp_servers:
liquibase-changelog-mcp-server:
command: "docker"
args: ["run", "--rm", "-i", "ghcr.io/liquibase/liquibase-mcp-changelog-server:1.0.0"] {
"McpServers": {
"liquibase-changelog-mcp-server": {
"Transport": "stdio",
"Command": "docker",
"Arguments": [
"run",
"--rm",
"-i",
"ghcr.io/liquibase/liquibase-mcp-changelog-server:1.0.0"
]
}
}
} {
"mcpServers": {
"liquibase-changelog-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"ghcr.io/liquibase/liquibase-mcp-changelog-server:1.0.0"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 −3
- Stability: pass → 0.80 functional
- 17 Sept 26 +1
- Stability: 0.97 → pass security
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Sept 26 −3
- Stability: pass → 0.83 functional
- 11 Sept 26 +1
- Stability: 0.97 → pass security
- 9 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 21 Sept 2026 · Analysed oci/ghcr.io/liquibase/liquibase-mcp-changelog-server:1.0.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | oci |
| Reason | No attestation published |
Background: How many MCP packages publish verified provenance →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_check_constraint ~298
Generate a Liquibase Pro changeset for adding a CHECK constraint (pro:addCheckConstraint)
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| constraintBody | string | yes | The check condition expression (e.g. amount > 0) |
| constraintName | string | yes | Name of the check constraint |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| includeHeader | boolean | – | When false, omit the document wrapper. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
| tableName | string | yes | Name of the table to add the check constraint to |
No output schema declared.
No examples provided.
add_column ~291
Generate a Liquibase changeset for adding columns to an existing table
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| columns | array | yes | Columns to add |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
| tableName | string | yes | Name of the table |
No output schema declared.
No examples provided.
add_foreign_key ~487
Generate a Liquibase changeset for adding a foreign key constraint between two tables
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| baseColumnNames | string | yes | Comma-separated column name(s) in the base table that form the foreign key |
| baseTableCatalogName | string | – | Catalog name for the base table (optional) |
| baseTableName | string | yes | Name of the base (child) table holding the foreign key column(s) |
| baseTableSchemaName | string | – | Schema name for the base table (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| constraintName | string | yes | Name of the foreign key constraint |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| deferrable | boolean | – | Whether the foreign key is deferrable (optional) |
| includeHeader | boolean | – | When false, omit the document wrapper. Default: true. |
| initiallyDeferred | boolean | – | Whether the foreign key is initially deferred (optional) |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| onDelete | string | – | ON DELETE action: CASCADE, SET NULL, SET DEFAULT, RESTRICT, or NO ACTION (optional) |
| onUpdate | string | – | ON UPDATE action: CASCADE, SET NULL, SET DEFAULT, RESTRICT, or NO ACTION (optional) |
| referencedColumnNames | string | yes | Comma-separated column name(s) in the referenced table |
| referencedTableCatalogName | string | – | Catalog name for the referenced table (optional) |
| referencedTableName | string | yes | Name of the referenced (parent) table |
| referencedTableSchemaName | string | – | Schema name for the referenced table (optional) |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
No output schema declared.
No examples provided.
add_primary_key ~378
Generate a Liquibase changeset for adding a primary key constraint to an existing table
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| clustered | boolean | – | Whether the primary key index is clustered (SQL Server) |
| columnNames | string | yes | Comma-separated column name(s) that form the primary key (e.g. "id" or "tenant_id, id") |
| constraintName | string | – | Name for the primary key constraint (optional but strongly recommended) |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
| tableName | string | yes | Name of the table to add the primary key to |
| tablespace | string | – | Tablespace / file group (optional; MSSQL) |
No output schema declared.
No examples provided.
add_unique_constraint ~386
Generate a Liquibase changeset for adding a unique constraint on one or more columns
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| clustered | boolean | – | Whether the backing index is clustered (SQL Server) |
| columnNames | string | yes | Comma-separated column name(s) that form the unique constraint |
| constraintName | string | yes | Name of the unique constraint |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| deferrable | boolean | – | Whether the unique constraint is deferrable (optional) |
| disabled | boolean | – | Whether the unique constraint is created in a disabled state (optional) |
| includeHeader | boolean | – | When false, omit the document wrapper. Default: true. |
| initiallyDeferred | boolean | – | Whether the unique constraint is initially deferred (optional) |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
| tableName | string | yes | Name of the table to add the unique constraint to |
| tablespace | string | – | Tablespace / file group (optional; MSSQL) |
No output schema declared.
No examples provided.
create_function ~382
Generate a Liquibase Pro changeset for creating a stored function (pro:createFunction)
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| externalFilePath | string | – | Path to an external .sql file containing the function body (XML mode only). When provided, generates path= attribute instead of inline SQL. Either functionBody or externalFilePath is required. |
| functionBody | string | – | SQL body of the function (e.g. CREATE FUNCTION ...). Required unless externalFilePath is provided. |
| functionName | string | yes | Name of the function to create |
| includeHeader | boolean | – | When false, omit the document wrapper. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| relativeToChangelogFile | boolean | – | When externalFilePath is set, whether the path is relative to the changelog file (default true) |
| replaceIfExists | boolean | – | Whether to replace the function if it already exists |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
No output schema declared.
No examples provided.
create_index ~342
Generate a Liquibase changeset for creating an index
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| clustered | boolean | – | Whether the index is clustered (SQL Server). When true, generates clustered="true" on the XML element. |
| columns | array | yes | Column names to include in index |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| indexName | string | yes | Name of the index |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
| tableName | string | yes | Name of the table |
| unique | boolean | – | Whether index is unique |
No output schema declared.
No examples provided.
create_procedure ~404
Generate a Liquibase changeset for creating a stored procedure
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| externalFilePath | string | – | Path to an external .sql file containing the procedure body (XML mode only). When provided, generates path= attribute instead of inline SQL. Either procedureText or externalFilePath is required. |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| procedureName | string | – | Name of the procedure (optional, can be extracted from SQL) |
| procedureText | string | – | SQL text of the procedure to create. Required unless externalFilePath is provided. |
| relativeToChangelogFile | boolean | – | When externalFilePath is set, whether the path is relative to the changelog file (default true) |
| replaceIfExists | boolean | – | Whether to replace procedure if it exists |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
No output schema declared.
No examples provided.
create_sequence ~419
Generate Liquibase XML changeset for creating a database sequence
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| cacheSize | integer | – | Number of sequence values to cache (optional) |
| catalogName | string | – | Catalog name containing the sequence (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| cycle | boolean | – | Whether the sequence should cycle when it reaches max/min value |
| dataType | string | – | Data type for the sequence (optional, e.g., BIGINT) |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| incrementBy | integer | – | Increment value for the sequence (optional, default 1) |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| maxValue | integer | – | Maximum value for the sequence (optional) |
| minValue | integer | – | Minimum value for the sequence (optional) |
| ordered | boolean | – | Whether sequence values should be ordered |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name containing the sequence (optional) |
| sequenceName | string | yes | Name of the sequence to create |
| startValue | integer | – | Starting value for the sequence (optional) |
No output schema declared.
No examples provided.
create_table ~317
Generate a Liquibase changeset for creating a new table
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| columns | array | yes | Array of column definitions |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| remarks | string | – | Table remarks/comments (optional) |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
| tableName | string | yes | Name of the table to create |
| tablespace | string | – | Tablespace name (optional) |
No output schema declared.
No examples provided.
create_trigger ~370
Generate a Liquibase Pro changeset for creating a database trigger (pro:createTrigger)
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| externalFilePath | string | – | Path to an external .sql file containing the trigger body (XML mode only). Either triggerBody or externalFilePath is required. |
| includeHeader | boolean | – | When false, omit the document wrapper. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| relativeToChangelogFile | boolean | – | When externalFilePath is set, whether the path is relative to the changelog file (default true) |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
| tableName | string | yes | Name of the table the trigger is associated with |
| triggerBody | string | – | SQL body of the trigger (e.g. CREATE TRIGGER ...). Required unless externalFilePath is provided. |
| triggerName | string | yes | Name of the trigger to create |
No output schema declared.
No examples provided.
create_view ~419
Generate Liquibase XML changeset for creating a database view
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name containing the view (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| externalFilePath | string | – | Path to an external .sql file containing the view SELECT query (XML mode only). When provided, generates path= attribute instead of inline SQL. Either selectQuery or externalFilePath is required. |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| relativeToChangelogFile | boolean | – | When externalFilePath is set, whether the path is relative to the changelog file (default true) |
| remarks | string | – | Comments about the view (optional) |
| replaceIfExists | boolean | – | Whether to replace the view if it already exists |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name containing the view (optional) |
| selectQuery | string | – | SQL SELECT query that defines the view. Required unless externalFilePath is provided. |
| viewName | string | yes | Name of the view to create |
No output schema declared.
No examples provided.
drop_column ~291
Generate a Liquibase changeset for dropping columns from an existing table
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| columns | array | yes | Columns to drop |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
| tableName | string | yes | Name of the table |
No output schema declared.
No examples provided.
drop_foreign_key ~293
Generate a Liquibase changeset for dropping a foreign key constraint
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| baseTableCatalogName | string | – | Catalog name for the base table (optional) |
| baseTableName | string | yes | Name of the base (child) table the constraint was added to |
| baseTableSchemaName | string | – | Schema name for the base table (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| constraintName | string | yes | Name of the foreign key constraint to drop |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| includeHeader | boolean | – | When false, omit the document wrapper. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
No output schema declared.
No examples provided.
drop_function ~260
Generate a Liquibase Pro changeset for dropping a stored function (pro:dropFunction)
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| functionName | string | yes | Name of the function to drop |
| includeHeader | boolean | – | When false, omit the document wrapper. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
No output schema declared.
No examples provided.
drop_index ~292
Generate a Liquibase changeset for dropping an index
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| indexName | string | yes | Name of the index to drop |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
| tableName | string | yes | Name of the table |
No output schema declared.
No examples provided.
drop_primary_key ~308
Generate a Liquibase changeset for dropping a primary key constraint from an existing table
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| constraintName | string | – | Name of the primary key constraint to drop (optional on some databases, required on others) |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| dropIndex | boolean | – | Whether to drop the index backing the primary key (optional) |
| includeHeader | boolean | – | When false, omit the document wrapper. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
| tableName | string | yes | Name of the table to drop the primary key from |
No output schema declared.
No examples provided.
drop_procedure ~282
Generate a Liquibase changeset for dropping a stored procedure
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| procedureName | string | yes | Name of the procedure to drop |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
No output schema declared.
No examples provided.
drop_sequence ~287
Generate Liquibase XML changeset for dropping a database sequence
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name containing the sequence (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name containing the sequence (optional) |
| sequenceName | string | yes | Name of the sequence to drop |
No output schema declared.
No examples provided.
drop_table ~280
Generate a Liquibase changeset for dropping a table
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
| tableName | string | yes | Name of the table to drop |
No output schema declared.
No examples provided.
drop_trigger ~277
Generate a Liquibase Pro changeset for dropping a database trigger (pro:dropTrigger)
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| includeHeader | boolean | – | When false, omit the document wrapper. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
| tableName | string | yes | Name of the table the trigger is associated with |
| triggerName | string | yes | Name of the trigger to drop |
No output schema declared.
No examples provided.
drop_unique_constraint ~304
Generate a Liquibase changeset for dropping a unique constraint
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| constraintName | string | yes | Name of the unique constraint to drop |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| includeHeader | boolean | – | When false, omit the document wrapper. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
| tableName | string | yes | Name of the table the unique constraint was added to |
| uniqueColumns | string | – | Comma-separated column name(s) (optional; used by databases that identify uniques by columns rather than constraint name) |
No output schema declared.
No examples provided.
drop_view ~332
Generate Liquibase XML changeset for dropping a database view
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name containing the view (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| ifExists | boolean | – | When true, generate DROP VIEW IF EXISTS so deploy is a no-op if the view is already gone. Supported on PostgreSQL, H2, MariaDB (not Oracle/Firebird). |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name containing the view (optional) |
| viewName | string | yes | Name of the view to drop |
No output schema declared.
No examples provided.
modify_column ~297
Generate a Liquibase changeset for modifying column data type
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| columns | array | yes | Columns to modify (only one column supported per changeset) |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
| tableName | string | yes | Name of the table |
No output schema declared.
No examples provided.
rename_column ~342
Generate a Liquibase changeset for renaming a column
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| columnDataType | string | – | Column data type (optional, for type safety) |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| newColumnName | string | yes | New name for the column |
| oldColumnName | string | yes | Current name of the column to rename |
| remarks | string | – | Column remarks/comments (optional) |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
| tableName | string | yes | Name of the table containing the column |
No output schema declared.
No examples provided.
rename_sequence ~304
Generate Liquibase XML changeset for renaming a database sequence
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name containing the sequence (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| newSequenceName | string | yes | New name for the sequence |
| oldSequenceName | string | yes | Current name of the sequence to rename |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name containing the sequence (optional) |
No output schema declared.
No examples provided.
rename_table ~297
Generate a Liquibase changeset for renaming a table
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| catalogName | string | – | Catalog name (optional) |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| newTableName | string | yes | New name for the table |
| oldTableName | string | yes | Current name of the table to rename |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| schemaName | string | – | Schema name (optional) |
No output schema declared.
No examples provided.
sql ~313
Generate Liquibase XML changeset for executing raw SQL statements
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| dbms | string | – | Database-specific execution |
| endDelimiter | string | – | Custom statement delimiter (default ;) |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| splitStatements | boolean | – | Whether to split on delimiters (default true) |
| sql | string | yes | The SQL statement(s) to execute |
| stripComments | boolean | – | Whether to strip SQL comments (default true) |
No output schema declared.
No examples provided.
sql_file ~346
Generate Liquibase XML changeset for executing SQL from external files
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Changeset author (optional, defaults to 'liquibase-mcp'). Overrides the default author in the generated changeset. |
| changesetId | string | – | Explicit changeset ID (optional, defaults to a timestamp-based generated ID). Must be unique within the changelog. |
| context | string | – | Changeset context expression for environment targeting (e.g. 'production', 'dev,test'). Liquibase will only execute this changeset when the specified context is active. |
| dbms | string | – | Database-specific execution |
| encoding | string | – | File encoding (default UTF-8) |
| endDelimiter | string | – | Custom statement delimiter (default ;) |
| includeHeader | boolean | – | When false, omit the document wrapper (XML declaration + root element, or --liquibase formatted sql header). Set to false when appending to an existing changelog. Default: true. |
| labels | string | – | Changeset labels for release management (e.g. 'v2.0', 'release-1.0'). Used to select changesets to run via --label-filter. |
| path | string | yes | Path to the SQL file |
| relativeToChangelogFile | boolean | – | Path relative to changelog (default false) |
| runOnChange | boolean | – | When true, Liquibase re-executes this changeset whenever its content changes (default false). Useful for views and stored procedures. |
| splitStatements | boolean | – | Whether to split on delimiters (default true) |
| stripComments | boolean | – | Whether to strip SQL comments (default true) |
No output schema declared.
No examples provided.
validate ~50
Validate a Liquibase changeset (XML or Formatted SQL) against an in-memory H2 database
| Name | Type | Req | Description |
|---|---|---|---|
| changesetXml | string | yes | Liquibase changeset (XML or Formatted SQL) to validate |
No output schema declared.
No examples provided.
What is the Liquibase Changelog MCP Server server?
Liquibase Changelog MCP Server is listed in the public MCP registry as io.github.liquibase/changelog-mcp-server. Convert natural language into validated Liquibase XML or SQL changesets. 19 tools, 12 databases. This page covers its container image (ghcr.io/liquibase/liquibase-mcp-changelog-server:1.0.0).
Is the Liquibase Changelog MCP Server server safe to use?
Liquibase Changelog MCP Server scores 38 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Liquibase Changelog MCP Server server expose?
Liquibase Changelog MCP Server exposes 30 tools: add_foreign_key, add_column, rename_column, drop_procedure, drop_table, and 25 more. Their descriptions and schemas cost roughly 9,648 tokens of context every time the server is loaded.
Is the Liquibase Changelog MCP Server server still maintained?
Liquibase Changelog MCP Server is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.