1. Conduid
  2. Data
  3. Go MCP Postgres
MCP server · Data

Go MCP Postgres

Zero burden, ready-to-use Model Context Protocol (MCP) server for interacting with postgresql and automation with sse / stdio mode and i18n support

Unclaimed MIT last commit a year ago data
49Fair

Scored yesterday · breakdown

About Go MCP Postgres

Go MCP Postgres is an MCP server published by guoling2008 in the Data category: zero burden, ready-to-use Model Context Protocol (MCP) server for interacting with postgresql and automation with sse / stdio mode and i18n support.

The repository has 7 stars and 4 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/guoling2008/go-mcp-postgres

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Go MCP Postgres

Powered by Claude · Grounded in docs

I know everything about Go MCP Postgres. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository yesterday. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

0.2.2fix mod name · 9 Apr 2025fix mod name
0.2.1Multi-language support · 29 Mar 20251 Multi-language support, you could write tool description with your own language. 2 Add desc table tool
0.1.10.1.1 · 28 Mar 2025new sse mode 1 update mcp baseline 2 Add sse mode support 3 drop db arguments in cli 4 add table count tool
0.1.0Initial release · 24 Mar 2025Initial release

README

go-mcp-postgres

Overview

Copy code from https://github.com/Zhwt/go-mcp-mysql/ and with AI help, I change db from mysql to postgres. Zero burden, ready-to-use Model Context Protocol (MCP) server for interacting with Postgres and automation. No Node.js or Python environment needed. This server provides tools to do CRUD operations on MySQL databases and tables, and a read-only mode to prevent surprise write operations. You can also make the MCP server check the query plan by using a EXPLAIN statement before executing the query by adding a --with-explain-check flag.

Please note that this is a work in progress and may not yet be ready for production use.

Installation

  1. Get the latest release and put it in your $PATH or somewhere you can easily access.

  2. Or if you have Go installed, you can build it from source:

go install -v github.com/guoling2008/go-mcp-postgres@latest

Usage

Method A: Using Command Line Arguments for stdio mode

{
  "mcpServers": {
    "postgres": {
      "command": "go-mcp-postgres",
      "args": [
        "--dsn",
        "postgresql://user:pass@host:port/db"
      ]
    }
  }
}

Note: For those who put the binary outside of your $PATH, you need to replace go-mcp-postgres with the full path to the binary: e.g.: if you put the binary in the Downloads folder, you may use the following path:

{
  "mcpServers": {
    "postgres": {
      "command": "C:\\Users\\<username>\\Downloads\\go-mcp-postgres.exe",
      "args": [
        ...
      ]
    }
  }
}

Method B: Using Command Line Arguments for sse mode

./go-mcp-postgres --t sse --ip x.x.x.x --port nnnn --dsn postgresql://user:pass@host:port/db --lang en

Optional Flags

  • --lang: Set language option (en/zh-CN), defaults to system language
  • Add a --read-only flag to enable read-only mode. In this mode, only tools beginning with list, read_ and desc_ are available. Make sure to refresh/restart the MCP server after adding this flag.
  • By default, CRUD queries will be first executed with a EXPLAIN ? statement to check whether the generated query plan matches the expected pattern. Add a --with-explain-check flag to disable this behavior.

Tools

Multi-language support: All tool descriptions will automatically localize based on lang parameter

If you want to add your own language support, please refer to the [locales](for i18n) folder. The new locales/xxx/active-xx.toml file should be created if you want to use it in command line.

Schema Tools

  1. list_database

    • ${mcp.tool.list_database.desc}
    • Parameters: None
    • Returns: A list of matching database names.
  2. list_table

    • ${mcp.tool.list_table.desc}
    • Parameters:
      • name: If provided, list tables with the specified name, Otherwise, list all tables.
    • Returns: A list of matching table names.
  3. create_table

    • ${mcp.tool.create_table.desc}
    • Parameters:
      • query: The SQL query to create the table.
    • Returns: x rows affected.
  4. alter_table

    • Alter an existing table in the Postgres server. The LLM is informed not to drop an existing table or column.
    • Parameters:
      • query: The SQL query to alter the table.
    • Returns: x rows affected.
  5. desc_table

    • Describe the structure of a table.
    • Parameters:
      • name: The name of the table to describe.
    • Returns: The structure of the table.

Data Tools

  1. read_query

    • Execute a read-only SQL query.
    • Parameters:
      • query: The SQL query to execute.
    • Returns: The result of the query.
  2. write_query

    • Execute a write SQL query.
    • Parameters:
      • query: The SQL query to execute.
    • Returns: x rows affected, last insert id: <last_insert_id>.
  3. update_query

    • Execute an update SQL query.
    • Parameters:
      • query: The SQL query to execute.
    • Returns: x rows affected.
  4. delete_query

    • Execute a delete SQL query.
    • Parameters:
      • query: The SQL query to execute.
    • Returns: x rows affected.
  5. count_query

    • Query the number of rows in a certain table..
    • Parameters:
      • name: The name of the table to count.
    • Returns: The row number of the table.

Big thanks to https://github.com/Zhwt/go-mcp-mysql/ again.

License

MIT

README fetched from the repository yesterday. The original is authoritative.

Questions

About Go MCP Postgres

How do I install Go MCP Postgres?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Go MCP Postgres safe to use with an AI agent?

Its trust score is 49 out of 100 (fair). It passes 5 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Go MCP Postgres still maintained?

The last commit was a year ago and 2 open issues. That's long enough that you should check whether the maintainer is responding to issues before depending on it.