MCP PostgreSQL Server

by antonorlov
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Supports installation and execution through npm and npx commands, allowing for easy deployment and integration of the MCP server within Node.js environments.

  • Enables interaction with PostgreSQL databases, providing tools for executing queries, managing database connections, listing tables, and describing table structures with support for prepared statements and comprehensive error handling.

  • Offers TypeScript support for type-safe interactions with PostgreSQL databases through the MCP server interface.

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

MIT

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Enables AI models to interact with PostgreSQL databases through a standardized interface, supporting operations like queries, table manipulation, and schema inspection.

  1. Installation
    1. Manual Installation
  2. Configuration
    1. Available Tools
      1. 1. connect_db
      2. 2. query
      3. 3. execute
      4. 4. list_schemas
      5. 5. list_tables
      6. 6. describe_table
    2. Features
      1. Security
        1. Error Handling
          1. License
            ID: 14ye5puu55