postgres
by: modelcontextprotocol
A 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.
📌Overview
Purpose: To provide read-only access to PostgreSQL databases for inspecting schemas and executing queries via a Model Context Protocol server.
Overview: This framework consists of a server that allows large language models (LLMs) to interact with PostgreSQL databases. It enables users to retrieve and query database schema information in a read-only manner, ensuring data integrity and security.
Key Features:
-
Read-Only Query Execution: Enables users to execute SQL queries against the connected database while ensuring all operations are conducted within a read-only transaction, thus preserving database state and security.
-
Schema Information Retrieval: Automatically gathers and presents JSON schema details for each table, including column names and data types, allowing for easy inspection and understanding of the database structure.
PostgreSQL
A 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.
Components
Tools
- 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
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
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
.
{
"mcpServers": {
"postgres": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"mcp/postgres",
"postgresql://host.docker.internal:5432/mydb"
]
}
}
}
NPX
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://localhost/mydb"
]
}
}
}
Replace /mydb
with your database name.
Building
Build Docker image with:
docker build -t mcp/postgres -f src/postgres/Dockerfile .
License
This MCP server is licensed under the MIT License. You are free to use, modify, and distribute the software subject to its terms and conditions. See the LICENSE file in the project repository for details.