About Pg MCP Server
Pg MCP Server is an MCP server published by ericzakariasson in the Data category: mCP Server for Postgres.
The repository has 179 stars and 13 forks, with the last commit 2 months ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/ericzakariasson/pg-mcp-serverThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Pg MCP Server
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository yesterday. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- ✓Tests presentA test suite exists in the repository.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
Releases
README
Postgres MCP Server
A Model Context Protocol server for PostgreSQL databases. Enables LLMs to query and analyze PostgreSQL databases through a controlled interface.
https://github.com/user-attachments/assets/6571c20c-91c9-4a6e-8332-13b587b79fbf
Installation
Add to your MCP client settings:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["--yes", "pg-mcp-server", "--transport", "stdio"],
"env": {
"DATABASE_URL": "postgresql://postgres:postgres@localhost:5432/postgres"
}
}
}
}
Configuration
DATABASE_URL- PostgreSQL connection string (required)DANGEROUSLY_ALLOW_WRITE_OPS- Enable writes (default:false)DEBUG- Enable debug logging (default:false)PG_SSL_ROOT_CERT- Optional path to a TLS CA bundle (e.g., AWS RDS global bundle)
Usage
Transports
- Default transport is stdio. Switch to HTTP with the
--transportflag. - HTTP mode serves the MCP Streamable HTTP endpoint at
/mcponPORT(default3000). - Clients that support Streamable HTTP should connect to
http://localhost:3000/mcp.
Start commands:
# stdio transport (default, via installed CLI)
pg-mcp-server --transport=stdio
# http transport
pg-mcp-server --transport=http
Tools
query- Execute SQL queries{ "sql": "SELECT * FROM users WHERE active = true LIMIT 10" }
Resources
postgres://tables- List all tablespostgres://table/{schema}/{table}- Get table schema and sample data
Example Prompts
Here's an example prompt to test if your MCP server is working:
Show me the first 5 users from the database
Data Analysis & Notebooks
For data analysis and exploration, I've added a Cursor rule for using the MCP server together with notebooks in .cursor/rules/notebooks.mdc:
Quick Start with Docker
# Start PostgreSQL with sample data
bun run db:start
# Test with MCP Inspector
bun run inspector
# Stop PostgreSQL
bun run db:stop
Sample tables included: users, products, orders, order_items
Development
# Clone and install
git clone https://github.com/ericzakariasson/pg-mcp-server.git
cd pg-mcp-server
bun install
# Run (stdio transport)
bun run index.ts -- --transport=stdio
DEBUG=true bun run index.ts -- --transport=stdio
# Run (http transport)
bun run index.ts -- --transport=http
DEBUG=true bun run index.ts -- --transport=http
bun test # Run tests
Use local build in MCP client settings:
bun run build:js
{
"mcpServers": {
"postgres": {
"command": "node",
"args": ["/absolute/path/to/pg-mcp-server/lib/index.js", "--transport", "stdio"],
"env": {
"DATABASE_URL": "postgresql://postgres:postgres@localhost:5432/postgres"
}
}
}
}
Releases
This repo auto-creates a GitHub Release when you push a tag that matches the version in package.json:
- Update
CHANGELOG.mdand bump the version inpackage.json. - Commit the changes on
main(or your release branch). - Create and push a matching tag:
VERSION=$(jq -r .version package.json)
git tag v"$VERSION"
git push origin v"$VERSION"
The GitHub Actions workflow will validate that the tag (e.g. v0.1.0) matches package.json, then use gh to create a release with generated notes, and publish to npm.
License
MIT - see LICENSE
README fetched from the repository yesterday. The original is authoritative.