postgres-mcp
MCP server for PostgreSQL database management, enabling AI-assisted schema exploration, stored procedure analysis, test data generation, and safe transaction management via Claude Desktop.
README
PostgreSQL Manager + MCP Server
A complete Python application for PostgreSQL database management with two modes:
- Desktop GUI (Tkinter) โ for direct human use
- MCP Server โ for AI-assisted database analysis via Claude Desktop
What It Does
๐ Connection Management
- Save multiple named PostgreSQL connection profiles in
config.ini - Test connections before saving
- Fields: host, port, database, username, password, SSL mode
๐ฒ Object Explorer
- Browse: Schemas โ Tables โ Columns (with types, nullability, PK markers)
- Browse: Schemas โ Views
- Double-click a table โ auto-generates
SELECT * FROM ... LIMIT 100 - Right-click โ Select Top 100, Show Columns
๐ SQL Query Editor
- Syntax highlighting for SQL keywords
- Press F5 to execute (or click Run)
- Query history (session-based, navigate with โ/โ buttons)
- Select specific text to run only that portion
๐ Results Grid
- Scrollable table with column headers
- Row count + elapsed time display
- Export to CSV with one click
๐งช SP Analyzer + Test Data Generator
Upload a .sql file containing a stored procedure or function:
- Analyse โ extracts SELECT queries, detects referenced tables, infers WHERE conditions
- Generate Preview โ creates Faker-based test data respecting types, FKs, enums, UNIQUE
- Insert Test Data โ inserts into an open transaction (NOT committed)
- Run your SP manually in the query editor to verify
- Commit or Rollback โ on-demand, manual control
๐ค MCP Server (AI-Powered Mode)
When connected to Claude Desktop, Claude can:
- Fetch SP bodies directly from
pg_proc - Execute SELECT queries found in the SP
- Recursively follow SQL strings stored inside DB column values (the killer feature)
- Understand schema, FKs, enums, CHECK constraints
- Generate and insert test data in FK-dependency order
- Wait for you to verify, then commit or rollback
Prerequisites
Mandatory
| Requirement | Version | Check Command |
|---|---|---|
| Python | 3.10+ | python --version |
| pip | any | pip --version |
| PostgreSQL | 10+ (any server) | psql --version |
Optional (for MCP mode)
| Requirement | Purpose |
|---|---|
| Claude Desktop | AI client that connects to our MCP server |
โ ๏ธ Python must be in your system PATH. Run
python --versionin a terminal to verify.
Installation
Option 1: Run the installer script (Windows)
install.bat
This checks for Python, creates a virtual environment, and installs all dependencies.
Option 2: Manual
pip install -r requirements.txt
Dependencies installed:
psycopg2-binaryโ PostgreSQL driversqlparseโ SQL statement parserFakerโ realistic test data generationmcp[cli]โ Anthropic's MCP SDK for the AI server
Running the Application
Desktop GUI
run.bat
Or manually:
python main.py
MCP Server (for Claude Desktop)
python mcp_server.py
With auto-connect:
python mcp_server.py --host localhost --port 5432 --db mydb --user postgres --password secret
python mcp_server.py --profile local
python mcp_server.py --dsn "postgresql://user:pass@host:5432/db"
Configuring Claude Desktop
- Copy
claude_desktop_config.jsonto%APPDATA%\Claude\claude_desktop_config.json(or merge into your existing config) - Restart Claude Desktop
- The
postgres-mcptools will appear automatically
Example config:
{
"mcpServers": {
"postgres-mcp": {
"command": "python",
"args": ["C:/Balaji/MyProjects/postgres-mcp/mcp_server.py"],
"cwd": "C:/Balaji/MyProjects/postgres-mcp"
}
}
}
Configuration โ config.ini
[app]
theme = clam
font_size = 11
row_limit = 1000
default_test_rows = 10
[profile_local]
name = Local PostgreSQL
host = localhost
port = 5432
database = postgres
username = postgres
password =
ssl_mode = prefer
Add more profiles by duplicating the [profile_xxx] section with a unique name.
MCP Tools Reference
| Tool | Description |
|---|---|
connect_to_postgres |
Connect with host/port/db/user/password |
get_connection_status |
Check if connected |
get_sp_body |
Fetch SP/function source from pg_proc |
list_sps |
List all SPs/functions in a schema |
list_tables |
List base tables |
list_views |
List views |
get_view_definition |
Get view SQL (discover real tables behind views) |
get_table_schema |
Full metadata: columns, PKs, FKs, UNIQUEs, CHECKs |
get_fk_reference_values |
Read valid values from FK parent tables |
get_enum_values |
List valid enum labels |
sample_table_data |
Sample existing rows |
execute_query |
Run any SELECT/read SQL |
execute_in_transaction |
Run INSERT/UPDATE/DELETE inside safe test tx |
generate_test_data |
Faker-based row generation |
begin_test_transaction |
Open a write transaction |
insert_rows |
Insert row dicts into the open transaction |
commit_test_data |
Commit permanently |
rollback_test_data |
Roll back all test inserts |
transaction_status |
Check if a test transaction is open |
Troubleshooting
| Issue | Solution |
|---|---|
python not found |
Add Python to system PATH |
psycopg2 install fails |
Install Visual C++ Build Tools, or use psycopg2-binary (already in requirements) |
| MCP server not showing in Claude | Check %APPDATA%\Claude\claude_desktop_config.json path is correct |
| Connection refused | Verify PostgreSQL is running and accepting connections on the configured host:port |
ModuleNotFoundError: mcp |
Run pip install "mcp[cli]>=1.27,<2" |
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.