Provides tools for querying PostgreSQL databases, inspecting database schemas, listing tables, and retrieving detailed table information with column definitions and constraints.
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., "@Postgres MCP Servershow me the schema for the users table"
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 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
# Install dependencies
pip install -r requirements.txt
# Configure database connection (defaults shown)
export POSTGRES_HOST=localhost
export POSTGRES_PORT=5432
export POSTGRES_USER=postgres
export POSTGRES_PASSWORD=postgres
export POSTGRES_DB=housingRelated MCP server: PostgreSQL MCP Server
Usage
Development
Run the following command to start the server in development mode and launch the MCP Inspector:
mcp dev main.pyMCP Client Integration
You can also add the following to your MCP client configuration to use the server:
{
"mcpServers": {
"postgres": {
"command": "python",
"args": ["main.py"],
"env": {
"POSTGRES_HOST": "localhost",
"POSTGRES_PORT": "5432",
"POSTGRES_USER": "postgres",
"POSTGRES_PASSWORD": "postgres",
"POSTGRES_DB": "housing"
}
}
}
}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
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.