mcp-server-postgres
Provides tools to interact with PostgreSQL databases, executing validated SQL queries, schema inspection, transaction management, and more.
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-server-postgresWhat are the top 5 products by revenue?"
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-server-postgres
Production-Grade, Schema-Aware PostgreSQL Agent via Model Context Protocol (MCP)
mcp-server-postgres is an intelligent database isolation layer designed to bridge the gap between Large Language Models (LLMs) and production PostgreSQL clusters. Developed with a security-first, schema-aware architecture, it translates natural language requests into validated, optimized, and ACID-compliant SQL.
🏗️ Technical Architecture
graph TD
Client[MCP Client/LLM] -->|JSON-RPC| Server[MCP Server Hub]
Server -->|Validation| Guard[Security Guardrails]
Guard -->|AST/Pattern Scan| SQL[Validated SQL]
SQL -->|Execution| Pool[Connection Pool Manager]
Pool -->|Write Ops| Primary[Primary DB]
Pool -->|Read Ops| Replica[Read Replicas]
Pool -->|Auditing| Audit[Pino Structured Logs]Key Architectural Pillars
Zero-Trust Safety Pipeline: Multi-stage validation including "SELECT *" detection, mandatory schema qualification, and SQL injection prevention.
Intelligent Pagination: Transparent query wrapping to ensure result boundedness (Default: 100 rows) without performance degradation.
Dynamic Schema Introspection: Enables LLMs to resolve exact table relationships and indexes in real-time.
Isolation Layers: Implements strict Permission Tiers (
READ_ONLYtoADMIN) to maintain least-privilege principles.
🔒 Security Guardrails (Non-Negotiable)
Rule-01: No Unbounded Writes: Rejects any
UPDATEorDELETEmissing an explicitWHEREclause.Rule-04: DDL Confirmation: High-risk schema mutations require a two-step tokenized confirmation flow.
Masking: Native support for PII redaction on sensitive columns (e.g.,
password_hash,ssn).Transaction Wrapping: All multi-statement operations are executed inside durable
BEGIN/COMMITblocks.
🛠️ Configuration
Configure your environment variables in .env:
Variable | Description | Default |
| Primary PostgreSQL DSN | Required |
| Optional replica DSN for read routing |
|
|
|
|
| Comma-separated list of columns to redact |
|
| Hard upper limit for result pages |
|
| Warning threshold for latency |
|
📋 Toolset API
query(sql, params, page, page_size): Executes validated SQL. Includes auto-pagination.nl_query(request, context): High-level translation interface (requires LLM bridge).schema_inspect(schema, table): Deep introspection of schema metadata.list_tables(schema): Optimized enumeration of current database schema.describe_table(schema, table): Column definitions, indexes, and FK relationships.explain(sql, params): Transparent query analyzer with cost estimation.transaction(operations): Atomic batch execution for complex mutations.confirm_ddl(token): Final execution of verified schema changes.
🚦 Getting Started
Development
npm install
npm run build
npm run startIntegration with Claude Desktop
Add to yours claude_desktop_config.json:
{
"mcpServers": {
"postgres": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-postgres/dist/index.js"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost:5432/db",
"PERMISSION_TIER": "READ_WRITE"
}
}
}
}📈 Observability & Logging
All operations are logged via pino for enterprise observability.
{
"level": "INFO",
"module": "audit",
"operation_type": "QUERY",
"affected_tables": ["public.users"],
"execution_ms": 12.4,
"row_count": 8,
"agent_identity": "mcp-server-postgres"
}⚖️ License
MIT License. Created with precision by Ismail-2001.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/Ismail-2001/mcp-server-postgres'
If you have feedback or need assistance with the MCP directory API, please join our Discord server