hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Allows execution of SQL queries against a PostgreSQL database, access to database schema information, and use of query templates, enabling AI assistants to retrieve and manipulate data in PostgreSQL databases.
Simple PostgreSQL MCP Server
This is a template project for those looking to build their own MCP servers. I designed it to be dead simple to understand and adapt - the code is straightforward with MCP docs attached so you can quickly get up to speed.
What is MCP?
TL;DR - It's a way to write plugins for AI
Model Context Protocol (MCP) is a standard way for LLMs to interact with external tools and data. In a nutshell:
- Tools allow the LLM to execute commands (like running a database query)
- Resources are data you can attach to conversations (like attaching a file to a prompt)
- Prompts are templates that generate consistent LLM instructions
Features
This PostgreSQL MCP server implements:
- Tools
execute_query
- Run SQL queries against your databasetest_connection
- Verify the database connection is working
- Resources
db://tables
- List of all tables in the schemadb://tables/{table_name}
- Schema information for a specific tabledb://schema
- Complete schema information for all tables in the database
- Prompts
- Query generation templates
- Analytical query builders
- Based on the templates in this repo
Prerequisites
- Python 3.8+
- uv - Modern Python package manager and installer
- npx (included with Node.js)
- PostgreSQL database you can connect to
Quick Setup
- Create a virtual environment and install dependencies:Copy
- Run the server with the MCP Inspector:Copy
After running this command, you'll see the MCP Inspector interface launched in your browser. You should see a message like:Note: If this is your first time running npx, you'll be prompted to approve the installation. Type 'y' to proceed.
If the browser doesn't open automatically, copy and paste the URL into your browser. You should see something like this:Copy - Using the Inspector:
- Click the "Connect" button in the interface (unless there's an error message in the console on the bottom left)
- Explore the "Tools", "Resources", and "Prompts" tabs to see available functionality
- Try clicking on listed commands or typing resource names to retrieve resources and prompts
- The interface allows you to test queries and see how the MCP server responds
- Take a look at the official docsOfficial server developers guide: https://modelcontextprotocol.io/quickstart/serverMore on the inspector: https://modelcontextprotocol.io/docs/tools/inspector
Connect Your AI Tool to the Server
You can configure the MCP server for your AI assistant by creating an MCP configuration file:
Alternatively, you can generate this config file using the included script:
When prompted, enter your PostgreSQL DSN and schema name.
How to use it
You can now ask the LLM questions about your data in natural language:
- "What are all the tables in my database?"
- "Show me the top 5 users by creation date"
- "Count addresses by state"
For testing, Claude Desktop supports MCP natively and works with all features (tools, resources, and prompts) right out of the box.
Example Database (Optional)
If you don't have a database ready or encounter connection issues, you can use the included example database:
This script creates a Docker container with a PostgreSQL database pre-populated with sample users and addresses tables. After running, you can connect using:
Next Steps
To extend this project with your own MCP servers:
- Create a new directory under
/src
(e.g.,/src/my-new-mcp
) - Implement your MCP server following the PostgreSQL example
- Add your new MCP to
pyproject.toml
:
You can then run your new MCP with:
Documentation
- MCP docs included for easy LLM development
- Based on the approach at: https://modelcontextprotocol.io/tutorials/building-mcp-with-llms
Security
This is an experimental project meant to empower developers to create their own MCP server. I did minimum to make sure it won't die immediately when you try it, but be careful - it's very easy to run SQL injections with this tool. The server will check if the query starts with SELECT, but beyond that nothing is guaranteed. TL;DR - don't run in production unless you're the founder and there are no paying clients.
License
MIT
This server cannot be installed
A template project for building custom MCP servers that enables direct access to PostgreSQL databases, allowing SQL query execution and schema information retrieval through the Model Context Protocol.