
pgsql mcp server
一款用golang实现的操作pg数据库的mcp server,支持创建表、查询表、插入数据,查看数据,分析sql语句等功能,欢迎共建!!!
Repository Info
About This Server
一款用golang实现的操作pg数据库的mcp server,支持创建表、查询表、插入数据,查看数据,分析sql语句等功能,欢迎共建!!!
Model Context Protocol (MCP) - This server can be integrated with AI applications to provide additional context and capabilities, enabling enhanced AI interactions and functionality.
Documentation
PostgreSQL MCP Server
!Stars !Forks
English | 中文
A Model Context Protocol (MCP) server that provides tools for interacting with a PostgreSQL database. This server enables AI assistants to execute SQL queries, create tables, and list database tables through the MCP protocol.
Features
The server provides the following tools:
- read_query: Execute SELECT queries on the PostgreSQL database
- write_query: Execute INSERT, UPDATE, or DELETE queries on the PostgreSQL database
- create_table: Create a new table in the PostgreSQL database
- list_tables: List all user tables in the database (with optional schema filtering)
- explain_query:EXPLAIN a query on the PostgreSQL database
Installation
Prerequisites
- Go 1.23 or later
- PostgreSQL database server
Steps
-
Clone the repository:
git clone https://github.com/sql-mcp-server.git cd sql-mcp-server -
Install dependencies:
go mod download -
Build the server:
go build -o sql-mcp-server
Configuration
The server requires database connection details through environment variables. Create a .env file in the project root with the following variables:
DB_HOST=localhost # PostgreSQL server host
DB_PORT=5432 # PostgreSQL server port
DB_NAME=postgres # Database name
DB_USER=your_username # Database user
DB_PASSWORD=your_pass # Database password
DB_SSLMODE=disable # SSL mode (disable, require, verify-ca, verify-full)
Usage
Running the Server
./sql-mcp-server
MCP Configuration
To use this server with an AI assistant that supports MCP, add the following to your MCP configuration:
{
"mcpServers": {
"pgsql-mcp-server": {
"command": "/path/to/sql-mcp-server",
"args": [],
"env": {
"DB_HOST": "localhost",
"DB_PORT": "5432",
"DB_NAME": "postgres",
"DB_USER": "your_username",
"DB_PASSWORD": "your_password",
"DB_SSLMODE": "disable"
},
"disabled": false,
"autoApprove": []
}
}
}
Tool Examples
List Tables
List all user tables in the database:
{
"server_name": "pgsql-mcp-server",
"tool_name": "list_tables",
"arguments": {}
}
List tables in a specific schema:
{
"server_name": "pgsql-mcp-server",
"tool_name": "list_tables",
"arguments": {
"schema": "public"
}
}
Create Table
Create a new table:
{
"server_name": "pgsql-mcp-server",
"tool_name": "create_table",
"arguments": {
"schema": "CREATE TABLE users (id SERIAL PRIMARY KEY, name VARCHAR(100), email VARCHAR(100) UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP)"
}
}
Read Query
Execute a SELECT query:
{
"server_name": "pgsql-mcp-server",
"tool_name": "read_query",
"arguments": {
"query": "SELECT * FROM users LIMIT 10"
}
}
Write Query
Execute an INSERT query:
{
"server_name": "pgsql-mcp-server",
"tool_name": "write_query",
"arguments": {
"query": "INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')"
}
}
Execute an UPDATE query:
{
"server_name": "pgsql-mcp-server",
"tool_name": "write_query",
"arguments": {
"query": "UPDATE users SET name = 'Jane Doe' WHERE id = 1"
}
}
Execute a DELETE query:
{
"server_name": "pgsql-mcp-server",
"tool_name": "write_query",
"arguments": {
"query": "DELETE FROM users WHERE id = 1"
}
}
Security Considerations
- The server validates query types to ensure that only appropriate operations are performed with each tool.
- Input sanitization is performed for schema names to prevent SQL injection.
- Consider using a dedicated database user with limited permissions for this server.
- In production environments, enable SSL by setting
DB_SSLMODEtorequireor higher.
Dependencies
- github.com/joho/godotenv - For loading environment variables from .env file
- github.com/lib/pq - PostgreSQL driver for Go
- github.com/mark3labs/mcp-go - Go SDK for Model Context Protocol
License
[Add license information here]
Contributing
[Add contribution guidelines here]
Quick Start
Clone the repository
git clone https://github.com/leixiaotian1/pgsql-mcp-serverInstall dependencies
cd pgsql-mcp-server
npm installFollow the documentation
Check the repository's README.md file for specific installation and usage instructions.
Repository Details
Recommended MCP Servers
Discord MCP
Enable AI assistants to seamlessly interact with Discord servers, channels, and messages.
Knit MCP
Connect AI agents to 200+ SaaS applications and automate workflows.
Apify MCP Server
Deploy and interact with Apify actors for web scraping and data extraction.
BrowserStack MCP
BrowserStack MCP Server for automated testing across multiple browsers.
Zapier MCP
A Zapier server that provides automation capabilities for various apps.