PostgreSQL MCP Server
Provides read-only access to PostgreSQL databases, allowing execution of SELECT/WITH queries and schema exploration (listing schemas, tables, columns).
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., "@PostgreSQL MCP ServerList all tables in the public schema."
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.
db-mcp (PostgreSQL)
MCP server in JavaScript: PostgreSQL over stdio, read-only tools (SELECT / WITH) plus schema helpers.
Repo layout
Path | What |
| MCP server (stdio) |
|
|
| Optional Next.js UI + Express API + Gemini — spawns this MCP per request ( |
Root package.json deps: @modelcontextprotocol/sdk, pg, zod, dotenv.
Related MCP server: PostgreSQL MCP Server
Requirements
Node.js 18+
PostgreSQL and a
DATABASE_URL
Install (MCP server)
cd db-mcp
npm installCopy .env.example → .env in repo root (next to root package.json). Set DATABASE_URL. Do not commit .env.
src/index.js loads that .env via dotenv using path repo root (derived from import.meta.url), so Cursor can run node …/src/index.js with any cwd. Vars already in the real environment are not overwritten.
Alternatively: export DATABASE_URL in the shell, or set env in Cursor MCP config (those win over .env).
Configuration (MCP)
Variable | Required | Description |
| Yes | URI, e.g. |
| No | Statement timeout in ms (default |
Connection startup uses libpq -c default_transaction_read_only=on and -c statement_timeout=… (see src/pool.js). Prefer a read-only DB role in production.
Run MCP (stdio)
npm startPowerShell (if not using .env):
$env:DATABASE_URL = "postgresql://USER:PASSWORD@HOST:5432/DBNAME"
npm startCursor / Claude Desktop
Point command + args at src/index.js. Pass DATABASE_URL in env if you do not rely on root .env.
Cursor (mcp.json):
{
"mcpServers": {
"postgres": {
"command": "node",
"args": ["C:/Users/YourUser/Desktop/db-mcp/src/index.js"],
"env": {
"DATABASE_URL": "postgresql://USER:PASSWORD@localhost:5432/mydb"
}
}
}
}Use a real absolute path. Reload MCP after edits.
How to test
Method | What you do |
Cursor | Agent (or chat with tools). Natural language, e.g. “List |
|
|
Playground | Browser UI: Gemini drives same MCP over stdio. |
If tools never show: MCP disconnected in UI, or chat mode has no tool use.
Tools
Tool | Purpose |
| Non-system schemas |
| Tables/views in a schema (default |
| Columns for a table or view |
| Single |
pg_query: no multi-statement (; only at end); must start with SELECT or WITH.
Security
DATABASE_URL= secret; least-privilege role.Read-only intent; DB should still enforce if
default_transaction_read_onlybypassed.LLM + SQL = cost + data exposure risk; tight timeouts, read replica when possible.
Playground = local dev only; do not expose API without auth.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
Generate, fix, explain and run read-only SQL on PostgreSQL, MySQL and SQL Server
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
Query your Postgres from ChatGPT or Claude without exposing the database or handing over credentials. Run npx boltschema connect next to your database and it dials out over HTTPS — no inbound firewall rule, no open port, works with localhost and VPC-private databases. Read-only is enforced by a SQL guard, a Postgres READ ONLY transaction, and a scoped role generated for you.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceEnables secure read-only interactions with PostgreSQL databases through natural language. Provides database inspection, table listing, and SQL query execution with built-in security validation.-
- AlicenseNot gradedqualityDmaintenanceProvides read-only access to PostgreSQL databases, enabling users to list tables, view table structures and statistics, and execute SELECT queries safely through natural language.74 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables secure read-only access to PostgreSQL databases, allowing users to list tables, query schemas, execute SELECT statements, and inspect table structures through natural language interactions.347 npm4MIT
- AlicenseAqualityBmaintenanceEnables read-only interaction with PostgreSQL databases through natural language queries, supporting dynamic connections and secure query validation.3128 npm2MIT