
PostgreSQL MCP Server
Easily connect to PostgreSQL databases via a plug-and-play MCP server. Supports SELECT, INSERT, UPDATE, and more with prepared statements, automatic connection handling, and full TypeScript support
what is MCP PostgreSQL Server?
MCP PostgreSQL Server is a Model Context Protocol server that facilitates PostgreSQL database operations, allowing AI models to interact with PostgreSQL databases through a standardized interface.
how to use MCP PostgreSQL Server?
To use the server, install it via npm with npm install mcp-postgres-server
or run it directly using npx mcp-postgres-server
. Configure the server with the required environment variables for database connection.
key features of MCP PostgreSQL Server?
- Secure connection handling with automatic cleanup
- Prepared statement support for query parameters
- Comprehensive error handling and validation
- TypeScript support
- Automatic connection management
- Support for PostgreSQL-specific syntax and features
use cases of MCP PostgreSQL Server?
- Connecting AI models to PostgreSQL databases for data retrieval.
- Executing complex SQL queries through a standardized interface.
- Managing database operations securely and efficiently.
FAQ from MCP PostgreSQL Server?
- What is the purpose of this server?
It allows AI models to interact with PostgreSQL databases seamlessly.
- Is it secure to use?
Yes, it uses prepared statements to prevent SQL injection and handles connections securely.
- Can I use it with TypeScript?
Yes, it has TypeScript support.
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_tables
List all tables in the connected database.
use_mcp_tool({
server_name: "postgres",
tool_name: "list_tables",
arguments: {}
});
5. describe_table
Get the structure of a specific table.
use_mcp_tool({
server_name: "postgres",
tool_name: "describe_table",
arguments: {
table: "users"
}
});
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
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