DBA Server
FreeNot checkedA multi-vendor database management tool that enables LLMs to query, migrate, and synchronize schemas across SQL engines like PostgreSQL, MySQL, and Oracle. It f
About
A multi-vendor database management tool that enables LLMs to query, migrate, and synchronize schemas across SQL engines like PostgreSQL, MySQL, and Oracle. It features persistent knowledge management for storing AI-generated context about database structures and business rules.
README
Multi-vendor Database Tool for DevOps, Migrations & Knowledge Management
dba-mcp is a Model Context Protocol (MCP) server designed to enable LLMs (like Claude, ChatGPT, or local models) to interact with, manage, and migrate SQL databases directly. It operates over stdio, making it ideal for integration with tools like Claude Desktop, Cursor, or any MCP client.
It combines "Infrastructure as Code" principles with persistent knowledge management, allowing AI agents to save specific context about databases (Governance, Business Rules, Schema Explanations) and recall it on demand.
🌟 Features
- Multi-Vendor Support: Connect to Oracle, PostgreSQL, MySQL/MariaDB, SQL Server, and SQLite simultaneously.
- Hybrid Configuration:
- Stateless: Inject connections via CLI arguments (
--[id] [connection_string]). - Persistent: Save connections permanently using the
save_connectiontool (stored in local SQLite).
- Stateless: Inject connections via CLI arguments (
- Context & Knowledge Management 🧠:
- Save AI-generated context (Markdown) about a database (e.g., "This endpoint creates users based on table X").
- Recall context automatically to answer complex questions about specific databases.
- Schema Intelligence:
- Compare schemas between different engines.
- Generate DDL scripts (
CREATE,ALTER) to synchronize structures.
- Data Migration:
migrate_data: Move data between connections with optimized bulk inserts.replicate_database: Auto-Magic cloning of an entire database (Schema + Data).
📦 Installation
Via NPX (Recommended)
You can run it directly without installing. Connections defined in CLI are loaded alongside any persistent connections saved previously.
npx @grec0/dba-mcp --local sqlite://data.db --prod postgres://user:pass@host/db
Local Installation
git clone https://github.com/grecoLab/mcp-dba.git
cd mcp-dba
npm install
npm run build
🛠️ Configuration & Persistence
1. CLI Arguments (Ephemeral/Stateless)
Ideal for CI/CD or temporary sessions.
Format: --[id] [connection_string]
/* claude_desktop_config.json */
{
"mcpServers": {
"dba-tools": {
"command": "npx",
"args": [
"-y",
"@grec0/dba-mcp",
"--staging", "mysql://root:pass@localhost:3306/staging_db"
]
}
}
}
2. Persistent Storage (Stateful)
You can use tools to save connections. They are stored in an internal SQLite database (.dba-mcp/storage.db) within the running directory.
- Save:
save_connection - Remove:
remove_connection - List:
list_connections(Shows source: 💾=Saved, 🖥️=CLI)
🧰 Available Tools for LLMs
Once connected, the LLM will have access to these tools:
Connection & Context Management
| Tool | Description |
|---|---|
list_connections |
Lists all active connections. Icons indicate status: 💾 Saved to Disk 🖥️ From CLI Args 📝 Context Available |
save_connection |
Saves a new connection URL permanently. |
remove_connection |
Removes a stored connection. |
save_database_context |
Saves AI-generated markdown documentation for a specific connection (Governance, Business Logic). |
get_database_context |
Retrieves the stored markdown context for a connection. |
Database Operations
| Tool | Description |
|---|---|
inspect_schema |
Explore the database structure. Pass tableName to see columns/PKs, or empty to list all tables. |
sql_query |
Execute a read-only SQL query on a specific connection. |
generate_migration_ddl |
Compares two schemas (Source -> Target) and generates the SQL DDL commands to make Target match Source. |
migrate_data |
Migrates specific tables from Source to Target using bulk inserts. |
replicate_database |
🔥 Power Tool: Clones an ENTIRE database. Scans source, creates tables in target, and migrates all data automatically. |
🧠 Supported Connection Strings
- SQLite:
sqlite://path/to/file.db - PostgreSQL:
postgres://user:pass@host:5432/db - MySQL:
mysql://user:pass@host:3306/db - Oracle:
oracle://user:pass@host:1521/service - SQL Server:
sqlserver://user:pass@host:1433/db
💻 Development & Release
Build
npm run build
This runs TypeScript compiler and ensures the binary is executable (shx chmod +x).
Release
To version and publish (follows Semantic Versioning):
npm run release:patch # 0.0.1 -> 0.0.2
npm run release:minor # 0.1.0 -> 0.2.0
npm run release:major # 1.0.0 -> 2.0.0
Note: These scripts automatically push to Git and publish to NPM.
Inspector
To debug the MCP server communication visually:
npm run inspector -- --local sqlite://test.db
🐳 Docker
A multi-stage Dockerfile is included for containerized deployments.
docker build -t dba-mcp .
docker run -i dba-mcp --prod postgres://...
License
MIT
Install DBA Server in Claude Desktop, Claude Code & Cursor
unyly install dba-mcp-serverInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add dba-mcp-server -- npx -y @grec0/dba-mcpStep-by-step: how to install DBA Server
FAQ
Is DBA Server MCP free?
Yes, DBA Server MCP is free — one-click install via Unyly at no cost.
Does DBA Server need an API key?
No, DBA Server runs without API keys or environment variables.
Is DBA Server hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install DBA Server in Claude Desktop, Claude Code or Cursor?
Open DBA Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
wenb1n-dev/SmartDB_MCP
A universal database MCP server supporting simultaneous connections to multiple databases. It provides tools for database operations, health analysis, SQL optim
by wenb1n-devPostgres Server
This server enables interaction with PostgreSQL databases through the Model Context Protocol, optimized for the AWS Bedrock AgentCore Runtime. It provides tools
by madhurprashPostgres
Query your database in natural language
by AnthropicPostgreSQL
Read-only database access with schema inspection.
by modelcontextprotocolCompare DBA Server with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All data MCPs
