trackmcp
Back to directory
twn39

pgsql-mcp-server

View on GitHub

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

3 stars PythonServers & Infrastructure Updated Aug 11, 2025
aimcpmcp-serverpgsqlpostgresqlpython

Documentation

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:

bash
uv tool install pgsql-mcp-server

Then run it:

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

Or run directly without installation:

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

Using pip

bash
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.

bash
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

bash
uv run pytest

Run unit tests only

bash
uv run pytest tests/test_app.py

Run integration tests only

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

bash
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.

Frequently asked questions

What is pgsql-mcp-server?

pgsql-mcp-server is ๐Ÿ”ง A powerful tool server based on the Model Context Protocol (MCP), enabling interaction with PostgreSQL databases via MCP calls.

How do I install pgsql-mcp-server?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is pgsql-mcp-server open source?

Yes โ€” it is hosted on GitHub at https://github.com/twn39/pgsql-mcp-server and has 3 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP