Database MCP Server
Database MCP Server
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 installConfiguration
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 connectionsdatabases.json structure:
Field | Description |
| Unique identifier for the database |
| Optional description |
| Connection string (format depends on |
| Database type: |
| Optional boolean, defaults to |
| Optional boolean, defaults to |
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 |
| Auto-record DDL changes to migration files (default: |
| Migrations directory (default: |
DATABASE_URL is no longer needed - all connections are defined in databases.json.
Usage
Run the server
npm start
# or
npx tsx src/index.tsMCP 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.tsOr 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:skillsThis creates symlinks so the skill is discoverable in each platform's expected path. Canonical source: skills/database-mcp/.
Build
npm run buildLatest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/roilanrodriguez55/database-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server