Allows running the MCP server in a Docker container, with specific instructions for connecting to PostgreSQL databases when running Docker on macOS using host.docker.internal.
Provides access to PostgreSQL databases, enabling LLMs to inspect schemas, execute queries, and perform CRUD operations (Create, Read, Update, Delete) on database entries.
PostgreSQL MCP Server
A Model Context Protocol server that provides access to PostgreSQL databases. This server enables LLMs to interact with databases to inspect schemas, execute queries, and perform CRUD (Create, Read, Update, Delete) operations on database entries. This repo is an extension of PostgreSQL MCP Server providing functionalities to create tables, insert entries, update entries, delete entries, and drop tables.
Installation
To install the PostgreSQL MCP Server, follow these steps:
Install Docker and Claude Desktop
Clone the repository:
git clone https://github.com/vignesh-codes/ai-agents-mcp-pg.git
Run PG Docker container
docker run --name postgres-container -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=admin_password -e POSTGRES_DB=mydatabase -p 5432:5432 -d postgres:latest
Build the mcp server:
docker build -t mcp/postgres -f src/Dockerfile .
Open Claude Desktop and connect to the MCP server by updating the
mcpServers
field inclaude_desktop_config.json
:
Usage with Claude Desktop
To use this server with the Claude Desktop app, add the following configuration to the "mcpServers" section of your claude_desktop_config.json
:
Docker
When running Docker on macOS, use
host.docker.internal
if the server is running on the host network (e.g., localhost).Username/password can be added to the PostgreSQL URL with
postgresql://user:password@host:port/db-name
.
Make sure to restart the claude desktop app after updating the config file.
Features Added
Existing Functionality
query
Execute read-only SQL queries against the connected database.
Input:
sql
(string): The SQL query to execute.All queries are executed within a READ-ONLY transaction.
New Functionality
Create Tables
Ability to create new tables dynamically by providing a table name and column definitions.
Input from Claude Desktop:
{ "tableName": "example_table", "columns": [ { "name": "id", "type": "SERIAL PRIMARY KEY" }, { "name": "name", "type": "VARCHAR(255)" }, { "name": "age", "type": "INTEGER" } ] }
Insert Entries
Insert new entries into a specified table.
Input from Claude Desktop:
{ "tableName": "example_table", "values": { "name": "John Doe", "age": 30 } }
Update Entries
Update existing entries in a table based on conditions.
Input from Claude Desktop:
{ "tableName": "example_table", "values": { "age": 35 }, "conditions": "name = 'John Doe'" }
Delete Entries
Delete specific entries in a table based on conditions.
Input from Claude Desktop:
{ "tableName": "example_table", "conditions": "name = 'John Doe'" }
Drop Tables
Drop existing tables from the database.
Input from Claude Desktop:
{ "tableName": "example_table" }
Resources
The server provides schema information for each table in the database:
Table Schemas (
postgres://<host>/<table>/schema
)JSON schema information for each table.
Includes column names and data types.
Automatically discovered from database metadata.
Sample
Input to Claude Desktop
Output from Claude Desktop
Input to Claude Desktop
Output from Claude Desktop
Input to Claude Desktop
Output from Claude Desktop
Input to Claude Desktop
Output from Claude Desktop
DB ENTRIES
License
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
A Model Context Protocol server providing LLMs read-only access to PostgreSQL databases for inspecting schemas and executing queries.
Related Resources
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol server that provides read-only access to PostgreSQL databases. This server enables LLMs to inspect database schemas and execute read-only queries.Last updated -22,30469,933MIT License
- -securityFlicense-qualityA Model Context Protocol server providing both read and write access to PostgreSQL databases, enabling LLMs to query data, modify records, and manage database schemas.Last updated -6088
- -securityFlicense-qualityA Model Context Protocol server that provides LLMs with full read-write access to PostgreSQL databases, allowing both querying and modifying database content with transaction management and safety controls.Last updated -5417
- -securityFlicense-qualityA Model Context Protocol server that provides read-only access to PostgreSQL databases, enabling LLMs to inspect database schemas and execute read-only queries.Last updated -22,304