Is the server read‑only by default?
Yes. Write operations (INSERT, UPDATE, DELETE) are blocked unless the `ALLOW_WRITE_OPERATIONS` environment variable is set to `true`.
@JaviMaligno
Basic information
MCP server with 14 tools for PostgreSQL database operations. Query databases, explore schemas, analyze tables, list indexes/constraints, and get performance statistics. Features security-first design with SQL injection prevention and read-only mode by default. Works with Claude D
Add this server to your MCP-compatible client using the configuration below.
{
"mcpServers": {
"postgres": {
"command": "postgresql-mcp",
"env": {
"POSTGRES_HOST": "localhost",
"POSTGRES_PORT": "5432",
"POSTGRES_USER": "your-user",
"POSTGRES_PASSWORD": "your-password",
"POSTGRES_DB": "your-database"
}
}
}
}Tool list not available yet
This listing does not currently have a tool list to display. This does not mean the server has no tools; check its documentation for supported capabilities.
We auto-extract tools from the README. The maintainer can list them under a ## Tools heading to populate this section.
MCP Server for PostgreSQL is a Model Context Protocol server that enables AI assistants to interact with PostgreSQL databases. It provides tools for query execution, schema exploration, performance analysis, and documentation generation, and it works with any MCP-compatible client such as Claude Code or Claude Desktop.
Install via pipx install postgresql-mcp or pip install postgresql-mcp. Configure by setting environment variables like POSTGRES_HOST, POSTGRES_USER, POSTGRES_PASSWORD, and POSTGRES_DB (with POSTGRES_PORT, POSTGRES_SSLMODE, ALLOW_WRITE_OPERATIONS, QUERY_TIMEOUT, and MAX_ROWS as optional). Then add to a client using a command like claude mcp add postgres -s user -e ... -- postgresql-mcp.
Yes. Write operations (INSERT, UPDATE, DELETE) are blocked unless the `ALLOW_WRITE_OPERATIONS` environment variable is set to `true`.
Python 3.10 or later is required. For development, `uv` and a PostgreSQL instance are needed; production use only needs the installed package.
Data remains in the PostgreSQL database that the server connects to. The server does not store any data locally.
Yes. By default, a maximum of 1000 rows is returned (`MAX_ROWS`), and queries time out after 30 seconds (`QUERY_TIMEOUT`). These can be configured via environment variables.
The server connects to PostgreSQL using credentials provided as environment variables (`POSTGRES_USER`, `POSTGRES_PASSWORD`). Passwords are stored using Pydantic’s `SecretStr` and never appear in logs or error messages.

Safety-first stdio MCP server with 38 tools for operating Docker-based local-ydb environments locally or over SSH.
The Xata MCP server lets AI assistants and agents interact with your Xata organizations, projects, and Postgres database branches.

Model Context Protocol Servers
Postgres MCP Pro provides configurable read/write access and performance analysis for you and your AI agents.
Comments