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 controlsampling_mode(default: true): Statistical sampling for large datasets to optimize execution timetimeout(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.waitstartfor 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file postgres_mcp_pro_plus-0.4.5.tar.gz.
File metadata
- Download URL: postgres_mcp_pro_plus-0.4.5.tar.gz
- Upload date:
- Size: 240.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ef9f495fcae6e0e4af9d132c95e06ab7b670607e5c96fab0a28620b3997fa5f
|
|
| MD5 |
4ce84fdabd1f867056fba8cfcb7f536e
|
|
| BLAKE2b-256 |
8debb63adb2eb76670c19643e5c20c0e316a8621a372ccaa45884175588999e6
|
File details
Details for the file postgres_mcp_pro_plus-0.4.5-py3-none-any.whl.
File metadata
- Download URL: postgres_mcp_pro_plus-0.4.5-py3-none-any.whl
- Upload date:
- Size: 120.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ceda3943ea86318970220aec3535f57f0ad9930003fd3827aed9aff22928b1a
|
|
| MD5 |
0987acc0969bbbf9017b003adb1091ec
|
|
| BLAKE2b-256 |
287297e7f69c4a09b4e78f9c362423cef90de6308d043dc8853e554235cd761f
|