@mhdd_24/flyway-mcp
MCP server that runs Flyway repair + migrate across multiple database projects for QA or Development environments.
README
@mhdd_24/flyway-mcp
MCP server that runs Flyway repair + migrate across multiple database projects for QA or Development environments. Use it from Cursor, Claude Desktop, VS Code Copilot, or any MCP-compatible client.
Say "QA Flyway Migration" or "Dev Flyway Migration" in chat — the assistant calls the matching tool automatically.
Full documentation: docs/WIKI.md
How it works (30 seconds)
You (chat) → MCP client → flyway-mcp → discover projects under FLYWAY_ROOT
→ flyway repair + migrate (per project)
→ auto-remediate common errors → retry
- Discovery — finds subfolders with
flyway.tomlandflyway_qa.toml/flyway_dev.toml - Repair — fixes schema history checksums before migrate
- Migrate — applies pending migrations per environment config
- Remediation — on failure, attempts automatic fixes (duplicate versions, placeholders, missing tables) and retries
Prerequisites
| Requirement | Notes |
|---|---|
| Node.js 18+ | Required for MCP server |
| Flyway CLI | On PATH (flyway -v works) |
| Java | Required by Flyway |
| FLYWAY_ROOT | Path to folder containing your Flyway project directories |
Expected project layout
Each project is a subfolder under FLYWAY_ROOT:
flyway-projects/
├── service-a-db/
│ ├── flyway.toml
│ ├── flyway_qa.toml
│ ├── flyway_dev.toml
│ └── migrations/
└── service-b-db/
├── flyway.toml
└── migrations/
Install
Option A — npm (recommended)
npm install -g @mhdd_24/flyway-mcp
Option B — npx (no global install)
npx @mhdd_24/flyway-mcp
Option C — clone and build (contributors)
git clone https://github.com/Mhdd-24/Flyway-MCP.git
cd Flyway-MCP
npm install
npm run build
node dist/index.js
Configure your MCP client
Cursor
Edit Cursor Settings → MCP or ~/.cursor/mcp.json:
{
"mcpServers": {
"flyway": {
"command": "npx",
"args": ["-y", "@mhdd_24/flyway-mcp"],
"env": {
"FLYWAY_ROOT": "/path/to/your/flyway-projects",
"FLYWAY_CLI": "flyway",
"FLYWAY_MAX_RETRIES": "3"
}
}
}
}
After global install:
"command": "flyway-mcp"
Local development:
"command": "node",
"args": ["C:/path/to/flyway-mcp/dist/index.js"]
Restart Cursor after saving.
Optional: limit projects
"FLYWAY_PROJECTS": "service-a-db,service-b-db"
Environment variables
| Variable | Required | Default | Purpose |
|---|---|---|---|
FLYWAY_ROOT |
Yes | — | Root folder containing Flyway project directories |
FLYWAY_CLI |
No | flyway |
Flyway executable name or path |
FLYWAY_PROJECTS |
No | all | Comma-separated project folder names to include |
FLYWAY_MAX_RETRIES |
No | 3 |
Repair/migrate/fix retry cycles per project |
Never commit database credentials. Keep connection strings in flyway_qa.toml / flyway_dev.toml inside each project (not in MCP env).
Tools
| Tool | Trigger phrase | Purpose |
|---|---|---|
list_flyway_projects |
List flyway projects | Shows discovered projects and QA/Dev config availability |
qa_flyway_migration |
QA Flyway Migration | repair + migrate using flyway_qa.toml |
dev_flyway_migration |
Dev Flyway Migration | repair + migrate using flyway_dev.toml |
Optional parameters
| Parameter | Applies to | Description |
|---|---|---|
projects |
migration tools | Array of project folder names (default: all discovered) |
Usage
List projects
List flyway projects
QA migration (all projects)
QA Flyway Migration
Dev migration (single project)
Dev Flyway Migration for service-a-db
Automatic remediation
On migration failure, the server may automatically:
| Error | Fix |
|---|---|
| Duplicate migration version | Renames duplicate files to next available version |
| Checksum mismatch | Runs repair and retries |
JS placeholder (${dbName}) |
Removes/replaces Flyway placeholder tokens |
Missing table (relation does not exist) |
Wraps table block in conditional to_regclass check |
Some errors (e.g. missing database plugins) cannot be auto-fixed and are reported in the summary.
Troubleshooting
| Problem | Fix |
|---|---|
FLYWAY_ROOT is not set |
Set FLYWAY_ROOT in MCP env |
Invalid flag: -configFiles (Windows) |
Upgrade to @mhdd_24/flyway-mcp@1.0.1+ |
No Flyway projects found |
Ensure subfolders contain flyway.toml |
No Flyway database plugin |
Install the Flyway plugin for that database type |
| Stale version after publish | Restart MCP; npx uses latest unless pinned |
More detail: docs/WIKI.md
License
ISC
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.