Skip to content

cloudthinker-ai/postgres-mcp-pro-plus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

93 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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 Name Description
list_schemas List all schemas with ownership and type classification
list_objects Browse database objects (tables, views, sequences, extensions) by schema
get_object_details Detailed object analysis including columns, constraints, and indexes
execute_sql Execute SQL with safety controls (restricted/unrestricted modes)

Performance & Optimization

Tool Name Description
explain_query Advanced execution plan analysis with HypoPG hypothetical index simulation
get_top_queries Identify slow and resource-intensive queries with performance metrics
analyze_workload_indexes AI-powered index recommendations from workload analysis (DTA/LLM)
analyze_query_indexes Targeted index optimization for specific query sets (up to 10 queries)

Health & Monitoring

Tool Name Description
analyze_db_health Comprehensive health checks: indexes, connections, vacuum, sequences, replication, buffer cache, constraints
get_blocking_queries Advanced blocking analysis with lock hierarchy visualization and resolution recommendations
analyze_vacuum_requirements Comprehensive vacuum analysis with bloat detection and maintenance recommendations

Advanced Analysis

Tool Name Description
get_database_overview Enterprise-grade database assessment with performance, security, and relationship analysis
analyze_schema_relationships Schema 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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages