PluginBench
MCP Server
Active
MIT

DBeast PostgreSQL MCP MCP Server

io.github.snss10/dbeast

PostgreSQL MCP server giving AI assistants expert DBA capabilities for schema discovery, query analysis, security audits, and performance tuning.

What is the DBeast PostgreSQL MCP MCP server?

DBeast is a PostgreSQL MCP server that connects AI assistants like Claude and Cursor to PostgreSQL databases through the Model Context Protocol. It provides 21 focused tools for schema discovery, safe query execution, impact analysis, performance review, security checks, and maintenance reporting—without exposing a broad SQL escape hatch.

DBeast runs as a local stdio MCP server, enabling AI assistants to audit PostgreSQL databases, identify security and maintenance risks, preview write-query impact, analyze slow queries, and generate schema diagrams. Instead of raw SQL access, it offers specialized tools for safe database exploration and analysis across local, RDS, Supabase, Neon, and other PostgreSQL hosts.

How to install DBeast PostgreSQL MCP

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • DATABASE_URL
    secret

    PostgreSQL connection URL, for example postgresql://user:password@host:5432/database.

  • DB_HOST

    PostgreSQL host when DATABASE_URL is not used.

  • DB_PORT

    PostgreSQL port when DATABASE_URL is not used.

  • DB_USER

    PostgreSQL user when DATABASE_URL is not used.

  • DB_PASSWORD
    secret

    PostgreSQL password when DATABASE_URL is not used.

  • DB_NAME

    PostgreSQL database name when DATABASE_URL is not used.

  • AWS_SECRET_NAME

    AWS Secrets Manager secret containing PostgreSQL credentials.

  • AWS_REGION

    AWS region for Secrets Manager lookup.

~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "dbeast": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/snss10/dbeast:2.0.2"
      ],
      "env": {
        "DATABASE_URL": "<YOUR_DATABASE_URL>",
        "DB_HOST": "<YOUR_DB_HOST>",
        "DB_PORT": "<YOUR_DB_PORT>",
        "DB_USER": "<YOUR_DB_USER>",
        "DB_PASSWORD": "<YOUR_DB_PASSWORD>",
        "DB_NAME": "<YOUR_DB_NAME>",
        "AWS_SECRET_NAME": "<YOUR_AWS_SECRET_NAME>",
        "AWS_REGION": "<YOUR_AWS_REGION>"
      }
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • connect — Connect to PostgreSQL, check current status, or discover local databases
  • disconnect — Close the current database connection
  • health_check — Verify connectivity, pool health, PostgreSQL version, and extensions
  • get_schema — List schemas, tables, columns, indexes, relationships, and optional Mermaid ERDs
  • dependency_analysis — Map object dependencies before renaming, dropping, or changing database objects
  • execute_query — Run read-only SELECT queries with automatic row-limit injection
  • analyze_query — Parse and inspect query structure, warnings, and optimization hints
  • query_optimizer — Recommend indexes and rewrites for a given query
  • analyze_impact — Preview write-query impact, risk level, affected rows, and rollback context without executing
  • database_health — Review cache hit rates, connections, transaction age, table health, and overall health signals
  • query_performance — Report slow or expensive queries from PostgreSQL statistics
  • security_audit — Inspect roles, privileges, superuser accounts, and public schema exposure
  • sensitive_data_scan — Detect likely PII or secrets by column names and schema patterns
  • maintenance_analysis — Review vacuum status, dead tuples, analyze timestamps, and index health
  • partition_analysis — Inspect partition health, row distribution, and missing partition risks
  • data_quality_report — Analyze null rates, cardinality, value distributions, and outliers
  • duplicate_detection — Find duplicate rows across selected key columns
  • configuration_review — Review PostgreSQL configuration and tuning opportunities
  • replication_status — Inspect replication lag, WAL sender/receiver state, and replication slots
  • get_audit_logs — Retrieve logged MCP tool calls for a given date

Use cases

  • Audit a PostgreSQL database for security risks, maintenance issues, and data quality problems
  • Preview the impact of destructive queries (DELETE, UPDATE, DROP) before execution to assess rollback risk
  • Investigate slow queries, analyze execution plans, and receive index recommendations
  • Generate Mermaid entity-relationship diagrams for schema documentation and understanding
  • Monitor database health, replication status, and identify performance bottlenecks

DBeast PostgreSQL MCP MCP server FAQ

What is DBeast?

DBeast is a PostgreSQL MCP server that gives AI assistants like Claude and Cursor expert DBA capabilities. It provides 21 specialized tools for schema discovery, safe query execution, security audits, performance analysis, and maintenance reporting—without exposing raw SQL access.

Is DBeast free?

Yes, DBeast is open-source under the MIT license.

How do I install DBeast in Cursor or Claude?

Clone the repository, run `pip install -e .`, then add a stdio MCP server configuration to your client's config file (`.mcp.json` for Cursor, `claude_desktop_config.json` for Claude Desktop) pointing to the DBeast server script and passing your DATABASE_URL via environment variables.

What databases does DBeast support?

DBeast supports PostgreSQL 12+ on any host: local PostgreSQL, Docker, AWS RDS/Aurora, Supabase, Neon, Railway, Render, Fly.io, and any standard PostgreSQL instance.

Does DBeast execute destructive queries?

No. DBeast executes only SELECT queries. INSERT, UPDATE, DELETE, DROP, and TRUNCATE queries are never executed; instead, DBeast returns an impact preview showing affected rows, risk level, and rollback context.

What authentication methods does DBeast support?

DBeast supports DATABASE_URL connection strings, individual DB_* environment variables, AWS Secrets Manager, SSH tunnels, and runtime connection parameters.

README (reference)

Source of truth, from the repository.

<div align="center"> <img src="assets/logo.svg" alt="DBeast" width="720" />

A PostgreSQL MCP server that gives AI assistants expert DBA capabilities.

Python 3.11+ PostgreSQL 12+ MCP Compatible License: MIT

Quick Start · Demo · Tools · Safety · Configuration · Docs

</div>

DBeast connects AI assistants such as Claude, Cursor, Windsurf, and VS Code Copilot to PostgreSQL through the Model Context Protocol. Instead of exposing one broad execute_sql escape hatch, DBeast provides 21 focused tools for schema discovery, safe query execution, impact analysis, performance review, security checks, maintenance reporting, replication monitoring, and data quality inspection.


Demo

Watch Claude use DBeast MCP tools to audit a PostgreSQL database, identify security and maintenance risks, and preview cleanup impact without executing destructive SQL.

<div align="center">

DBeast MCP demo: Claude audits a PostgreSQL database

Watch the demo on YouTube

</div>

How It Works

AI assistant  --MCP stdio-->  DBeast server  --asyncpg-->  PostgreSQL
Claude/Cursor                  Python local                 Local, RDS,
Windsurf/VS Code               subprocess                   Supabase, Neon

DBeast runs as a local stdio MCP server. Your IDE or desktop assistant starts it as a subprocess and passes database credentials through environment variables. The assistant calls DBeast tools, DBeast queries PostgreSQL, and structured results come back to the assistant. No HTTP service or extra infrastructure is required.


Quick Start

1. Install

git clone https://github.com/snss10/DBeast.git
cd DBeast
pip install -e .

For development:

pip install -e ".[dev]"

Optional: copy .env.example to .env and set your database credentials.

2. Verify

dbeast

Or run the source entry point directly:

python src/server.py

3. Configure Your MCP Client

Minimal Cursor or Windsurf config:

{
  "mcpServers": {
    "dbeast": {
      "type": "stdio",
      "command": "python",
      "args": ["/absolute/path/to/DBeast/src/server.py"],
      "env": {
        "DATABASE_URL": "postgresql://user:password@localhost:5432/mydb"
      }
    }
  }
}

Common config locations:

ClientConfig location
Cursor.mcp.json in project root, or ~/.cursor/.mcp.json globally
VS Code.vscode/settings.json or user settings with key mcp.servers
Claude Desktop on macOS~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop on Windows%APPDATA%\Claude\claude_desktop_config.json
Windsurf.mcp.json

See SETUP.md for full client examples, Docker, RDS, Supabase, Neon, SSH tunnels, AWS Secrets Manager, and troubleshooting.

4. Ask Simple or Complex Questions

Once connected, your assistant can answer quick lookup questions and also run multi-step database investigations.

Simple examples:

Show me the schema for the orders table.
Which queries are slowest right now?
Run a security audit on the public schema.
Generate a Mermaid ERD for the sales schema.

More complex examples:

Before I archive old sessions, estimate how many rows would be affected, identify related tables, and tell me the rollback risk.
Investigate why the dashboard query is slow, explain the execution plan, and suggest safe indexes.
Review the public schema for maintenance issues, security risks, and data quality problems, then summarize the top priorities.
Compare table growth, dead tuples, and index health across all schemas and recommend what to vacuum or reindex first.

Tools

DBeast exposes 21 MCP tools across 10 categories.

Connection

ToolDescription
connectConnect to PostgreSQL, check current status, or discover local databases
disconnectClose the current database connection
health_checkVerify connectivity, pool health, PostgreSQL version, and extensions

Schema Discovery

ToolDescription
get_schemaList schemas, tables, columns, indexes, relationships, and optional Mermaid ERDs
dependency_analysisMap object dependencies before renaming, dropping, or changing database objects

Data Access

ToolDescription
execute_queryRun read-only SELECT queries with automatic row-limit injection

Query Analysis

ToolDescription
analyze_queryParse and inspect query structure, warnings, and optimization hints
query_optimizerRecommend indexes and rewrites for a given query
analyze_impactPreview write-query impact, risk level, affected rows, and rollback context without executing

Database Health

ToolDescription
database_healthReview cache hit rates, connections, transaction age, table health, and overall health signals
query_performanceReport slow or expensive queries from PostgreSQL statistics

Security

ToolDescription
security_auditInspect roles, privileges, superuser accounts, and public schema exposure
sensitive_data_scanDetect likely PII or secrets by column names and schema patterns

