pgsql-mcp

pgsql-mcp

Enables interaction with PostgreSQL databases through comprehensive database management tools including index tuning, query execution plans, health checks, schema intelligence, and safe SQL execution with configurable read-only mode for production use.

Category
Visit Server

README

pgsql-mcp

License: MIT PyPI - Version

A PostgreSQL MCP server with index tuning, explain plans, health checks, and safe SQL execution.

Features

  • Database Health - analyze index health, connection utilization, buffer cache, vacuum health, and more
  • Index Tuning - find optimal indexes for your workload using industrial-strength algorithms
  • Query Plans - review EXPLAIN plans and simulate hypothetical indexes
  • Schema Intelligence - context-aware SQL generation
  • Safe SQL Execution - configurable read-only mode for production use

Quick Start

Claude Code / Cloud IDEs

For Claude Code or cloud-based IDEs, add to your MCP configuration:

{
  "mcpServers": {
    "postgres": {
      "command": "uvx",
      "args": ["pgsql-mcp", "--access-mode=unrestricted"],
      "env": {
        "DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"
      }
    }
  }
}

VS Code / Cursor / Windsurf

Using SSE (recommended for IDEs):

  1. Start the server:
docker run -p 8000:8000 \
  -e DATABASE_URI=postgresql://username:password@localhost:5432/dbname \
  pgsql-mcp --access-mode=unrestricted --transport=sse
  1. Add to your MCP config (mcp.json for Cursor, mcp_config.json for Windsurf):
{
  "mcpServers": {
    "postgres": {
      "type": "sse",
      "url": "http://localhost:8000/sse"
    }
  }
}

Note: Windsurf uses serverUrl instead of url.

Using stdio:

{
  "mcpServers": {
    "postgres": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "DATABASE_URI",
        "pgsql-mcp",
        "--access-mode=unrestricted"
      ],
      "env": {
        "DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"
      }
    }
  }
}

Docker

docker pull pgsql-mcp

Run with stdio:

docker run -i --rm \
  -e DATABASE_URI=postgresql://username:password@localhost:5432/dbname \
  pgsql-mcp --access-mode=unrestricted

Run with SSE:

docker run -p 8000:8000 \
  -e DATABASE_URI=postgresql://username:password@localhost:5432/dbname \
  pgsql-mcp --access-mode=unrestricted --transport=sse

Python Installation

pipx install pgsql-mcp
# or
uv pip install pgsql-mcp

Access Modes

  • --access-mode=unrestricted - Full read/write access (development)
  • --access-mode=restricted - Read-only with resource limits (production)

Optional: Postgres Extensions

For full index tuning capabilities, install these extensions:

CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
CREATE EXTENSION IF NOT EXISTS hypopg;

Available Tools

Tool Description
list_schemas List all database schemas
list_objects List tables, views, sequences in a schema
get_object_details Get columns, constraints, indexes for an object
execute_sql Execute SQL (read-only in restricted mode)
explain_query Get query execution plans with hypothetical index support
get_top_queries Find slowest queries via pg_stat_statements
analyze_workload_indexes Recommend indexes for your workload
analyze_query_indexes Recommend indexes for specific queries
analyze_db_health Run comprehensive health checks

License

MIT

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
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
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
Qdrant Server

Qdrant Server

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

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
E2B

E2B

Using MCP to run code via e2b.

Official
Featured