About PostgreSQL MCP Server
PostgreSQL MCP Server is an MCP server for managing PostgreSQL databases. It helps analyze existing setups, provide installation guidance and debug database issues. It suits developers and administrators who want AI assistance for database operations.
Key features
- 01analyze_database for configuration, performance and security review
- 02get_setup_instructions with platform-specific installation steps
- 03debug_database for connection, lock and replication issues
- 04SSL/TLS connection support and connection timeouts
- 05SQL query validation and operation logging
Use cases
- 01Reviewing configuration and performance metrics of a database
- 02Generating PostgreSQL installation steps for Linux, macOS or Windows
- 03Diagnosing connection failures or lock conflicts
MCP support
This is an MCP server that exposes analyze_database, get_setup_instructions and debug_database tools to MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEPostgreSQL MCP Server
A Model Context Protocol (MCP) server that provides PostgreSQL database management capabilities. This server assists with analyzing existing PostgreSQL setups, providing implementation guidance, and debugging database issues.
Features
1. Database Analysis (analyze_database)
Analyzes PostgreSQL database configuration and performance metrics:
- Configuration analysis
- Performance metrics
- Security assessment
- Recommendations for optimization
// Example usage
{
"connectionString": "postgresql://user:password@localhost:5432/dbname",
"analysisType": "performance" // Optional: "configuration" | "performance" | "security"
}
2. Setup Instructions (get_setup_instructions)
Provides step-by-step PostgreSQL installation and configuration guidance:
- Platform-specific installation steps
- Configuration recommendations
- Security best practices
- Post-installation tasks
// Example usage
{
"platform": "linux", // Required: "linux" | "macos" | "windows"
"version": "15", // Optional: PostgreSQL version
"useCase": "production" // Optional: "development" | "production"
}
3. Database Debugging (debug_database)
Debug common PostgreSQL issues:
- Connection problems
- Performance bottlenecks
- Lock conflicts
- Replication status
// Example usage
{
"connectionString": "postgresql://user:password@localhost:5432/dbname",
"issue": "performance", // Required: "connection" | "performance" | "locks" | "replication"
"logLevel": "debug" // Optional: "info" | "debug" | "trace"
}
Prerequisites
- Node.js >= 18.0.0
- PostgreSQL server (for target database operations)
- Network access to target PostgreSQL instances
Installation
Installing via Smithery
To install PostgreSQL MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @nahmanmate/postgresql-mcp-server --client claude
Manual Installation
- Clone the repository
- Install dependencies:
npm install - Build the server:
npm run build - Add to MCP settings file:
{ "mcpServers": { "postgresql-mcp": { "command": "node", "args": ["/path/to/postgresql-mcp-server/build/index.js"], "disabled": false, "alwaysAllow": [] } } }
Development
npm run dev- Start development server with hot reloadnpm run lint- Run ESLintnpm test- Run tests
Security Considerations
-
Connection Security
- Uses connection pooling
- Implements connection timeouts
- Validates connection strings
- Supports SSL/TLS connections
-
Query Safety
- Validates SQL queries
- Prevents dangerous operations
- Implements query timeouts
- Logs all operations
-
Authentication
- Supports multiple authentication methods
- Implements role-based access control
- Enforces password policies
- Manages connection credentials securely
Best Practices
- Always use secure connection strings with proper credentials
- Follow production security recommendations for sensitive environments
- Regularly monitor and analyze database performance
- Keep PostgreSQL version up to date
- Implement proper backup strategies
- Use connection pooling for better resource management
- Implement proper error handling and logging
- Regular security audits and updates
Error Handling
The server implements comprehensive error handling:
- Connection failures
- Query timeouts
- Authentication errors
- Permission issues
- Resource constraints
Running evals and tests
The evals package loads an mcp client that then runs the index.ts file, so there is no need to rebuild between tests. You can see the full documentation here.
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/index.ts
Contributing
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
License
This project is licensed under the AGPLv3 License - see LICENSE file for details.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.