Available Change Types in the Liquibase Changelog MCP Server

Last updated: October 30, 2025

The MCP Server is currently in early access, and we're actively seeking customer feedback to help shape its development. If you would like to learn more about this feature, please contact us here.

This document covers the available Change Types in the Liquibase Changelog MCP Server for creating XML changelogs. Note: The Change Type syntax within Liquibase uses camel casing, but the MCP Server Change Type tools use snake casing. Each MCP server tool utilizes the same functionality as the Change Type it is linked to. camel case example: createTable snake case example: create_table

create_table

Generate a Liquibase changeset for creating a new table.

Natural language input example:

Create a users table with id (primary key, auto-increment), username (varchar 50, unique), and email (varchar 255, not null)

Parameters:

Parameter

Description

tableName

(required)

Name of the table to create

columns

(required)

Array of column definitions

schemaName

(optional)

Schema name

catalogName

(optional)

Catalog name

tablespace

(optional)

Tablespace name

remarks

(optional)

Table comments

Column Definition:

Parameter

Description

name

(required)

Column name

type

(required)

Column type (e.g., "varchar(255)", "integer")

constraints

(optional)

Column constraints object

defaultValue

(optional)

Default string value

defaultValueNumeric

(optional)

Default numeric value

defaultValueBoolean

(optional)

Default boolean value

defaultValueDate

(optional)

Default date value

defaultValueComputed

(optional)

Computed default value

autoIncrement

(optional)

Auto-increment flag

startWith

(optional)

Auto-increment start value

incrementBy

(optional)

Auto-increment step

remarks

(optional)

Column comments

Constraints Object:

Parameter

Description

primaryKey

(optional)

Primary key flag

nullable

(optional)

Nullable flag

unique

(optional)

Unique constraint flag

uniqueConstraintName

(optional)

Unique constraint name

references

(optional)

Foreign key reference (format: "table.column")

foreignKeyName

(optional)

Foreign key constraint name

deleteCascade

(optional)

Delete cascade flag

deferrable

(optional)

Deferrable constraint flag

initiallyDeferred

(optional)

Initially deferred flag

add_column

Natural language input example:

Add a created_at timestamp column to the users table

Parameters:

Parameter

Description

tableName

(required)

Name of the existing table

columns

(required)

Array of column definitions to add

schemaName

(optional)

Schema name

catalogName

(optional)

Catalog name

Additional Column Properties:

Parameter

Description

position

(optional)

Position directive ("FIRST" or "AFTER column_name")

afterColumn

(optional)

Column after which to add this column

beforeColumn

(optional)

Column before which to add this column

create_index

Generate a Liquibase changeset for creating an index.

Natural language input example:

Create a unique index on username column of users table

Parameters:

Parameter

Description

indexName

(required)

Name of the index

tableName

(required)

Name of the table

columns

(required)

Array of column names to include in index

schemaName

(optional)

Schema name

catalogName

(optional)

Catalog name

unique

(optional)

Whether index should be unique

tablespace

(optional)

Tablespace name

drop_table

Generate a Liquibase changeset for dropping a table.

Natural language input example:

Drop the old_users table

Parameters:

Parameter

Description

tableName

(required)

Name of the table to drop

schemaName

(optional)

Schema name

catalogName

(optional)

Catalog name

cascadeConstraints

(optional)

Whether to cascade constraints

drop_column

Generate a Liquibase changeset for removing columns from an existing table.

Natural language input example:

Drop the temporary_column and old_status columns from the users table

Parameters:

Parameter

Description

tableName

(required)

Name of the existing table

columns

(required)

Array of column names to drop

schemaName

(optional)

Schema name

catalogName

(optional)

Catalog name

modify_column

Generate a Liquibase changeset for modifying existing column definitions.

Natural language input example:

Change the email column in users table from varchar(100) to varchar(255)

Parameters:

Parameter

Description

tableName

(required)

Name of the existing table

columns

(required)

Array of column modifications (only one column supported per changeset)

schemaName

(optional)

Schema name

catalogName

(optional)

Catalog name

Column Modification Properties:

Property

Description

name

(required)

Column name to modify

newDataType

(required)

New data type for the column

rename_column

Generate a Liquibase changeset for renaming a column.

Natural language input example:

Rename the user_name column to full_name in the users table

Parameters:

Parameter

Description

tableName

(required)

Name of the table containing the column

oldColumnName

(required)

Current name of the column to rename

newColumnName

(required)

New name for the column

schemaName

(optional)

Schema name

catalogName

(optional)

Catalog name

columnDataType

(optional)

Column data type (for type safety)

remarks

(optional)

Column remarks/comments

Create_view

Generate a Liquibase changeset for creating a database view.

Natural language input example:

Create a view called active_users that shows all users with status 'active'

Parameters:

Parameter

Description

viewName

(required)

Name of the view to create

selectQuery

(required)

SQL SELECT query that defines the view

schemaName

(optional)

Schema name containing the view

catalogName

(optional)

Catalog name containing the view

replaceIfExists

(optional)

Whether to replace the view if it already exists

remarks

(optional)

Comments about the view

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
  xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
                   http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.33.xsd">
  <changeSet id="1" author="mcp-server">
    <comment>creating view active_users</comment>
    <createView viewName="active_users">
      SELECT id, username, email FROM users WHERE status = 'active'
    </createView>
  </changeSet>
</databaseChangeLog>

drop_view

Generate a Liquibase changeset for dropping a database view.

Natural language input example:

Drop the active_users view

Parameters:

Parameter

Description

viewName

(required)

Name of the view to drop

schemaName

(optional)

Schema name containing the view

catalogName

(optional)

Catalog name containing the view

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
  xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
                   http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.33.xsd">
  <changeSet id="1" author="mcp-server">
    <comment>dropping view active_users</comment>
    <dropView viewName="active_users"/>
  </changeSet>
</databaseChangeLog>

drop_index

Generate a Liquibase changeset for removing an index.

Natural language input example:

Drop the idx_users_email index from the users table

Parameters:

Parameter

Description

indexName

(required)

Name of the index to drop

tableName

(required)

Name of the table containing the index

schemaName

(optional)

Schema name

catalogName

(optional)

Catalog name

rename_table

Generate a Liquibase changeset for renaming a table.

Natural language input example:

Rename the users table to customers

Parameters:

Parameter

Description

oldTableName

(required)

Current name of the table to rename

newTableName

(required)

New name for the table

schemaName

(optional)

Schema name

catalogName

(optional)

Catalog name

create_procedure

Generate a Liquibase changeset for creating a stored procedure.

Natural language input example:

Create a stored procedure to get user by ID: CREATE PROCEDURE GetUserById(@Id INT) AS SELECT * FROM users WHERE id = @Id

Parameters:

Parameter

Description

procedureText

(required)

SQL text of the procedure to create

procedureName

(optional)

Name of the procedure (can be extracted from SQL)

schemaName

(optional)

Schema name

catalogName

(optional)

Catalog name

replaceIfExists

(optional)

Whether to replace procedure if it exists

drop_procedure

Generate a Liquibase changeset for dropping a stored procedure.

Natural language input example:

Drop the GetUserById stored procedure

Parameters:

Parameter

Description

procedureName

(required)

Name of the procedure to drop

schemaName

(optional)

Schema name

catalogName

(optional)

Catalog name

create_sequence

Generate a Liquibase changeset for creating a database sequence.

Natural language input example:

Create a user_id_seq sequence starting at 1000 with increment 1

Parameters:

Parameter

Description

sequenceName

(required)

Name of the sequence to create

schemaName

(optional)

Schema name containing the sequence

catalogName

(optional)

Catalog name containing the sequence

startValue

(optional)

Starting value for the sequence

incrementBy

(optional)

Increment value for the sequence (default 1)

minValue

(optional)

Minimum value for the sequence

maxValue

(optional)

Maximum value for the sequence

cycle

(optional)

Whether the sequence should cycle when it reaches max/min value

cacheSize

(optional)

Number of sequence values to cache

ordered

(optional)

Whether sequence values should be ordered

dataType

(optional)

Data type for the sequence (e.g., BIGINT)

createSequence generated XML:
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
  xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
                   http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.33.xsd">
  <changeSet id="1" author="liquibase-mcp">
    <comment>creating sequence user_id_seq</comment>
    <createSequence sequenceName="user_id_seq" startValue="1000" incrementBy="1"/>
  </changeSet>
</databaseChangeLog>

drop_sequence

Generate a Liquibase changeset for dropping a database sequence.

Natural language input example:

Drop the user_id_seq sequence

Parameters:

Parameter

Description

sequenceName

(required)

Name of the sequence to drop

schemaName

(optional)

Schema name containing the sequence

catalogName

(optional)

Catalog name containing the sequence

dropSequence generated XML
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
  xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
                   http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.33.xsd">
  <changeSet id="1" author="liquibase-mcp">
    <comment>dropping sequence user_id_seq</comment>
    <dropSequence sequenceName="user_id_seq"/>
  </changeSet>
</databaseChangeLog>

rename_sequence

Generate a Liquibase changeset for renaming a database sequence.

Natural language input example:

Rename the user_id_seq sequence to customer_id_seq

Parameters:

Parameter

Description

oldSequenceName

(required)

Current name of the sequence to rename

newSequenceName

(required)

New name for the sequence

schemaName

(optional)

Schema name containing the sequence

catalogName

(optional)

Catalog name containing the sequence

renameSequence generated XML
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
  xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
                   http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.33.xsd">
  <changeSet id="1" author="liquibase-mcp">
    <comment>renaming sequence user_id_seq to customer_id_seq</comment>
    <renameSequence oldSequenceName="user_id_seq" newSequenceName="customer_id_seq"/>
    <rollback>
      <renameSequence oldSequenceName="customer_id_seq" newSequenceName="user_id_seq"/>
    </rollback>
  </changeSet>
</databaseChangeLog>

validate

Validate a Liquibase changeset XML against an H2 in-memory database to ensure it's syntactically correct and can be applied successfully.

Note: This tool can be used independently to validate any Liquibase changeset XML. All other tools automatically include validation in their output by default (configurable via LIQUIBASE_MCP_DISABLE_VALIDATIONenvironment variable).

Natural language input example:

Validate this changeset XML: <changeSet id="1" author="dev">...</changeSet>

Parameters:

Parameter

Description

Validate this changeset XML

<changeSet id="1" author="dev">...</changeSet>

sql

Execute raw SQL statements with full parameter control.

Natural language input example:

Execute SQL: INSERT INTO users (username, email) VALUES ('admin', 'admin@example.com') with splitStatements enabled

Parameters:

Parameter

Description

sql

(required)

The SQL statement(s) to execute

endDelimiter

(optional)

Custom statement delimiter (default ;)

splitStatements

(optional)

Whether to split on delimiters (default true)

stripComments

(optional)

Whether to strip SQL comments (default true)

dbms

(optional)

Database-specific execution (e.g.,

mysql, postgresql, oracle)

SQL Generated XML
<changeSet id="1234567890-1" author="liquibase-mcp">
  <sql splitStatements="true" stripComments="true">
        INSERT INTO users (username, email) VALUES ('admin', 'admin@example.com')
    </sql>
</changeSet>

sql_file

Execute SQL from external files with path and encoding options.

Natural language input example:

Execute SQL from file: db/migrations/seed_data.sql with UTF-8 encoding relative to changelog

Parameters:

Parameter

Description

path

(required)

Path to the SQL file

relativeToChangelogFile

(optional)

Path relative to changelog (default false)

encoding

(optional)

File encoding (default UTF-8)

endDelimiter

(optional)

Custom statement delimiter (default ;)

splitStatements

(optional)

Whether to split on delimiters (default true)

stripComments

(optional)

Whether to strip SQL comments (default true)

dbms

(optional)

Database-specific execution

SQLfile generated XML
<changeSet id="1234567890-1" author="liquibase-mcp">
  <sqlFile path="db/migrations/seed_data.sql"
             encoding="UTF-8"
             relativeToChangelogFile="true"
             splitStatements="true"
             stripComments="true"/>
</changeSet>

Output Format

All schema generation tools (create_table, add_column, etc.) return Liquibase XML changesets wrapped in markdown code blocks, followed by automatic validation results:

Output format example
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
  xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
                   http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.0.xsd">
  <changeSet id="1234567890-1" author="liquibase-mcp">
    <!-- Generated changes here -->
  </changeSet>
</databaseChangeLog>
Available tools in the Liquibase Changelog MCP Server - Liquibase