postgres-mcp-server
Allows querying and interacting with PostgreSQL databases, providing read-only queries by default, transaction management, and optional write/DDL support.
Click on "Deploy 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-serverPing the local Postgres and list its tables."
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.
postgres-mcp-server
An MCP server for safely querying PostgreSQL from an LLM. Read-only by default, multi-connection with named aliases, Postgres-session-enforced safety.
Quickstart
Create ~/.config/postgres-mcp/config.json:
{
"connections": {
"local": {
"url_env": "LOCAL_DATABASE_URL",
"mode": "read"
}
}
}Add to your MCP client config (Claude Desktop, Cursor, Windsurf, Zed):
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@arieffian/postgres-mcp-server"],
"env": { "LOCAL_DATABASE_URL": "postgres://user:pw@localhost/db" }
}
}
}Restart the client and ask: "Ping the local Postgres and list its tables."
Related MCP server: mcp-enterprise-starter
Modes
Every connection declares its mode statically in config. Escalation requires editing config and restarting.
Mode | SELECT | INSERT/UPDATE/DELETE | DDL | Notes |
read | ✓ | ✗ | ✗ | Default. |
write | ✓ | ✓ | ✗ | Writes must go through |
admin | ✓ | ✓ | ✓ | Same tx flow as write; DDL also permitted. |
Tools
Meta
ping,list_connections
SQL
query— read-only SELECT via server-side cursorbegin_transaction,commit,rollback— tx lifecycleexecute— INSERT/UPDATE/DELETE/DDL inside an open tx
Schema introspection (Phase 2, new in 0.2.0)
list_databases,list_schemaslist_tables— includes regular, partitioned, and foreign tables (viakindfield); row count is clamped to 0 for never-analyzed tableslist_indexes,list_constraints— per-table catalog listingslist_functions— excludes functions installed by extensionsdescribe_table— composite: columns, PK, FKs, indexes, constraints in one call
Observability — ships in Phase 3.
Safety
Five layers — see docs/safety.md. Highlights:
Read-only enforced by the Postgres session, not by parsing SQL — we do not trust our own parser.
Statement timeout per connection (default 30s).
Every SELECT wrapped in a server-side cursor; results capped by row count and byte size.
Writes require an explicit transaction; no autocommit.
Bound parameter values are never logged. Credentials in URLs are redacted.
Configuration
Discovery order (first hit wins):
--config <path>CLI flag$POSTGRES_MCP_CONFIGenv var$XDG_CONFIG_HOME/postgres-mcp/config.json(fallback~/.config/postgres-mcp/config.json)./postgres-mcp.config.json
Contributing
Requires Node ≥ 20. Local dev: npm install, npm test. Integration tests use testcontainers and need a working Docker daemon.
Publishing
Set NPM_TOKEN in the repo's GitHub Actions secrets. Changesets automatically opens a release PR on push to main; merging it publishes to npm with provenance.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
- dataOAuthco.thinair
PostgreSQL, MySQL, and SQL Server in one session. 26 read-only MCP tools for AI agents.
- XataOAuthio.github.xataio
Xata MCP server lets AI agents interact with your Xata projects, and Postgres database branches.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that gives an AI agent scoped, safe access to your Postgres databases with per-connection access control, row caps, timeouts, and defense-in-depth read-only enforcement.-
- AlicenseAqualityDmaintenanceA production-grade MCP server that gives AI agents safe, authenticated access to a PostgreSQL database.3MIT
- AlicenseNot gradedqualityDmaintenanceA read-only MCP server for PostgreSQL that enables safe database introspection and querying via natural language.347 npmMIT
- AlicenseNot gradedqualityAmaintenanceA hardened, read-only Postgres MCP server that enables LLMs to safely query databases without write, DDL, shell, or credential exposure.MIT