Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Database Server

FreeNot checked

An extensible MCP server for database operations that supports PostgreSQL for managing schemas, tables, data, and user permissions. It features automatic migrat

GitHubEmbed

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 schemas
  • db_create_schema - Create schema
  • db_get_schema - Get schema details
  • db_alter_schema - Rename schema
  • db_drop_schema - Drop schema

Tables

  • db_list_tables - List tables
  • db_create_table - Create table
  • db_get_table - Get table details
  • db_alter_table - Alter table
  • db_drop_table - Drop table

Indexes, Views, Sequences, Triggers, Functions, Extensions

  • db_list_* / db_create_* / db_drop_* for each type

Data

  • db_query - Execute SELECT
  • db_insert - Insert rows
  • db_update - Update rows
  • db_delete - Delete rows
  • db_execute_sql - Execute arbitrary SQL

Auth (roles and permissions)

  • db_list_roles - List roles
  • db_create_role - Create role
  • db_create_user - Create user (role with LOGIN)
  • db_alter_role - Alter role
  • db_drop_role - Drop role
  • db_grant_role_membership - Grant role to role
  • db_revoke_role_membership - Revoke role membership
  • db_grant_schema - Grant USAGE/CREATE on schema
  • db_revoke_schema - Revoke schema privileges
  • db_grant_table - Grant SELECT/INSERT/UPDATE/DELETE on table
  • db_revoke_table - Revoke table privileges
  • db_grant_all_tables_in_schema - Grant on all tables in schema
  • db_revoke_all_tables_in_schema - Revoke on all tables in schema
  • db_list_grants - List grants for a role

Migrations

  • db_list_migrations - List applied and pending migrations
  • db_apply_migration - Apply a single migration by filename
  • db_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

from github.com/roilanrodriguez55/database-mcp

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-mcp

FAQ

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

Compare 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