Provides tools for querying PostgreSQL databases, inspecting database schemas, listing tables, and retrieving detailed table information with column definitions and constraints.
MCP Postgres Server
A Model Context Protocol server for querying PostgreSQL databases with tools for data retrieval and schema inspection.
Setup
Prerequisites: Python 3.11+ and PostgreSQL
Related MCP server: PostgreSQL MCP Server
Usage
Development
Run the following command to start the server in development mode and launch the MCP Inspector:
MCP Client Integration
You can also add the following to your MCP client configuration to use the server:
See mcp.json for an example of how to add the server in Cursor IDE.
Available Tools
query_database- Execute SELECT queries (with SQL injection protection)get_table_schema- Get table column information and constraintslist_tables- List all database tablespostgres://schema- Access complete database schema (resource)
Comparison with Official MCP Postgres Server
This implementation differs from the official @modelcontextprotocol/server-postgres in several key ways:
Feature | This Server (Python) | Official Server (TypeScript) |
Safety | Guards against SQL injection | No protection |
Connection Pooling | ✅ Built-in (asyncpg) | ❌ Single connection |
Security
Only
SELECTstatements allowedParameterized queries supported
Environment-based configuration (no hardcoded credentials)
Next Steps
Implement auth for postgres - currently I'm still relying on env variables which doesn't seem very secure
Extend this to run on multiple databases and potentially multiple postgres instances as well
Implement table / column pruning