Database Server
FreeNot checkedAn extensible MCP server for database operations that supports PostgreSQL for managing schemas, tables, data, and user permissions. It features automatic migrat
About
An extensible MCP server for database operations that supports PostgreSQL for managing schemas, tables, data, and user permissions. It features automatic migration recording for DDL changes and integrates with various AI-powered editors like Cursor, Zed, and Claude Code.
README
MCP server for database operations. Supports PostgreSQL, MySQL, and SQLite with a unified interface and multi-database architecture.
Requirements
- Node.js >= 18
- At least one of: PostgreSQL, MySQL, or SQLite
Installation
npm install
Configuration
Multi-Database Support
This server supports managing multiple databases simultaneously. Instead of environment variables, databases are configured in databases.json:
cp databases.example.json databases.json
# Edit databases.json with your connections
databases.json structure:
| Field | Description |
|---|---|
name |
Unique identifier for the database |
description |
Optional description |
connectionString |
Connection string (format depends on dbType) |
dbType |
Database type: postgres, mysql, or sqlite |
enabled |
Optional boolean, defaults to true. Set false to disable |
readonly |
Optional boolean, defaults to false. Block all write operations |
Example:
[
{
"name": "production",
"description": "Main production database",
"connectionString": "postgresql://user:pass@prod-host:5432/prod_db",
"dbType": "postgres",
"enabled": true
},
{
"name": "mysql_prod",
"description": "MySQL production database",
"connectionString": "mysql://user:pass@mysql-host:3306/prod_db",
"dbType": "mysql",
"enabled": false
},
{
"name": "local_sqlite",
"description": "Local SQLite file",
"connectionString": "/home/user/data/app.db",
"dbType": "sqlite",
"enabled": false
}
]
All MCP tools now require a database parameter specifying which database to operate on.
Environment Variables
| Variable | Description |
|---|---|
MIGRATIONS_ENABLED |
Auto-record DDL changes to migration files (default: true) |
MIGRATIONS_DIR |
Migrations directory (default: ./migrations) |
DATABASE_URL is no longer needed - all connections are defined in databases.json.
Usage
Run the server
npm start
# or
npx tsx src/index.ts
MCP configuration by editor
Replace PATH_TO_PROJECT with the absolute path to this project (e.g. /home/user/postgresql-mcp). When the project is your current workspace, VS Code supports ${workspaceFolder}.
Cursor
Add to Cursor MCP settings (.cursor/mcp.json or Settings → MCP):
{
"mcpServers": {
"database": {
"command": "npx",
"args": ["tsx", "PATH_TO_PROJECT/src/index.ts"]
}
}
}
Claude Code
Add a local stdio server via CLI:
claude mcp add --transport stdio database -- npx tsx PATH_TO_PROJECT/src/index.ts
Or add to .mcp.json in the project root (for project scope):
{
"mcpServers": {
"database": {
"command": "npx",
"args": ["tsx", "PATH_TO_PROJECT/src/index.ts"]
}
}
}
VS Code
Add to .vscode/mcp.json (workspace) or user mcp.json (Command Palette → MCP: Open User Configuration):
{
"servers": {
"database": {
"type": "stdio",
"command": "npx",
"args": ["tsx", "PATH_TO_PROJECT/src/index.ts"]
}
}
}
Zed
Add to settings.json (Command Palette → Preferences: Open User Settings):
{
"context_servers": {
"database": {
"source": "custom",
"command": "npx",
"args": ["tsx", "PATH_TO_PROJECT/src/index.ts"]
}
}
}
OpenCode
Add to opencode.json or opencode.jsonc in the project root:
{
"mcp": {
"database": {
"type": "local",
"command": ["npx", "tsx", "PATH_TO_PROJECT/src/index.ts"],
"enabled": true
}
}
}
Tools
Databases
db_list_databases- List all configured databases (with enabled status)db_get_database- Get details of a specific database
Important: All tools now require a database parameter to specify which database to operate on. Example: { "database": "production", "schema": "public" }
Schemas
db_list_schemas- List schemasdb_create_schema- Create schemadb_get_schema- Get schema detailsdb_alter_schema- Rename schemadb_drop_schema- Drop schema
Tables
db_list_tables- List tablesdb_create_table- Create tabledb_get_table- Get table detailsdb_alter_table- Alter tabledb_drop_table- Drop table
Indexes, Views, Sequences, Triggers, Functions, Extensions
db_list_*/db_create_*/db_drop_*for each type
Data
db_query- Execute SELECTdb_insert- Insert rowsdb_update- Update rowsdb_delete- Delete rowsdb_execute_sql- Execute arbitrary SQL
Auth (roles and permissions)
db_list_roles- List rolesdb_create_role- Create roledb_create_user- Create user (role with LOGIN)db_alter_role- Alter roledb_drop_role- Drop roledb_grant_role_membership- Grant role to roledb_revoke_role_membership- Revoke role membershipdb_grant_schema- Grant USAGE/CREATE on schemadb_revoke_schema- Revoke schema privilegesdb_grant_table- Grant SELECT/INSERT/UPDATE/DELETE on tabledb_revoke_table- Revoke table privilegesdb_grant_all_tables_in_schema- Grant on all tables in schemadb_revoke_all_tables_in_schema- Revoke on all tables in schemadb_list_grants- List grants for a role
Migrations
db_list_migrations- List applied and pending migrationsdb_apply_migration- Apply a single migration by filenamedb_apply_all_migrations- Apply all pending migrations (sync DB)
Each DDL change (create schema, table, index, etc.) is automatically recorded to migrations/ when MIGRATIONS_ENABLED=true.
Agent Skill (multi-platform)
The database-mcp skill helps AI models use this MCP correctly. It works in Cursor, Claude Code, OpenCode, Antigravity, and Gemini CLI.
npm run setup:skills
This creates symlinks so the skill is discoverable in each platform's expected path. Canonical source: skills/database-mcp/.
Build
npm run build
Installing Database Server
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/roilanrodriguez55/database-mcpFAQ
Is Database Server MCP free?
Yes, Database Server MCP is free — one-click install via Unyly at no cost.
Does Database Server need an API key?
No, Database Server runs without API keys or environment variables.
Is Database Server hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Database Server in Claude Desktop, Claude Code or Cursor?
Open Database 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 Database Server with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All data MCPs
