JUHE API Marketplace
Cloud-Thinker-AI avatar
MCP Server

Postgres MCP Pro Plus

An extended PostgreSQL management and analysis server that provides database professionals with tools for schema management, query optimization, performance monitoring, and health analysis through a collection of specialized functions.

3
GitHub Stars
8/23/2025
Last Updated
No Configuration
Please check the documentation below.

README Documentation

Postgres MCP Pro Plus

Advanced PostgreSQL Database Analysis & Optimization Suite
Extended version based on crystaldba/postgres-mcp

🚀 Key Features

  • 🔍 Comprehensive Database Analysis: Deep insights into schema structure, relationships, and performance
  • ⚡ AI-Powered Optimization: Intelligent index recommendations using Database Tuning Advisor (DTA) and LLM methods
  • 🩺 Advanced Health Monitoring: Multi-dimensional health checks with predictive analytics
  • 🔒 Lock & Blocking Analysis: Real-time detection and resolution of query blocking and deadlocks
  • 🧹 Smart Maintenance: Automated vacuum analysis with bloat detection and maintenance scheduling
  • 📊 Performance Intelligence: Query performance analysis with resource usage optimization
  • 🔐 Security Assessment: Comprehensive security analysis and recommendations
  • 🐳 Docker Ready: Containerized deployment with Docker Compose support

📋 Available Tools

Core Database Operations

Tool NameDescription
list_schemasList all schemas with ownership and type classification
list_objectsBrowse database objects (tables, views, sequences, extensions) by schema
get_object_detailsDetailed object analysis including columns, constraints, and indexes
execute_sqlExecute SQL with safety controls (restricted/unrestricted modes)

Performance & Optimization

Tool NameDescription
explain_queryAdvanced execution plan analysis with HypoPG hypothetical index simulation
get_top_queriesIdentify slow and resource-intensive queries with performance metrics
analyze_workload_indexesAI-powered index recommendations from workload analysis (DTA/LLM)
analyze_query_indexesTargeted index optimization for specific query sets (up to 10 queries)

Health & Monitoring

Tool NameDescription
analyze_db_healthComprehensive health checks: indexes, connections, vacuum, sequences, replication, buffer cache, constraints
get_blocking_queriesAdvanced blocking analysis with lock hierarchy visualization and resolution recommendations
analyze_vacuum_requirementsComprehensive vacuum analysis with bloat detection and maintenance recommendations

Advanced Analysis

Tool NameDescription
get_database_overviewEnterprise-grade database assessment with performance, security, and relationship analysis
analyze_schema_relationshipsSchema dependency mapping with visual relationship analysis and coupling metrics

🔧 Tool Details & Capabilities

🔍 Database Overview Analysis

Enterprise-grade comprehensive database assessment

The get_database_overview tool provides multi-dimensional analysis:

  • 📊 Schema Analysis: Complete structure with table relationships and dependency mapping
  • ⚡ Performance Metrics: Query performance, index efficiency, and resource utilization patterns
  • 🔐 Security Analysis: User permissions, role assignments, and security configuration assessment
  • 💾 Storage Analysis: Table sizes, index bloat detection, and disk usage optimization
  • 🩺 Health Indicators: Connection health, vacuum statistics, and system performance metrics

Configuration Options:

  • max_tables (default: 500): Maximum tables to analyze per schema for performance control
  • sampling_mode (default: true): Statistical sampling for large datasets to optimize execution time
  • timeout (default: 300): Maximum execution time with graceful timeout handling

🔒 Advanced Blocking Queries Analysis

Real-time lock contention detection and resolution

The get_blocking_queries tool features enterprise-grade capabilities:

🎯 Core Features:

  • Modern Detection: Uses PostgreSQL's pg_blocking_pids() function for accurate blocking identification
  • Lock Hierarchy Visualization: Complete blocking chains and process relationships
  • Comprehensive Metrics: Process details, wait events, timing, lock types, and affected relations
  • Intelligent Recommendations: Severity-based suggestions with specific optimization guidance
  • Production Ready: Designed for enterprise database monitoring and performance troubleshooting

📋 Analysis Output:

  • Process Information: PID, user, application name, client address, and connection details
  • Query Context: Full query text, execution timing, and resource consumption
  • Lock Details: Lock types, modes, affected database objects, and wait events
  • State Analysis: Process states, wait information, and blocking duration
  • Trend Analysis: Summary statistics and pattern recognition
  • Categorized Recommendations: 🚨 Critical, ⚠️ Warning, 💡 Optimization, 🎯 Hotspot alerts

🔧 PostgreSQL Compatibility:

  • Minimum: PostgreSQL 9.6+ (requires pg_blocking_pids() function)
  • Recommended: PostgreSQL 12+ (enhanced lock monitoring features)
  • Optimal: PostgreSQL 14+ (includes pg_locks.waitstart for precise wait timing)

🧹 Vacuum Analysis & Maintenance

Comprehensive maintenance planning with bloat detection

The analyze_vacuum_requirements tool provides:

  • 📈 Bloat Analysis: Table and index bloat detection with severity assessment
  • ⚙️ Autovacuum Configuration: Settings analysis and optimization recommendations
  • 📊 Performance Impact: Vacuum operation performance analysis and bottleneck identification
  • 🗓️ Maintenance Planning: Intelligent scheduling recommendations based on workload patterns
  • 🚨 Critical Issue Detection: Immediate attention alerts for maintenance-related problems
  • ⚡ Configuration Optimization: Tuning suggestions for vacuum parameters

🗺️ Schema Relationship Analysis

Advanced dependency mapping and visualization

The analyze_schema_relationships tool offers:

  • 🔗 Dependency Mapping: Complete inter-schema relationship visualization
  • 📊 Coupling Analysis: Schema coupling metrics and isolation scoring
  • 🎯 Impact Assessment: Change impact analysis for schema modifications
  • 📈 Relationship Quality: Foreign key relationship quality and consistency scoring
  • 🔍 Pattern Detection: Common anti-patterns and architectural recommendations

⚡ Index Optimization Intelligence

AI-powered index recommendations with advanced algorithms

Database Tuning Advisor (DTA) Features:

  • 🧠 Pareto Optimization: Multi-objective optimization balancing performance and storage
  • 📊 Workload Analysis: Pattern recognition from pg_stat_statements data
  • 💰 Cost-Benefit Analysis: Storage budget constraints with performance impact assessment
  • 🎯 Query-Specific Tuning: Targeted optimization for specific query sets
  • ⏱️ Time-bounded Analysis: Anytime algorithm with configurable runtime limits

LLM-Powered Optimization:

  • 🤖 Intelligent Analysis: Natural language understanding of query patterns
  • 📝 Contextual Recommendations: Human-readable explanations with implementation guidance
  • 🔍 Advanced Pattern Recognition: Complex query pattern detection and optimization

🚀 Quick Start

Prerequisites

  • PostgreSQL 9.6+ (PostgreSQL 12+ recommended, 14+ optimal)
  • Python 3.8+
  • Optional: HypoPG extension for hypothetical index analysis

Installation & Setup

1. Environment Configuration

Create a .env file in the project root:

DATABASE_URI=postgresql://username:password@localhost:5432/database_name

2. Native Deployment

# Start the MCP server (default: stdio transport, unrestricted mode)
./start.sh

# Start in read-only mode for safer analysis
./start.sh --access-mode restricted

# Start with SSE transport for web integration
./start.sh --transport sse --sse-port 8099

# Start SSE server accessible externally
./start.sh --transport sse --sse-host 0.0.0.0 --sse-port 8099

# Show all available options
./start.sh --help

3. Docker Deployment

# Start with Docker Compose
docker-compose up -d

# View logs
docker-compose logs -f postgres-mcp

4. Interactive Testing (MCP Inspector)

# Terminal 1: Start the MCP server with SSE transport
./start.sh --transport sse --sse-port 8099

# Terminal 2: Start the MCP Inspector (opens web interface)
./start-inspector.sh

The MCP Inspector provides:

  • Interactive Tool Testing: Test all database analysis tools with a web UI
  • Parameter Exploration: Discover tool capabilities and configuration options
  • Real-time Results: View formatted analysis results in a user-friendly interface
  • Documentation: Built-in tool documentation and usage examples

🔧 Access Modes

Unrestricted Mode (Default):

  • Full SQL execution capabilities
  • Database modification operations
  • Complete administrative access

Restricted Mode (Recommended for analysis):

  • Read-only operations with safety controls
  • SQL injection protection
  • Timeout enforcement (30s default)
  • Safe for production analysis

📊 Usage Examples

Basic Server Operations

# Show help and configuration options
./start.sh --help

# Start with default settings (stdio, unrestricted)
./start.sh

# Start in production-safe mode
./start.sh --access-mode restricted

# Start web server for HTTP/SSE integration
./start.sh --transport sse --sse-port 8099

Health Check Examples

# Comprehensive health analysis (via MCP client)
analyze_db_health --health-type all

# Specific component checks
analyze_db_health --health-type index,vacuum,buffer

# Performance optimization workflow
get_top_queries --sort-by resources
analyze_workload_indexes --method dta --max-index-size-mb 1000
get_blocking_queries

🏗️ Architecture & Components

Core Architecture

postgres-mcp/
├── 🔧 server.py              # MCP server & tool registration
├── 📊 database_health/       # Multi-dimensional health monitoring
├── ⚡ explain/               # Query execution plan analysis
├── 🎯 index/                 # AI-powered index optimization
├── 📈 top_queries/           # Performance query analysis
├── 🔒 blocking_queries.py    # Lock contention analysis
├── 🔍 database_overview.py   # Comprehensive assessment
├── 🗺️ schema_mapping.py      # Relationship visualization
├── 🧹 vacuum_analysis.py     # Maintenance optimization
└── 🛡️ sql/                   # SQL execution framework

Database Health Components

  • Index Health: Invalid, duplicate, bloated, and unused index detection
  • Connection Health: Connection utilization and capacity analysis
  • Vacuum Health: Transaction wraparound and maintenance monitoring
  • Sequence Health: Sequence exhaustion and overflow protection
  • Replication Health: Lag monitoring and slot management
  • Buffer Health: Cache hit rate optimization for tables and indexes
  • Constraint Health: Invalid constraint detection and remediation

🤖 AI Integration Features

Database Tuning Advisor (DTA):

  • Pareto-optimal index selection algorithm
  • Multi-query workload optimization
  • Budget-constrained recommendation engine
  • Time-bounded analysis with anytime approach

LLM-Powered Analysis:

  • Natural language query pattern understanding
  • Contextual optimization recommendations
  • Human-readable explanations and guidance
  • Advanced pattern recognition capabilities

📈 Recent Enhancements

Latest Features (Recent Commits)

  • Comprehensive Tool Analysis: Detailed analysis document with improvement recommendations
  • Enhanced Readability: Streamlined code formatting across all modules
  • Robust Error Handling: Improved None value handling in vacuum analysis
  • Advanced Visualizations: Enhanced blocking queries analysis with detailed recommendations
  • Human-Readable Outputs: Refactored analysis tools for better text presentation
  • Schema Relationship Mapping: New schema dependency analysis and visualization
  • Docker Integration: Complete containerization with Docker Compose support
  • Vacuum Analysis Tool: Comprehensive maintenance recommendations and bloat detection

Architecture Improvements

  • Modular Design: Enhanced component separation and reusability
  • Async Optimization: Improved performance with better async patterns
  • Safety Framework: Comprehensive SQL execution safety controls
  • Error Recovery: Robust error handling and graceful degradation
  • Performance Scaling: Optimized for large database analysis
  • Enhanced Startup Scripts: Flexible configuration with comprehensive validation and help system

📚 Documentation & Development

Advanced Documentation

  • Database Tools Analysis: Comprehensive analysis of all tools with improvement recommendations
  • Tool Improvements Roadmap: Priority-based enhancement roadmap (if available)
  • Technical Implementation: Detailed code documentation and API references

Extension Points

  • Custom Health Checks: Add domain-specific health monitoring
  • Plugin Architecture: Extend with custom analysis tools
  • Integration APIs: Connect with external monitoring systems
  • Custom Visualizations: Add specialized reporting and dashboards

🔒 Security & Best Practices

Security Features

  • SQL Injection Protection: Comprehensive input sanitization
  • Access Mode Controls: Restricted/unrestricted operation modes
  • Timeout Enforcement: Configurable query timeout protection
  • Parameter Validation: Robust input validation and sanitization
  • Error Handling: Secure error reporting without information leakage

Production Guidelines

  • Use restricted mode for production analysis
  • Configure appropriate timeout values for large operations
  • Monitor resource usage during analysis operations
  • Implement regular health checks for proactive monitoring
  • Review security configurations and user permissions regularly

📄 License

MIT License


🚀 Postgres MCP Pro Plus - Advanced Database Intelligence
Empowering database professionals with AI-driven insights and optimization

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source