Database MCP Server

Database MCP Server

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.

Category
Visit Server

README

Database MCP Server

MCP server for database operations. Supports PostgreSQL initially, with an extensible architecture for other engines (MySQL, SQLite, etc.).

Requirements

  • Node.js >= 18
  • PostgreSQL (or compatible database)

Installation

npm install

Configuration

Set environment variables:

Variable Description
DATABASE_URL Connection string (e.g. postgresql://user:pass@host:5432/db)
DB_TYPE Database type: postgres (default)
MIGRATIONS_ENABLED Auto-record DDL changes to migration files (default: true)
MIGRATIONS_DIR Migrations directory (default: ./migrations)

Copy .env.example to .env and edit:

cp .env.example .env

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"],
      "env": {
        "DATABASE_URL": "postgresql://user:password@localhost:5432/mydb"
      }
    }
  }
}

Claude Code

Add a local stdio server via CLI:

claude mcp add --transport stdio --env DATABASE_URL=postgresql://user:password@localhost:5432/mydb 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"],
      "env": {
        "DATABASE_URL": "postgresql://user:password@localhost:5432/mydb"
      }
    }
  }
}

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"],
      "env": {
        "DATABASE_URL": "postgresql://user:password@localhost:5432/mydb"
      }
    }
  }
}

Optional: use envFile to load from .env and ${workspaceFolder} when this project is the workspace:

{
  "servers": {
    "database": {
      "type": "stdio",
      "command": "npx",
      "args": ["tsx", "${workspaceFolder}/src/index.ts"],
      "envFile": "${workspaceFolder}/.env"
    }
  }
}

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"],
      "env": {
        "DATABASE_URL": "postgresql://user:password@localhost:5432/mydb"
      }
    }
  }
}

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,
      "environment": {
        "DATABASE_URL": "postgresql://user:password@localhost:5432/mydb"
      }
    }
  }
}

Tools

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

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured