Skip to main content

PostgreSQL Tuning and Analysis Tool

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

postgres_mcp_pro_plus-0.3.3.tar.gz (236.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

postgres_mcp_pro_plus-0.3.3-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file postgres_mcp_pro_plus-0.3.3.tar.gz.

File metadata

  • Download URL: postgres_mcp_pro_plus-0.3.3.tar.gz
  • Upload date:
  • Size: 236.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for postgres_mcp_pro_plus-0.3.3.tar.gz
Algorithm Hash digest
SHA256 8a615c8251748901926b7ac4dc9a6666634c2521c06625dd7292ffe00a501334
MD5 df555128e1d696846c9fa48acbf73239
BLAKE2b-256 62e46873a55f9a13aba7aa7a4cec2cbb7458e973676c85753f6b9ccfe56fefe4

See more details on using hashes here.

File details

Details for the file postgres_mcp_pro_plus-0.3.3-py3-none-any.whl.

File metadata

File hashes

Hashes for postgres_mcp_pro_plus-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 fa0b7795bfd47bb0617cbf0827b01f7847813d631dd02f295391007d1bb37cca
MD5 9510af7fb3b793b7f056ee24f8bb7c09
BLAKE2b-256 de2451e0fbce5d7617eccd4cfb03b357b81405d615a35532ff73baff8391264e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page