Maintenance

ToolDescription
maintenance_analysisReview vacuum status, dead tuples, analyze timestamps, and index health
partition_analysisInspect partition health, row distribution, and missing partition risks

Data Quality

ToolDescription
data_quality_reportAnalyze null rates, cardinality, value distributions, and outliers
duplicate_detectionFind duplicate rows across selected key columns

Server Config

ToolDescription
configuration_reviewReview PostgreSQL configuration and tuning opportunities
replication_statusInspect replication lag, WAL sender/receiver state, and replication slots

Audit

ToolDescription
get_audit_logsRetrieve logged MCP tool calls for a given date
list_audit_filesList available audit log files

Recommended Workflow

Start by discovering schemas:

get_schema()
get_schema(schema='public')

Run safe read queries:

execute_query(query='SELECT * FROM orders ORDER BY created_at DESC')

Preview risky writes:

analyze_impact(query='DELETE FROM sessions WHERE last_active < now() - interval ''30 days''')

Check health and maintenance:

database_health()
maintenance_analysis(schema='public')
query_performance()

Most analysis tools accept a schema parameter:

maintenance_analysis(schema='public')  -> analyze one schema
maintenance_analysis(schema='all')     -> analyze every schema
get_schema(format='mermaid')           -> generate an ERD diagram

Supported Databases

ProviderConnection method
Local PostgreSQLDATABASE_URL or individual DB_* variables
Docker PostgreSQLExplicit variables or connect(discover=true)
AWS RDS / AuroraDirect URL, SSH tunnel, or AWS Secrets Manager
SupabasePooler connection string from Dashboard settings
NeonConnection string from Console connection details
Railway / Render / Fly.ioProvider connection string
Any PostgreSQL hostStandard PostgreSQL URL

Configuration

Choose one connection method.

# Full URL
DATABASE_URL=postgresql://user:pass@host:5432/db

# Or individual variables
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=secret
DB_NAME=mydb
DB_SSLMODE=prefer

# Or AWS Secrets Manager
AWS_SECRET_NAME=my-rds-secret
AWS_REGION=us-west-2

You can also connect at runtime:

connect(url='postgresql://user:pass@host:5432/db')
connect(host='localhost', user='postgres', password='secret', database='mydb')
connect(aws_secret_name='my-secret', aws_region='us-west-2')

Key settings:

VariableDefaultDescription
DBEAST_DEFAULT_ROW_LIMIT100Max rows returned by execute_query
DBEAST_QUERY_TIMEOUT300Query execution timeout in seconds
DBEAST_COMMAND_TIMEOUT300SQL command timeout in seconds
DBEAST_SSL_VERIFYtrueSet false for SSH tunnels where certificates do not match localhost
DBEAST_SCHEMA_CACHE_TTL60Schema cache TTL in seconds, 0 disables caching
DBEAST_AUDIT_ENABLEDtrueLog MCP tool calls
DBEAST_AUDIT_DIRlogs/mcp_auditAudit log directory

See SETUP.md for the complete configuration reference.


Safety Model

Query typeWhat DBeast does
SELECTExecutes with automatic row limits
INSERT / UPDATE / DELETENever executed; returns an impact preview
DROP / TRUNCATENever executed; reports affected objects and risk

Formatted and JSON responses use a consistent wrapper:

{
  "success": true,
  "data": { "...": "..." },
  "meta": {
    "connected": true,
    "source": "tool"
  }
}

Audit Logging

DBeast logs MCP tool calls for accountability and debugging.

DBEAST_AUDIT_ENABLED=true
DBEAST_AUDIT_DIR=logs/mcp_audit

Audit files are stored as daily markdown files and include timestamps, tool names, durations, masked parameters, truncated responses, and errors.


Development

pip install -e ".[dev]"
pre-commit install
pytest tests/ -v
ruff check src/ tests/
ruff format src/ tests/

Start the optional local PostgreSQL test database:

docker compose up -d postgres

Legacy Compose:

docker-compose up -d postgres

Documentation

  • SETUP.md - Full client setup, connection scenarios, configuration, and troubleshooting
  • CONTRIBUTING.md - Development setup, tests, style, commits, and PR process
  • CODE_OF_CONDUCT.md - Community guidelines

License

MIT

Related MCP servers

MCP server for Snyk API & Web — DAST scanning, findings management, and vulnerability triage

7
Python
Apache-2.0
View repository →

MCP server for OmniStream. Lets AI assistants discover and call any marketplace API.

SOSocial Fetch logo

Social Fetch

Maintained

Public social-data API and live docs for AI coding agents.

1
MIT
View repository →
FAFastSocial logo

FastSocial

Maintained

Schedule and manage social media posts across 7 platforms directly from Claude.

0
JavaScript
View repository →

SocialLoop: AI-native event platform — sell tickets, manage guests, run affiliates & promo codes.

2
MIT
View repository →

Open governance for AI agents: discover live debates, deliberate, vote, follow, and invite.

0
TypeScript
MIT
View repository →