PostgreSQL MCP Server
A comprehensive PostgreSQL server for the Model Context Protocol (MCP) that provides database access through MCP tools and resources.
Features
- Database Operations: Execute SQL queries (SELECT, INSERT, UPDATE, DELETE)
- Schema Management: Get table schemas, list tables, create tables
- Database Statistics: Get database stats and connection information
- Connection Management: Test connections and monitor pool status
- MCP Resources: Access database schema and connection status as resources
- Environment Configuration: Configure via environment variables
- npx Support: Can be run via npx for easy integration with MCP clients
Installation
Local Installation
npm install
Global Installation (for npx usage)
npm install -g mcp-server-postgres
Using npx (recommended)
npx mcp-server-postgres
Usage
Running with npx
The server can be run directly with npx, making it easy to integrate with MCP clients:
npx mcp-server-postgres
MCP Client Configuration
For Local Development
Add this to your MCP client configuration (e.g., Claude Desktop) for local development:
{
"mcpServers": {
"postgres": {
"command": "node",
"args": ["c:\\Users\\CascadeProjects\\mcp-postgres-server\\bin\\mcp-server-postgres.js"],
"env": {
"POSTGRES_USER": "pguser",
"POSTGRES_HOST": "localhost",
"POSTGRES_DB": "postgres",
"POSTGRES_PASSWORD": "admin",
"POSTGRES_PORT": "5432",
"POSTGRES_SSL": "false"
}
}
}
}
For Published Package (npx)
If the package is published to npm registry:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["mcp-server-postgres"],
"env": {
"POSTGRES_USER": "pguser",
"POSTGRES_HOST": "localhost",
"POSTGRES_DB": "postgres",
"POSTGRES_PASSWORD": "admin",
"POSTGRES_PORT": "5432",
"POSTGRES_SSL": "false"
}
}
}
}
Environment Variables
Configure your PostgreSQL connection using these environment variables:
POSTGRES_USER- Database username (default: postgres)POSTGRES_HOST- Database host (default: localhost)POSTGRES_DB- Database name (default: postgres)POSTGRES_PASSWORD- Database passwordPOSTGRES_PORT- Database port (default: 5432)POSTGRES_SSL- Enable SSL (default: false)
Available Tools
execute_query- Execute SQL queries with optional parametersget_table_schema- Get detailed schema information for tableslist_tables- List all tables in the databaseget_database_stats- Get database statistics and metadatacreate_table- Create new tables with columns and constraintstest_connection- Test database connection and get status
Available Resources
postgres://schema/all- Complete database schema informationpostgres://status- Current connection status and pool information
Testing
Run the test scripts to verify functionality:
npm test
npm run test-postgres





