A Model Context Protocol (MCP) server implementation for PostgreSQL databases, providing AI assistants with secure and structured access to PostgreSQL databases.
INFO: Started server process [12345]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)- Database Introspection: List tables and explore database schemas
- Table Schema Discovery: Get detailed information about tables including columns, types, constraints, primary keys, and foreign keys
- Safe Query Execution: Execute read-only SELECT queries with built-in safety checks
- Full Query Support: Execute INSERT, UPDATE, DELETE, and SELECT queries with parameterized query support
- Type Safety: Built with Pydantic models for robust input validation
- Comprehensive Logging: Detailed logging for debugging and monitoring
list_tables- Lists all tables in a specified database schema.get_table_schema- Retrieves detailed schema information for a specific table.execute_safe_query- Executes read-only SELECT queries safely.execute_query- Executes any SQL query (SELECT, INSERT, UPDATE, DELETE) with optional parameterization.
Add the server to your MCP client configuration (e.g., Claude Desktop):
See tests/README_TESTING.md for detailed testing information.
- Environment Variables: Store database credentials in
.envfiles or environment variables, never in code - Read-Only Access: Consider using
execute_safe_queryfor untrusted queries - Database Permissions: Use database users with minimal necessary permissions
- Parameterized Queries: Always use the
paramsargument for user-supplied values to prevent SQL injection - Network Security: Restrict database access to trusted networks
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) - see the LICENSE file for details.
For issues, questions, or contributions, please visit the GitHub repository.