PostgreSQL

by antonorlov

2 stars
659 downloads
Not rated
GitHub

About

Provides a bridge to PostgreSQL databases for executing SQL queries, managing tables, and inspecting schemas with support for prepared statements and multiple parameter styles

Details

Author
antonorlov
Repository
antonorlov/mcp-postgres-server
GitHub stars
2
Downloads
659
License
MIT License
Categories
Database, Other, Productivity, Developer Tools, Design, AI, Search, Infrastructure, Frontend, Project Management

Secure connection handling with automatic cleanup
Prepared statement support for query parameters
Support for both PostgreSQL-style ($1, $2) and MySQL-style (?) parameter placeholders
Comprehensive error handling and validation
TypeScript support
Automatic connection management
Supports PostgreSQL-specific syntax and features
Multi-schema support for database operations

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name PostgreSQL
    Command (node, npx, python, etc.) npx
    Arguments
    • Argument 1 -y
    • Argument 2 mcp-postgres-server
    Environment
    • PG_HOST your_host
    • PG_PORT 5432
    • PG_USER your_user
    • PG_DATABASE your_database
    • PG_PASSWORD your_password

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

The server requires the following environment variables:

{
  "mcpServers": {
    "postgres": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-postgres-server"],
      "env": {
        "PG_HOST": "your_host",
        "PG_PORT": "5432",
        "PG_USER": "your_user",
        "PG_PASSWORD": "your_password",
        "PG_DATABASE": "your_database"
      }
    }
  }
}
npm install mcp-postgres-server

Or run directly with:

npx mcp-postgres-server

connect_db

Establish connection to PostgreSQL database using provided credentials. Parameters: host (string), port (number), user (string), password (string), database (string)

query

Execute SELECT queries with optional prepared statement parameters. Parameters: sql (string), params (array of values)

execute

Execute INSERT, UPDATE, or DELETE queries with optional prepared statement parameters. Parameters: sql (string), params (array of values)

list_schemas

List all schemas in the connected database. Parameters: none

list_tables

List tables in the connected database. Accepts an optional schema parameter (defaults to 'public'). Parameters: schema (optional string)

describe_table

Get the structure of a specific table. Accepts an optional schema parameter (defaults to 'public'). Parameters: table (string), schema (optional string)

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "postgresql": {
            "env": {
                "PG_HOST": "your_host",
                "PG_PORT": "5432",
                "PG_USER": "your_user",
                "PG_DATABASE": "your_database",
                "PG_PASSWORD": "your_password"
            },
            "args": [
                "-y",
                "mcp-postgres-server"
            ],
            "command": "npx"
        }
    }
}

Linux

{
    "env": {
        "PG_HOST": "your_host",
        "PG_PORT": "5432",
        "PG_USER": "your_user",
        "PG_DATABASE": "your_database",
        "PG_PASSWORD": "your_password"
    },
    "args": [
        "-y",
        "mcp-postgres-server"
    ],
    "command": "npx"
}

Macos

{
    "env": {
        "PG_HOST": "your_host",
        "PG_PORT": "5432",
        "PG_USER": "your_user",
        "PG_DATABASE": "your_database",
        "PG_PASSWORD": "your_password"
    },
    "args": [
        "-y",
        "mcp-postgres-server"
    ],
    "command": "npx"
}

Windows

{
    "env": {
        "PG_HOST": "your_host",
        "PG_PORT": "5432",
        "PG_USER": "your_user",
        "PG_DATABASE": "your_database",
        "PG_PASSWORD": "your_password"
    },
    "args": [
        "/c",
        "npx",
        "-y",
        "mcp-postgres-server"
    ],
    "command": "cmd"
}

MCP PostgreSQL Server

A Model Context Protocol server that provides PostgreSQL database operations. This server enables AI models to interact with PostgreSQL databases through a standardized interface.

Installation

Manual Installation

npm install mcp-postgres-server

Or run directly with:

npx mcp-postgres-server

Configuration

The server requires the following environment variables:

{
  "mcpServers": {
    "postgres": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-postgres-server"],
      "env": {
        "PG_HOST": "your_host",
        "PG_PORT": "5432",
        "PG_USER": "your_user",
        "PG_PASSWORD": "your_password",
        "PG_DATABASE": "your_database"
      }
    }
  }
}

Available Tools

1. connect_db

Establish connection to PostgreSQL database using provided credentials.

use_mcp_tool({
  server_name: "postgres",
  tool_name: "connect_db",
  arguments: {
    host: "localhost",
    port: 5432,
    user: "your_user",
    password: "your_password",
    database: "your_database"
  }
});

2. query

Execute SELECT queries with optional prepared statement parameters. Supports both PostgreSQL-style ($1, $2) and MySQL-style (?) parameter placeholders.

use_mcp_tool({
  server_name: "postgres",
  tool_name: "query",
  arguments: {
    sql: "SELECT  FROM users WHERE id = $1",
    params: [1]
  }
});

3. execute

Execute INSERT, UPDATE, or DELETE queries with optional prepared statement parameters. Supports both PostgreSQL-style ($1, $2) and MySQL-style (?) parameter placeholders.

use_mcp_tool({
  server_name: "postgres",
  tool_name: "execute",
  arguments: {
    sql: "INSERT INTO users (name, email) VALUES ($1, $2)",
    params: ["John Doe", "john@example.com"]
  }
});

4. list_schemas

List all schemas in the connected database.

use_mcp_tool({
  server_name: "postgres",
  tool_name: "list_schemas",
  arguments: {}
});

5. list_tables

List tables in the connected database. Accepts an optional schema parameter (defaults to 'public').

// List tables in the 'public' schema (default)
use_mcp_tool({
  server_name: "postgres",
  tool_name: "list_tables",
  arguments: {}
});

// List tables in a specific schema
use_mcp_tool({
server_name: "postgres",
tool_name: "list_tables",
arguments: {
schema: "my_schema"
}
});

6. describe_table

Get the structure of a specific table. Accepts an optional schema parameter (defaults to 'public').

// Describe a table in the 'public' schema (default)
use_mcp_tool({
  server_name: "postgres",
  tool_name: "describe_table",
  arguments: {
    table: "users"
  }
});

// Describe a table in a specific schema
use_mcp_tool({
server_name: "postgres",
tool_name: "describe_table",
arguments: {
table: "users",
schema: "my_schema"
}
});

Features

Secure connection handling with automatic cleanup
Prepared statement support for query parameters
Support for both PostgreSQL-style ($1, $2) and MySQL-style (?) parameter placeholders
Comprehensive error handling and validation
TypeScript support
Automatic connection management
Supports PostgreSQL-specific syntax and features
Multi-schema support for database operations

Security

Uses prepared statements to prevent SQL injection
Supports secure password handling through environment variables
Validates queries before execution
Automatically closes connections when done

Error Handling

The server provides detailed error messages for common issues:

Connection failures
Invalid queries
Missing parameters

  • Database errors


License

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.