# pgEdge Postgres MCP server

> Query PostgreSQL databases from MCP clients with read-only SQL, hybrid pgvector and BM25 search, and a natural language agent.

- Listing: https://mcp.tc/i/pgedge-postgres
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: no API key needed
- Category: [Databases & Backend](https://mcp.tc/c/databases)
- Vendor: pgEdge
- Homepage: <https://docs.pgedge.com/pgedge-postgres-mcp-server>
- Repository: <https://github.com/pgEdge/pgedge-postgres-mcp>
- Package: oci `ghcr.io/pgedge/postgres-mcp:latest`

## About

Connects MCP-compatible clients to PostgreSQL 14 and higher. It runs SQL in read-only transactions by default, analyzes schemas, generates embeddings and offers hybrid search that combines pgvector, BM25 and MMR. A Natural Language Agent CLI and a React web UI let you ask questions in plain language.

Runs locally over stdio from the Docker image ghcr.io/pgedge/postgres-mcp, or from source with Go. An HTTP/HTTPS mode supports user and token authentication and TLS. You supply connection details for your own PostgreSQL database. It gives the model read access to the whole schema and data, so it suits internal and developer use rather than public-facing apps.

## What it can do

- Run SQL queries in read-only transactions
- Analyze database schemas
- Hybrid search with pgvector, BM25 and MMR
- Generate embeddings
- Read PostgreSQL statistics as resources
- Use guided prompts for database exploration and query diagnostics
- Chat with the database via CLI or web UI

## Example prompts

- "Show me the tables in my database and how they relate"
- "Which customers placed the most orders last month?"
- "Search my documents table for entries about refund policy"
- "Help me diagnose why this query is slow"

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport stdio pgedge-postgres -- docker run -i --rm ghcr.io/pgedge/postgres-mcp:latest
```

2. Start Claude Code and type `/mcp`. **pgedge-postgres** should show as connected.

Add `--scope user` to make it available in every project.

### Claude Desktop

1. Open **Settings → Developer → Edit Config**. It opens `claude_desktop_config.json`. Add:

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "pgedge-postgres": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/pgedge/postgres-mcp:latest"
      ]
    }
  }
}
```

2. Save the file and restart Claude Desktop.

Needs Docker on your computer. The file lives in `~/Library/Application Support/Claude/` on macOS and `%APPDATA%\Claude\` on Windows.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=pgedge-postgres&config=eyJjb21tYW5kIjoiZG9ja2VyIiwiYXJncyI6WyJydW4iLCItaSIsIi0tcm0iLCJnaGNyLmlvL3BnZWRnZS9wb3N0Z3Jlcy1tY3A6bGF0ZXN0Il19>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "pgedge-postgres": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/pgedge/postgres-mcp:latest"
      ]
    }
  }
}
```

Needs Docker on your computer.

### VS Code

[Install in VS Code](<https://vscode.dev/redirect/mcp/install?name=pgedge-postgres&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22ghcr.io%2Fpgedge%2Fpostgres-mcp%3Alatest%22%5D%7D>) (opens VS Code)

Or from a terminal:

```bash
code --add-mcp '{"name":"pgedge-postgres","type":"stdio","command":"docker","args":["run","-i","--rm","ghcr.io/pgedge/postgres-mcp:latest"]}'
```

Or commit it to the repo in `.vscode/mcp.json`:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "pgedge-postgres": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/pgedge/postgres-mcp:latest"
      ]
    }
  }
}
```

Needs Docker on your computer.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "pgedge-postgres": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/pgedge/postgres-mcp:latest"
      ]
    }
  }
}
```

2. Refresh the MCP server list in Cascade.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
codex mcp add pgedge-postgres -- docker run -i --rm ghcr.io/pgedge/postgres-mcp:latest
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.pgedge-postgres]
command = "docker"
args = ["run", "-i", "--rm", "ghcr.io/pgedge/postgres-mcp:latest"]
```

Needs Docker on your computer.

### Gemini CLI

```bash
gemini mcp add pgedge-postgres docker -- run -i --rm ghcr.io/pgedge/postgres-mcp:latest
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients that start local servers accept this shape:

```json
{
  "mcpServers": {
    "pgedge-postgres": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/pgedge/postgres-mcp:latest"
      ]
    }
  }
}
```

Zed puts servers under `context_servers` in its settings, with the same `command`, `args` and `env` fields.

Needs Docker on your computer.

## Details

- Server version: 1.0.0
- Last checked: 2026-10-04
- Listed: 2026-10-04
- Updated: 2026-10-04

---
Source: https://mcp.tc/i/pgedge-postgres (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
