PostgreSQL MCP Server
Official MCP server for PostgreSQL database integration.
Installation
npm install -g @modelcontextprotocol/server-postgres
Configuration
Add to your Claude configuration:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://user:password@localhost:5432/database"
]
}
}
}
Available Tools
query
Execute a SQL query.
{
"sql": "SELECT * FROM users WHERE active = true LIMIT 10"
}
list_tables
List all tables in the database.
{}
describe_table
Get table schema information.
{
"table": "users"
}
Resources
The server exposes database schema as resources:
postgres://tables- List of all tablespostgres://schema/{table}- Schema for specific table
Security Best Practices
Use Read-Only Credentials
sql
CREATE ROLE claude_readonly LOGIN PASSWORD 'secure_password';
GRANT CONNECT ON DATABASE mydb TO claude_readonly;
GRANT USAGE ON SCHEMA public TO claude_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO claude_readonly;
Limit Access
- Only grant access to necessary schemas
- Exclude sensitive tables
- Use connection pooling
Audit Queries
- Enable PostgreSQL query logging
- Monitor for unusual patterns
Use Cases
- Data exploration and analysis
- Schema documentation
- Query optimization suggestions
- Data quality checks
- Report generation
Example Workflows
Analyze Table Structure
"Describe the users table and suggest indexes for common query patterns"
Data Quality Check
"Find any NULL values in required fields across all tables"
Query Optimization
"Analyze this slow query and suggest improvements"