PostgreSQL
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
Jump to
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:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
PostgreSQLCommand (node, npx, python, etc.)npxArguments-
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.
-
Argument 1
- 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
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





