pgsql-mcp-server
๐ง A powerful tool server based on the Model Context Protocol (MCP), enabling interaction with PostgreSQL databases via MCP calls.
Documentation
PgSQL MCP Server
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-serverThen 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 pytestRun unit tests only
uv run pytest tests/test_app.pyRun 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.
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
An LLM agent that conducts deep research (local and web) on any given topic and generates a long report with citations. Built for the Model Context Protocol to
Expose your FastAPI endpoints as Model Context Protocol (MCP) tools, with Auth! Python-based implementation. Trusted by 11000+ developers.
Build effective agents using Model Context Protocol and simple workflow patterns Python-based implementation. Trusted by 7600+ developers.
AI-powered reverse engineering assistant that bridges IDA Pro with language models through MCP. Python-based implementation. Trusted by 4100+ developers.
AI conversations that actually remember. Never re-explain your project to Claude again. Local-first, integrates with Obsidian.
A Model Context Protocol (MCP) server that enables secure interaction with MySQL databases Python-based implementation. Trusted by 900+ developers.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP