Sign inSign up

liquibase/liquibase-mcp-changelog-server

By liquibase

Updated 3 months ago

Liquibase Changelog MCP Server — convert natural language to Liquibase changesets

Image
0

421

liquibase/liquibase-mcp-changelog-server repository overview

Liquibase Changelog MCP Server

A Model Context Protocol (MCP) server that converts natural language descriptions into valid Liquibase XML changesets or Formatted SQL for database schema operations. It runs locally over STDIO transport and uses Liquibase's native Java APIs to generate accurate, validated changesets.

📦 This page covers Docker usage. For full documentation — architecture, the complete tools reference, examples, and non-Docker installation — see the Liquibase documentation site.

⚠️ License Required

This server requires a valid Liquibase Pro license to operate. It validates the license on startup and exits with an error if none is found. Provide your key at runtime via the LIQUIBASE_LICENSE_KEY environment variable.

🏷️ Supported Tags

  • latest — the most recent stable release
  • 1.0.0, 1.0.1, … — specific pinned versions
docker pull liquibase/liquibase-mcp-changelog-server:latest
docker pull liquibase/liquibase-mcp-changelog-server:1.0.0

🚀 Quick Start

docker run -i --rm \
  -e LIQUIBASE_LICENSE_KEY="your-license-key-here" \
  liquibase/liquibase-mcp-changelog-server:latest

The -i flag is required — the server communicates over STDIO (stdin/stdout). All logging goes to stderr; stdout is reserved for the MCP protocol.

Security note: Passing secrets via -e can expose them in shell history and docker inspect output. For repeated use, prefer --env-file:

echo "LIQUIBASE_LICENSE_KEY=your-license-key-here" > .env
docker run -i --rm --env-file .env liquibase/liquibase-mcp-changelog-server:latest

🔌 MCP Client Integration

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "liquibase-changelog": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "LIQUIBASE_LICENSE_KEY=your-license-key-here",
        "liquibase/liquibase-mcp-changelog-server:latest"
      ]
    }
  }
}
VS Code

Add to your .vscode/mcp.json:

{
  "servers": {
    "liquibase-changelog": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "LIQUIBASE_LICENSE_KEY=your-license-key-here",
        "liquibase/liquibase-mcp-changelog-server:latest"
      ]
    }
  }
}
With Formatted SQL output

Pass additional environment variables to switch output format and target dialect:

{
  "mcpServers": {
    "liquibase-changelog": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "LIQUIBASE_LICENSE_KEY=your-license-key-here",
        "-e", "LIQUIBASE_MCP_OUTPUT_FORMAT=formatted-sql",
        "-e", "LIQUIBASE_MCP_SQL_DATABASE=postgresql",
        "liquibase/liquibase-mcp-changelog-server:latest"
      ]
    }
  }
}
Docker Desktop MCP Toolkit
docker mcp profile server add default \
  --server docker://liquibase/liquibase-mcp-changelog-server:latest

⚙️ Configuration

VariableValuesDefaultDescription
LIQUIBASE_LICENSE_KEY(required)Liquibase Pro license key
LIQUIBASE_MCP_OUTPUT_FORMATxml, formatted-sql, sqlxmlOutput format for generated changesets
LIQUIBASE_MCP_SQL_DATABASEDatabase type (see below)postgresqlTarget database for Formatted SQL generation
LIQUIBASE_MCP_DISABLE_VALIDATIONtrue, falsefalseSkip H2 validation for performance
LIQUIBASE_MCP_INCLUDE_ROLLBACKtrue, falsefalseGenerate explicit rollback blocks in the generated changeset

Supported databases: PostgreSQL, MySQL, MariaDB, H2, Oracle, MSSQL, DB2, Sybase, SQLite, HSQLDB, Derby, Firebird (12 dialects, via Liquibase 5.0.2's database abstraction layer).

🔧 What It Can Do

Thirty tools that generate and validate changesets for database schema operations:

  • Tables: create, drop, rename
  • Columns: add, drop, modify, rename
  • Indexes: create, drop
  • Views: create, drop
  • Procedures (Pro): create, drop
  • Functions (Pro): create, drop
  • Triggers (Pro): create, drop
  • Sequences: create, drop, rename
  • Constraints: check (Pro), primary key, foreign key, unique (add/drop)
  • SQL: raw statements and SQL files
  • Validation: validate a changeset against an in-memory H2 database

Generated changesets are automatically validated against an in-memory H2 database before being returned (configurable).

📚 Full Documentation

For the complete tools reference, architecture, integration guides, examples, and non-Docker installation options (Maven Central, JBang, pre-built JAR), see the Liquibase documentation site.

🆘 Support

Tag summary

Content type

Image

Digest

sha256:8d8a4b3d0

Size

116.2 MB

Last updated

3 months ago

docker pull liquibase/liquibase-mcp-changelog-server