Liquibase Changelog MCP Server
OCI · GHCR.IO/LIQUIBASE/LIQUIBASE-MCP-CHANGELOG-SERVER:1.0.0
Convert natural language into validated Liquibase XML or SQL changesets. 19 tools, 12 databases.
Available components
Last scanned (6 hours ago)
Scores higher than 37% of OCI servers
Category Databases
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
- No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
- Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
- Install-script risk not yet assessed.Unverified
- Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.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 150 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 Management80
- Stability observed for 24 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.
Checks we ran (11)
- Source repository
- Provenance
- License
- Maintenance
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
Checks we could not complete (5)
These are gaps on our side, not findings about this package. We only credit what we can confirm, so a category made up entirely of them scores 0.
- Malware scan in Supply Chain Security (scores 0 for this)No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
- Known CVEs in Supply Chain Security (scores 0 for this)Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.
- Install scripts in Supply Chain Security (scores 0 for this)Install-script risk not yet assessed.
- Dependency health in Supply Chain Security (scores 0 for this)Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.
- Security disclosure in Provenance & TransparencySecurity-disclosure policy not yet verified: we couldn't inspect the source repository.
Does not apply to this package (2)
- Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
- Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
The score does not measure everything. What the score does not measure →
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.
- 6 Nov 26 −3
- Stability: pass → 0.80 functional
- 22 Oct 26 +1
- Stability: 0.97 → pass security
- 21 Oct 26 −1
- Stability: pass → 0.97 functional
- 17 Oct 26 +3
- Stability: 0.80 → pass security
- 16 Oct 26 −3
- Stability: pass → 0.80 functional
- 15 Oct 26 +1
- Stability: 0.97 → pass security
- 13 Oct 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.
- 12 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 90. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 27 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 6 Nov 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.
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 -e LIQUIBASE_LICENSE_KEY -e LIQUIBASE_MCP_OUTPUT_FORMAT -e LIQUIBASE_MCP_SQL_DATABASE -e LIQUIBASE_MCP_DISABLE_VALIDATION -e LIQUIBASE_MCP_INCLUDE_ROLLBACK 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 -e LIQUIBASE_LICENSE_KEY -e LIQUIBASE_MCP_OUTPUT_FORMAT -e LIQUIBASE_MCP_SQL_DATABASE -e LIQUIBASE_MCP_DISABLE_VALIDATION -e LIQUIBASE_MCP_INCLUDE_ROLLBACK ghcr.io/liquibase/liquibase-mcp-changelog-server:1.0.0
This image reads LIQUIBASE_LICENSE_KEY, LIQUIBASE_MCP_OUTPUT_FORMAT, LIQUIBASE_MCP_SQL_DATABASE, LIQUIBASE_MCP_DISABLE_VALIDATION and LIQUIBASE_MCP_INCLUDE_ROLLBACK. Set them in your client's env block for this server; docker run -e passes each one through to the container.
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 37 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 6 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What did VerifyMCP test on the Liquibase Changelog MCP Server server?
VerifyMCP ran 11 checks on Liquibase Changelog MCP Server, covering Source repository, Provenance, License, Maintenance and 7 more. 5 items could not be completed, a gap on our side rather than a finding about Liquibase Changelog MCP Server: Malware scan, Known CVEs, Install scripts, Dependency health and 1 more. One category scores 0 for that reason, because we only credit what we can confirm. Endpoint Security and Transport & Reachability do not apply to a container image, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.