Are you the author? Sign in to claim
mcp-postgresql-server
A secure, read-only PostgreSQL Model Context Protocol (MCP) server for AI assistant integration with automatic database discovery and connection management.
This tool provides two main components:
execute_query.py): Interactive PostgreSQL query
execution with support for direct queries, file input, and interactive modemcp_postgresql_server.py): AI assistant integration that allows
natural language database interactions through Claude and other MCP clients.env file managementPrerequisites: Ensure you have uv installed.
Run directly without installation:
# MCP Server for AI integration
uvx mcp-postgresql-server
# Query executor
uvx --from mcp-postgresql-server execute-query "SELECT version()"
Set your database connection:
export MCP_POSTGRESQL_DATABASE="postgres://username:password@hostname:port/database"
Or create a .env file:
MCP_POSTGRESQL_DATABASE=postgres://username:password@hostname:port/database
MCP_POSTGRESQL_READ_ONLY=true
MCP_POSTGRESQL_LOG_FILE=./mcp-postgresql.log
MCP_POSTGRESQL_LOG_LEVEL=info
Using uvx (recommended):
# Interactive mode
uvx --from mcp-postgresql-server execute-query
# Direct query
uvx --from mcp-postgresql-server execute-query "SELECT COUNT(*) FROM users"
# From file
uvx --from mcp-postgresql-server execute-query --file queries.sql
Using Python directly:
# Interactive mode
python3 execute_query.py
# Direct query
python3 execute_query.py "SELECT COUNT(*) FROM users"
# From file
python3 execute_query.py --file queries.sql
Add to ~/.claude.json:
{
"mcpServers": {
"mcp-postgres": {
"command": "uvx",
"args": ["mcp-postgresql-server"],
"env": {
"MCP_POSTGRESQL_CWD": "${PWD}"
}
}
}
}
Then ask Claude:
Create/update mcp.json in your project root:
{
"mcpServers": {
"mcp-postgresql-server": {
"command": "uvx",
"args": ["mcp-postgresql-server"],
"env": {
"MCP_POSTGRESQL_CWD": "."
}
}
}
}
The server automatically discovers database configurations from:
.env files.conf and .ini files.json and .yaml filesWhen multiple configurations are found, it presents an interactive selection menu.
Saved configurations are stored in a .env file for future use
using MCP_POSTGRESQL_DATABASE variable.
| Variable | Description | Default |
|---|---|---|
MCP_POSTGRESQL_DATABASE | PostgreSQL connection URI | Required |
MCP_POSTGRESQL_READ_ONLY | Enable read-only mode | true |
MCP_POSTGRESQL_LOG_FILE | Log file path (optional) | None |
MCP_POSTGRESQL_LOG_LEVEL | Log level (debug, info, warning, error, critical) | error |
MCP_POSTGRESQL_CWD | Path of the project working directory | . |
.env filesConnection errors: Verify MCP_POSTGRESQL_DATABASE format: postgres://user:password@host:port/database
Permission issues: Ensure database user has appropriate SELECT permissions
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases
Official MongoDB integration — query collections, run aggregations, inspect schemas
Secure MCP server for MySQL database interaction, queries, and schema management
Run Claude Code as an MCP server so any agent can delegate coding tasks to it