postgres-mcp-server

postgres-mcp-server

A Model Context Protocol server that provides secure database access to PostgreSQL through Kysely ORM, enabling natural language interaction with PostgreSQL databases. It offers 40+ MCP tools for querying, schema inspection, diagnostics, and Java backend monitoring.

Category
Visit Server

README

PostgreSQL MCP Server

A secure Model Context Protocol (MCP) Server for PostgreSQL built with Kysely ORM. It enables AI assistants such as Claude Desktop, GitHub Copilot, Cline, and others to interact with PostgreSQL databases using natural language.

npm version Tests GitHub issues

A secure Model Context Protocol (MCP) server for PostgreSQL built with Kysely ORM. It provides AI assistants with secure, read-only (by default) access to PostgreSQL databases using natural language.


Table of Contents


Features

Database Features

  • ✅ PostgreSQL 12–18 support
  • ✅ Multi-database support
  • ✅ Lazy database initialization
  • ✅ Connection pooling
  • ✅ Query timeout configuration
  • ✅ Read-only mode by default
  • ✅ Parameterized queries (SQL Injection protection)
  • ✅ Type-safe validation using Zod

MCP Capabilities

More than 40 MCP tools covering:

  • SQL Query Execution
  • Schema Inspection
  • Table Explorer
  • Index Explorer
  • Query Explain Plan
  • Database Diagnostics
  • Performance Monitoring
  • PostgreSQL DBA Utilities
  • Java Backend Monitoring

PostgreSQL Advanced Monitoring

Supports PostgreSQL modern features including:

  • Partitioning
  • WAL Monitoring
  • Replication
  • Parallel Query
  • JSONB Analysis
  • Generated Columns
  • Extended Statistics
  • Autovacuum Advisor
  • Backup Monitoring
  • Huge Pages
  • Extensions
  • Foreign Key Analysis

Java Backend Support

Built specifically for Java backend engineers.

Supports monitoring for:

  • Spring Boot
  • Quarkus
  • Hibernate
  • Spring Data JPA
  • HikariCP
  • Flyway
  • Liquibase
  • JDBC Batch
  • Transaction Monitoring
  • Connection Leak Detection

Installation

Run directly with NPX:

npx @irsyadjpp/postgres-mcp-server

Configuration

The server supports three configuration methods.

Option 1 — Environment Variables (Recommended)

Default Database

DB_HOST=127.0.0.1
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=your_password
DB_NAME=postgres
DB_SSL=true

Additional Databases

DB_PROD_HOST=prod.example.com
DB_PROD_PORT=5432
DB_PROD_USER=app_user
DB_PROD_PASSWORD=secret
DB_PROD_DATABASE=production
DB_PROD_SSL=true

DB_STAGING_HOST=staging.example.com
DB_STAGING_PORT=5432
DB_STAGING_USER=app_user
DB_STAGING_PASSWORD=secret
DB_STAGING_DATABASE=staging
DB_STAGING_SSL=true

Option 2 — JSON Configuration

Set:

DB_CONFIG_PATH=/path/to/db-config.json

Example:

{
  "databases": [
    {
      "name": "default",
      "host": "127.0.0.1",
      "port": 5432,
      "user": "postgres",
      "password": "password",
      "database": "postgres",
      "maxConnections": 5,
      "ssl": true
    },
    {
      "name": "production",
      "host": "prod.example.com",
      "port": 5432,
      "user": "app_user",
      "password": "secret",
      "database": "production",
      "maxConnections": 10,
      "ssl": true
    }
  ]
}

Option 3 — Dynamic Database Selection

Every MCP tool accepts an optional parameter:

{
  "database_name": "production"
}

Example:

{
  "sql": "SELECT * FROM users",
  "database_name": "production"
}

Available Tools

Core Tools

Tool Description
query Execute SQL queries with pagination
describe_table Describe table structure
list_objects List tables, views, or functions
list_schemas List schemas
list_indexes List indexes
search_objects Search database objects
explain_query Explain execution plan
get_connections Show active connections
diagnose_database Database health check
get_slow_queries Analyze slow queries

