capital.hove/read-only-local-postgres-mcp-server

MCP server for read-only PostgreSQL database queries in Claude Desktop

1MITdatabases

Install

Config snippet generator goes here (5 client tabs)

README

# PostgreSQL MCP Server

[![MCP Registry](https://img.shields.io/badge/MCP_Registry-Available-blue)](https://registry.modelcontextprotocol.io)
[![npm version](https://img.shields.io/npm/v/@hovecapital/read-only-postgres-mcp-server.svg)](https://www.npmjs.com/package/@hovecapital/read-only-postgres-mcp-server)

A Model Context Protocol (MCP) server that enables Claude Desktop to interact with PostgreSQL databases through natural language queries.

## Features

- Execute read-only SQL queries through Claude Desktop or Claude Code
- **Dynamic database connections** - connect to any PostgreSQL database at runtime
- Built-in security with query validation (only SELECT statements allowed)
- Easy integration with Claude Desktop and Claude Code
- JSON formatted query results
- Environment-based default configuration with runtime override support

## Quick Start

### For Claude Code Users (Recommended - Easiest Method)

```bash
claude mcp add postgres -s user -- npx -y @hovecapital/read-only-postgres-mcp-server
```

Then set your database environment variables:

```bash
export DB_HOST=localhost
export DB_PORT=5432
export DB_DATABASE=your_database_name
export DB_USERNAME=your_username
export DB_PASSWORD=your_password
```

**Done!** Restart Claude Code and ask: "What tables are in my database?"

### For Claude Desktop Users (Manual Configuration)

**1. Open your config file:**

```bash
# macOS
open ~/Library/Application\ Support/Claude/claude_desktop_config.json

# Windows
notepad %APPDATA%\Claude\claude_desktop_config.json
```

**2. Add this configuration:**

```json
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@hovecapital/read-only-postgres-mcp-server"],
      "env": {
        "DB_HOST": "localhost",
        "DB_PORT": "5432",
        "DB_DATABASE": "your_database_name",
        "DB_USERNAME": "your_username",
        "DB_PASSWORD": "your_password"
      }
    }
  }
}
```

**3. Save, restart Claude Desktop, and test!**

## Prerequisites

- Node.js (v16 or higher) - If using mise, update the command path accordingly
- PostgreSQL database server
- Claude Desktop application

## Installation

### Option 1: Install from MCP Registry (Recommended)

This server is published in the [Model Context Protocol Registry](https://registry.modelcontextprotocol.io) as `capital.hove/read-only-local-postgres-mcp-server`.

#### Method A: Claude Code CLI (Easiest!)

```bash
claude mcp add postgres -s user -- npx -y @hovecapital/read-only-postgres-mcp-server
```

Then configure your database credentials using environment variables. Restart Claude Code and you're done!

**Benefits:**

- One command installation
- No manual JSON editing
- Automatic configuration

#### Method B: Manual JSON Configuration

**For Claude Desktop:**

Edit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):

```json
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@hovecapital/read-only-postgres-mcp-server"],
      "env": {
        "DB_HOST": "localhost",
        "DB_PORT": "5432",
        "DB_DATABASE": "your_database_name",
        "DB_USERNAME": "your_username",
        "DB_PASSWORD": "your_password"
      }
    }
  }
}
```

**For Claude Code:**

Edit `~/.config/claude-code/settings.json` (macOS/Linux) or `%APPDATA%\claude-code\settings.json` (Windows):

```json
{
  "mcp": {
    "servers": {
      "postgres": {
        "command": "npx",
        "args": ["-y", "@hovecapital/read-only-postgres-mcp-server"],
        "env": {
          "DB_HOST": "localhost",
          "DB_PORT": "5432",
          "DB_DATABASE": "your_database_name",
          "DB_USERNAME": "your_username",
          "DB_PASSWORD": "your_password"
        }
      }
    }
  }
}
```

### Option 2: Install from npm

```bash
npm install -g @hovecapital/read-only-postgres-mcp-server
```

### Option 3: Installation with Claude Code

If you're using Claude Code, you can easily install this MCP server:

```bash
# Clone the repository
git clone https://github.com/hovecapital/read-only-local-postgres-mcp-server.git
cd read-only-local-postgres-mcp-server

# Install dependencies and build
npm install
npm run build
```

Then configure Claude Code by adding to your MCP settings.

### Option 4: Manual Installation

#### 1. Clone or Download

Save the repository to a directory on your system:

```bash
mkdir ~/mcp-servers/postgres
cd ~/mcp-servers/postgres
git clone https://github.com/hovecapital/read-only-local-postgres-mcp-server.git .
```

#### 2. Install Dependencies

```bash
npm install
npm run build
```

## Configuration

> **Note:** If you installed via Option 1 (MCP Registry with npx), you've already configured everything! This section is for users who chose Options 2, 3, or 4 (npm or manual installation).

### Claude Code Configuration

If you're using Claude Code with a manual installation, add the PostgreSQL server to your MCP settings:

1. Open