connectLABSCO SUMMARY
Writes are never executed — they come back as an impact preview.
SELECT runs with an automatic row limit, while INSERT, UPDATE, DELETE, DROP and TRUNCATE return affected rows, risk level and rollback context instead of running. That is what makes it reasonable to point at a real database: the destructive path structurally does not exist, and every tool call is written to an audit log.
What it is
A PostgreSQL MCP server built as 21 focused tools rather than one broad execute_sql escape hatch — schema discovery, safe query execution, impact analysis, performance review, security checks, maintenance and data quality.
What you get
- Connection and health: connect, disconnect, health_check
- Schema: get_schema with optional Mermaid ERDs, and dependency_analysis before renaming or dropping anything
- Queries: execute_query for read-only SELECT, analyze_query, query_optimizer, and analyze_impact for a write preview
- Performance: database_health, query_performance, configuration_review, replication_status
- Security: security_audit over roles and privileges, sensitive_data_scan for likely PII
- Maintenance: maintenance_analysis for vacuum and dead tuples, partition_analysis
- Data quality: data_quality_report, duplicate_detection
- Audit trail of tool calls: get_audit_logs, list_audit_files
Requirements
Python 3.11+ and PostgreSQL 12+. Clone and pip install -e ., then run it as a stdio server with DATABASE_URL in your client's env block, or with DB_HOST, DB_PORT, DB_USER, DB_PASSWORD and DB_NAME. DBEAST_DEFAULT_ROW_LIMIT caps returned rows at 100 by default. Version 0.2.1.
Setup effort
Build from source — git clone https://github.com/snss10/DBeast.git
USE CASES
Auditing a database you have just inherited
Check privileges, overall health and vacuum status in one pass.
Seeing what a DELETE would actually do
Preview affected rows and risk level without the statement running.
Finding the query that is slowing everything down
Read the expensive queries from statistics, then ask for index and rewrite suggestions.
Checking whether a column holds personal data
Scan column names and schema patterns before exporting anything.
21 tools
Listed in project docs. Your client may show a different list.
disconnecthealth_checkget_schemadependency_analysisexecute_queryanalyze_queryquery_optimizeranalyze_impactdatabase_healthquery_performancesecurity_auditsensitive_data_scanmaintenance_analysispartition_analysisdata_quality_reportduplicate_detectionconfiguration_reviewreplication_statusget_audit_logslist_audit_filesBEFORE YOU INSTALL
What to know first
Tools you get
21 tools named in the project's documentation.
Optional
DATABASE_URL in your environment
Where it runs
All 3 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/snss10/DBeast.git
cd DBeast
pip install -e .MCP Clients
Claude Desktop — macOS, Cursor — macOS, Windsurf — macOS
{
"mcpServers": {
"dbeast": {
"type": "stdio",
"command": "python",
"args": [
"<YOUR_PATH_TO_DBEAST>/src/server.py"
],
"env": {
"DATABASE_URL": "postgresql://<YOUR_DB_USER>:<YOUR_DB_PASSWORD>@localhost:5432/<YOUR_DB_NAME>"
}
}
}
}