mcpField
P
PgSQL MCP Server

PgSQL MCP Server

Local
github.com/twn39Databases6Updated 35w ago

About PgSQL MCP Server

PgSQL MCP Server is a Python server for accessing PostgreSQL databases through MCP. It combines schema inspection and SQL operations with asynchronous execution and transactional rollback on errors.

Key features

  1. 01Asynchronous PostgreSQL operations
  2. 02Schema, table, column, index, and key inspection
  3. 03DQL, DML, DDL, and DCL queries
  4. 04Transactional execution with rollback
  5. 05Command-line startup

Use cases

  1. 01Inspect PostgreSQL schemas and table structures
  2. 02Run queries and database changes through MCP
  3. 03Apply database changes with rollback on errors

MCP support

Exposes PostgreSQL inspection and query tools to MCP clients, including operations for DQL, DML, DDL, and DCL. Clients connect to the server using its configured database DSN.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

PgSQL MCP Server

PyPI - Version PyPI - Python Version Maintainability

English | 简体中文

A powerful tool server based on the Model Context Protocol (MCP), enabling interaction with PostgreSQL databases via MCP calls.


🚀 Overview

This project is built on the FastMCP framework and leverages the SQLAlchemy and asyncpg libraries to deliver high-performance asynchronous database operations, ensuring efficiency and responsiveness when handling database requests.

✨ Key Features

  • Asynchronous & Efficient: Fully asynchronous implementation based on asyncio, utilizing asyncpg for a high-performance asynchronous PostgreSQL driver.
  • Transactional Safety: DDL, DML, and DCL operations are executed within transactions with error handling and rollback mechanisms.
  • Easy Deployment: Start the server with a simple command line interface.

📦 Installation

Ensure you have Python 3.10+ installed. Recommendation:

Using uv (Recommended)
uv tool install pgsql-mcp-server

Then run it:

pgsql-mcp-server --dsn "postgresql://user:password@localhost:5432/db"

Or run directly without installation:

uvx pgsql-mcp-server --dsn "postgresql://user:password@localhost:5432/db"
Using pip
pip install pgsql-mcp-server

🛠️ Available Tools

The server provides the following tools for database interaction:

  • get_schema_names: List all schemas in the database.
  • get_tables: List all tables in a specific schema (defaults to public).
  • get_columns: Get detailed column information for a specific table.
  • get_indexes: Get index details for a specific table.
  • get_foreign_keys: Get foreign key constraints for a specific table.
  • run_dql_query: Execute Data Query Language (DQL) statements like SELECT, SHOW, EXPLAIN.
  • run_dml_query: Execute Data Manipulation Language (DML) statements like INSERT, UPDATE, DELETE.
  • run_ddl_query: Execute Data Definition Language (DDL) statements like CREATE, ALTER, DROP.
  • run_dcl_query: Execute Data Control Language (DCL) statements like GRANT, REVOKE.

🔍 Preview and Debugging

You can use the official MCP Inspector tool to visually inspect the tools provided by this server, view their parameters and descriptions, and perform test calls directly.

npx @modelcontextprotocol/inspector uvx pgsql-mcp-server --dsn "postgresql://user:password@host:port/database"

This will start a local web service. Open the provided URL in your browser to begin debugging.

🧪 Testing

This project uses pytest for testing.

Run all tests
uv run pytest
Run unit tests only
uv run pytest tests/test_app.py
Run integration tests only

Integration tests require a local PostgreSQL instance. They default to localhost:5432/postgres.

uv run pytest tests/test_integration.py

🤝 Contributing

Contributions are welcome! If you have suggestions for improvements, feature requests, or find any bugs, please feel free to:

  1. Open an Issue to discuss.
  2. Fork the repository and create your feature branch (git checkout -b feature/AmazingFeature).
  3. Commit your changes (git commit -m 'Add some AmazingFeature').
  4. Push to the branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.