返回 MCP 目录
public公开dns本地运行

postgresql-mcp-server-y4k

PostgreSQL MCP服务器是一个基于Model Context Protocol的服务,提供与PostgreSQL数据库交互的工具,包括执行SQL查询、创建表、列出数据库表等功能,支持AI助手通过MCP协议操作数据库。

article

README

🚀 PostgreSQL MCP 服务器

PostgreSQL MCP 服务器是一个用于与 PostgreSQL 数据库交互的 Model Context Protocol (MCP) 服务器,支持读取查询、写入查询、创建表和列出表等功能,为数据库操作提供了便捷的解决方案。

🚀 快速开始

安装步骤

先决条件

  • PostgreSQL 数据库实例
  • Go 语言开发环境
  • Make 工具

克隆仓库

git clone https://github.com/yourusername/pgmcp.git
cd pgmcp

安装依赖

go mod tidy

构建服务器

make build

配置说明

将以下环境变量添加到项目的 .env 文件中:

  • DB_NAME: PostgreSQL 数据库名称
  • DB_USER: 连接数据库的用户名
  • DB_PASSWORD: 用户密码
  • DB_HOST: 数据库主机地址(默认为 localhost
  • DB_PORT: 数据库端口号(默认为 5432

示例 .env 文件:

DB_NAME=postgres
DB_USER=pguser
DB_PASSWORD=pgpassword
DB_HOST=localhost
DB_PORT=5432

运行服务器

go run main.go

MCP 配置

config.json 中配置 MCP 服务参数:

{
  "name": "PostgreSQL MCP Server",
  "version": "1.0",
  "description": "A PostgreSQL MCP server implementation.",
  "tools": {
    "read_query": {
      "description": "Execute a SELECT query and return the results."
    },
    "write_query": {
      "description": "Execute an INSERT, UPDATE, or DELETE statement."
    },
    "create_table": {
      "description": "Create a new table in the database."
    },
    "list_tables": {
      "description": "List all tables in the database."
    }
  }
}

✨ 主要特性

  • 读取查询:执行 SELECT 类型的 SQL 查询。
  • 写入查询:执行 INSERT、UPDATE 和 DELETE 类型的 SQL 操作。
  • 创建表:在数据库中创建新表。
  • 列出表:获取数据库中的所有表信息。

💻 使用示例

基础用法

读取查询

{
  "tool": "read_query",
  "params": {
    "query": "SELECT * FROM users LIMIT 10;"
  }
}

写入查询

{
  "tool": "write_query",
  "params": {
    "query": "INSERT INTO users (name, email) VALUES ($1, $2);",
    "args": ["John Doe", "john@example.com"]
  }
}

创建表

{
  "tool": "create_table",
  "params": {
    "table_name": "users",
    "schema": "CREATE TABLE users (\n    id SERIAL PRIMARY KEY,\n    name VARCHAR(255) NOT NULL,\n    email VARCHAR(255) UNIQUE NOT NULL\n);"
  }
}

列出表

{
  "tool": "list_tables",
  "params": {}
}

🔧 技术细节

安全注意事项

  • 服务器对查询类型进行验证,确保每个工具仅执行其允许的操作。
  • 对输入的 schema 名称进行 sanitization,防止 SQL 注入攻击。
  • 建议使用权限受限的专用数据库用户。
  • 在生产环境中启用 SSL,设置 DB_SSLMODErequire 或更高。

依赖项

📄 许可证

[在此处添加许可信息]

🤝 贡献指南

[在此处添加贡献指南]

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端