mcp-postgresql
A production-oriented MCP server that enables interaction with PostgreSQL databases, providing tools for query execution and schema introspection:
execute_query: Run any SQL statement (SELECT,INSERT,UPDATE,DELETE) and receive result rows or the affected row count.list_tables: Discover all tables in the current database, with an optional filter by schema name.describe_table: Inspect a table's full structure — column names, data types, nullability, default values, and primary key markers.list_databases: Retrieve all PostgreSQL databases available on the connected server.get_table_indexes: View all indexes on a specific table, including their definitions and uniqueness/primary key flags.get_foreign_keys: Discover all foreign key constraints on a table, including referenced target tables and columns.
Provides tools to execute SQL queries, list tables, describe table schemas, list databases, get table indexes, and foreign keys for a PostgreSQL database.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-postgresqllist all tables in the public schema"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-postgresql
Production-oriented MCP server for PostgreSQL, exposing database operations to MCP clients (Claude Desktop, VS Code Copilot, Cursor, and compatible hosts).
Features
Query execution (
SELECT,INSERT,UPDATE,DELETE)Database discovery and schema introspection
Table metadata inspection (columns, types, nullability, defaults, PK)
Index and foreign key discovery
Environment-driven configuration for secure deployment
Related MCP server: Database MCP Server
Available Tools
Tool | Description |
| Executes a SQL statement and returns rows or affected row count |
| Lists tables from |
| Returns table column metadata and primary key markers |
| Lists all PostgreSQL databases |
| Lists table indexes with definitions and PK/unique flags |
| Lists table foreign keys and referenced targets |
Requirements
Node.js 18+
Access to a PostgreSQL instance
Network connectivity from MCP host to PostgreSQL (
host:port)
Configuration
Set connection settings using environment variables:
Variable | Required | Default | Description |
| No |
| PostgreSQL host or IP |
| No |
| PostgreSQL TCP port |
| No |
| Default database |
| Yes | — | Database user |
| Yes | — | Database password |
| No |
| Enables SSL/TLS |
| No |
| Max pool connections |
| No |
| Pool idle timeout (ms) |
| No |
| Transport mode: |
| No |
| Port for the HTTP server (only used when |
| No |
| Bind address for the HTTP server (only used when |
Usage
Run directly from GitHub
npx github:ferronicardoso/mcp-postgresqlClaude Desktop configuration
%APPDATA%\\Claude\\claude_desktop_config.json:
{
"mcpServers": {
"postgresql": {
"command": "npx",
"args": ["github:ferronicardoso/mcp-postgresql"],
"env": {
"PGHOST": "localhost",
"PGPORT": "5432",
"PGDATABASE": "postgres",
"PGUSER": "postgres",
"PGPASSWORD": "your-password"
}
}
}
}VS Code MCP configuration
.vscode/mcp.json:
{
"servers": {
"postgresql": {
"command": "npx",
"args": ["github:ferronicardoso/mcp-postgresql"],
"env": {
"PGHOST": "localhost",
"PGPORT": "5432",
"PGDATABASE": "postgres",
"PGUSER": "postgres",
"PGPASSWORD": "your-password"
}
}
}
}Run with Docker (HTTP transport)
The published image runs in Streamable HTTP mode by default, for use as a remote MCP endpoint (e.g. from n8n's MCP Client Tool node or any Streamable HTTP-compatible client):
docker run -d --name mcp-postgresql \
-p 3002:3002 \
-e PGHOST=host.docker.internal \
-e PGPORT=5432 \
-e PGDATABASE=postgres \
-e PGUSER=postgres \
-e PGPASSWORD=your-password \
ghcr.io/ferronicardoso/mcp-postgresql:latestThe MCP endpoint is then available at http://localhost:3002/mcp.
Local Development
git clone https://github.com/ferronicardoso/mcp-postgresql
cd mcp-postgresql
npm install
npm run buildStart the compiled server:
npm startBuild and Commit Workflow
This repository intentionally tracks dist/ to support npx github:user/repo usage.
The project uses a Husky pre-commit hook to:
build TypeScript (
npm run build)stage generated artifacts (
git add dist)
Manual fallback:
npm run build
git add distSecurity Notes
Never commit real credentials or
.envfiles.Prefer least-privilege database users for production use.
For public or untrusted networks, enable encryption (
PGSSL=true) and configure certificates appropriately.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceA general-purpose PostgreSQL MCP server with full read-write SQL access, atomic multi-statement transactions, and schema inspection. Works with any PostgreSQL instance — local, Supabase, AWS RDS, or self-hosted — and connects to Claude, Cursor, Windsurf, or any MCP-compatible AI client.Last updated1242ISC
- Alicense-qualityDmaintenanceAn extensible MCP server for database operations that supports PostgreSQL for managing schemas, tables, data, and user permissions. It features automatic migration recording for DDL changes and integrates with various AI-powered editors like Cursor, Zed, and Claude Code.Last updated412MIT
- Alicense-qualityDmaintenanceA Model Context Protocol (MCP) Server that allows AI models to securely interact with data hosted in Azure Database for PostgreSQL. It enables natural language querying, schema exploration, and data management through MCP clients like Claude Desktop and Visual Studio Code.Last updatedMIT
- Alicense-qualityCmaintenanceA production-ready MCP server for PostgreSQL — built for Claude Desktop, Claude Code, and any MCP-compatible AI agent.Last updatedApache 2.0
Related MCP Connectors
MCP server for managing Prisma Postgres.
MCP server for interacting with the Supabase platform
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ferronicardoso/mcp-postgresql'
If you have feedback or need assistance with the MCP directory API, please join our Discord server