Cover image
Try Now
2025-03-23

一款用golang实现的操作pg数据库的mcp server,支持创建表、查询表、插入数据等,欢迎共建!!!

3 years

Works with Finder

1

Github Watches

1

Github Forks

1

Github Stars

PostgreSQL MCP Server

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)

Installation

Prerequisites

  • Go 1.23 or later
  • PostgreSQL database server

Steps

  1. Clone the repository:

    git clone https://github.com/sql-mcp-server.git
    cd sql-mcp-server
    
  2. Install dependencies:

    go mod download
    
  3. 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_SSLMODE to require or higher.

Dependencies

License

[Add license information here]

Contributing

[Add contribution guidelines here]

相关推荐

  • NiKole Maxwell
  • I craft unique cereal names, stories, and ridiculously cute Cereal Baby images.

  • Bora Yalcin
  • Evaluator for marketplace product descriptions, checks for relevancy and keyword stuffing.

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • Beniyam Berhanu
  • Therapist adept at identifying core issues and offering practical advice with images.

  • Lists Tailwind CSS classes in monospaced font

  • https://maiplestudio.com
  • Find Exhibitors, Speakers and more

  • lumpenspace
  • Take an adjectivised noun, and create images making it progressively more adjective!

  • apappascs
  • Discover the most comprehensive and up-to-date collection of MCP servers in the market. This repository serves as a centralized hub, offering an extensive catalog of open-source and proprietary MCP servers, complete with features, documentation links, and contributors.

  • ShrimpingIt
  • Micropython I2C-based manipulation of the MCP series GPIO expander, derived from Adafruit_MCP230xx

  • huahuayu
  • A unified API gateway for integrating multiple etherscan-like blockchain explorer APIs with Model Context Protocol (MCP) support for AI assistants.

  • deemkeen
  • control your mbot2 with a power combo: mqtt+mcp+llm

  • jae-jae
  • MCP server for fetch web page content using Playwright headless browser.

    Reviews

    3 (1)
    Avatar
    user_o5NZrMwM
    2025-04-15

    As a dedicated user of the WhatsApp MCP Server by piyushgupta53, I have been extremely impressed with its seamless integration and performance. The server offers robust functionalities that enhance my messaging experience, making it reliable for both personal and professional use. The detailed documentation and user-friendly interface make it accessible, even for those new to MCP applications. Highly recommend checking it out!