PostgreSQL Advanced Tools

Tool Description
list_partitions Partition monitoring
replication_status Replication monitoring
progress_report VACUUM / CREATE INDEX progress
wal_monitor WAL monitoring
extended_stats Extended statistics
index_dedup Index deduplication analysis
generated_columns Generated column analysis
jsonb_analysis JSONB recommendations
parallel_query Parallel worker monitoring
autovacuum_advisor Autovacuum recommendations
huge_pages Huge pages monitoring
statements_enhanced Enhanced pg_stat_statements
foreign_key Foreign key analysis
backup_monitor Backup monitoring
extensions Installed extensions

Java Backend Tools

Tool Description
connection_pool HikariCP monitoring
jpa_mapping Validate JPA mappings
orm_performance ORM performance analysis
transaction_monitor Transaction monitoring
prepared_statement Prepared statement analysis
migration_tracking Flyway/Liquibase monitoring
orm_index_coverage ORM index recommendations
jsonb_entity JSONB entity analysis
batch_operation JDBC batch monitoring
sequence_monitor Sequence monitoring
timeseries_partition Partition recommendations
connection_leak Connection leak detection
deadlock_analysis Deadlock analysis
jpa_schema_validation Validate JPA annotations
orm_performance_baseline CRUD performance baseline

Key Capabilities

  • Multi-database support
  • Automatic pagination
  • SQL Injection protection
  • PostgreSQL diagnostics
  • Query performance analysis
  • Database health monitoring
  • DBA utilities
  • Spring Boot optimization
  • Quarkus optimization
  • Hibernate optimization

Claude Desktop Configuration

Example:

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "@irsyadjpp/postgres-mcp-server@latest"
      ],
      "env": {
        "DB_HOST": "127.0.0.1",
        "DB_PORT": "5432",
        "DB_USER": "postgres",
        "DB_PASSWORD": "password",
        "DB_NAME": "postgres",
        "DB_SSL": "true"
      }
    }
  }
}

Other Supported AI Assistants

Configuration examples are included for:

  • Claude Desktop
  • GitHub Copilot Chat
  • Cline
  • Antigravity IDE

See CONFIG-GUIDES.md for detailed setup instructions.


Claude Configuration Locations

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

Development

Clone the repository:

git clone https://github.com/irsyadjpp/postgres-mcp-server.git

cd postgres-mcp-server

npm install

Run development server:

npm run dev

Build:

npm run build

Run all tests:

npm test

Run unit tests:

npm run test:unit

Run integration tests:

npm run test:integration

Environment Variables

Variable Default Description
DB_HOST 127.0.0.1 PostgreSQL host
DB_PORT 5432 PostgreSQL port
DB_USER postgres Database user
DB_PASSWORD Database password
DB_NAME postgres Database name
DB_SSL true Enable SSL
DB_CONFIG_PATH JSON configuration path
READ_ONLY true Restrict to SELECT/EXPLAIN
QUERY_TIMEOUT 30000 Query timeout (ms)
MAX_PAGE_SIZE 500 Maximum page size
DEFAULT_PAGE_SIZE 100 Default page size

Additional databases:

DB_<NAME>_HOST
DB_<NAME>_PORT
DB_<NAME>_USER
DB_<NAME>_PASSWORD
DB_<NAME>_DATABASE
DB_<NAME>_SSL

Migration Guide

Existing users require no configuration changes.

The server maintains full backward compatibility.

To add another database:

DB_PROD_HOST=prod.example.com
DB_PROD_PORT=5432
DB_PROD_USER=app_user
DB_PROD_PASSWORD=secret
DB_PROD_DATABASE=production

Use it in any MCP tool:

{
  "database_name": "prod"
}

Alternatively, migrate to a JSON configuration by setting:

DB_CONFIG_PATH=/path/to/db-config.json

License

ISC

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured