what is MCP-SERVER-PG?
MCP-SERVER-PG is a Model Context Protocol server that provides read-only access to PostgreSQL databases, enabling LLMs to inspect database schemas and execute read-only queries.
how to use MCP-SERVER-PG?
To use MCP-SERVER-PG, configure it with the Claude Desktop app or run it using Docker or NPX with the appropriate PostgreSQL connection string.
key features of MCP-SERVER-PG?
- Execute read-only SQL queries against connected PostgreSQL databases.
- Provides schema information for each table in JSON format.
- Automatically discovers table schemas from database metadata.
use cases of MCP-SERVER-PG?
- Inspecting database schemas for data analysis.
- Executing read-only queries for reporting purposes.
- Integrating with LLMs for enhanced data interaction.
FAQ from MCP-SERVER-PG?
- Can MCP-SERVER-PG modify data in the database?
No, MCP-SERVER-PG only allows read-only access to the database.
- How do I connect to my PostgreSQL database?
You can connect using a PostgreSQL URL format, including username and password if necessary.
- Is MCP-SERVER-PG free to use?
Yes, MCP-SERVER-PG is licensed under the MIT License, allowing free use and modification.
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 (eg 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
Docker:
docker build -t mcp/postgres -f src/postgres/Dockerfile .
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.