mcpField
P
Postgresql MCP

Postgresql MCP

本地服务
github.com/sarmadparvez数据库333 周前更新

关于 Postgresql MCP

Postgresql MCP 是面向需要数据库查询、写入、事务和结构检查的 AI 客户端的 PostgreSQL MCP 服务。它支持标准 PostgreSQL 连接字符串,并提供可选的只读模式。

主要功能

  1. 01SQL 读写工具
  2. 02原子多语句事务
  3. 03表与结构检查
  4. 04可选只读模式
  5. 05标准 PostgreSQL 连接字符串

适用场景

  1. 01通过 AI 客户端查询 PostgreSQL 数据
  2. 02使用 SQL 修改数据库
  3. 03执行失败时回滚的一组更新
  4. 04操作前检查数据表结构

MCP 相关

该服务向 MCP 客户端提供 query、execute、transaction、schema 和 list_tables 工具。只读模式会禁用 execute 和 transaction,同时保留查询与检查工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"postgresql-mcp-sarmadparvez": {
"command": "npx",
"args": [
"-y",
"@sarmadparvez/postgresql-mcp"
]
}
}
}
启动命令npx -y @sarmadparvez/postgresql-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@sarmadparvez/postgresql-mcp

工具

5

收录的工具列表 · 更新于 3 周前

参数类型必填说明
sqlstring是要执行的 SQL SELECT 查询

详细介绍

postgresql-mcp

npm version npm downloads License: ISC

README 配图

一个适用于 PostgreSQL 的模型上下文协议(MCP)服务,提供完整的读写支持、原子事务和架构检查。可与 Claude Desktop、Cursor、Windsurf 及任何兼容 MCP 的 AI 客户端配合使用。

只需数秒,即可将任意 PostgreSQL 数据库——本地、Supabase、AWS RDS 或可自托管的数据库——连接到你的 AI 助手。

功能

  • 完整的 SQL 读写访问权限(SELECT、INSERT、UPDATE、DELETE、CREATE、DROP)
  • 支持多个 SQL 语句的原子事务;失败时自动回滚
  • 架构检查:列、类型、可空性、默认值、主键
  • 可通过 ?mode=readonly 启用只读模式
  • 不受云平台锁定——适用于任何标准 PostgreSQL 连接字符串
  • 单文件,依赖项精简

为什么要开发它

还有两个值得了解的 PostgreSQL MCP 服务,但它们都无法完全满足通用场景的需求:

Anthropic 官方的 @modelcontextprotocol/server-postgres 严格限制为只读——它只提供一个在 READ ONLY 事务中运行的 query 工具。不支持写入、DDL 或事务。此外,该项目已于 2025 年 7 月弃用并归档。

Microsoft 的 azure-postgresql-mcp 支持写入和 DDL,但专为 Azure Database for PostgreSQL Flexible Server 构建。虽然它在技术上接受标准 PG* 环境变量(因此本地连接可能可用),但本地使用未经测试且不受支持。多个工具需要 Microsoft Entra 身份验证和 Azure 专属 API,在 Azure 之外无法运行。它还引入了非 Azure 环境不需要的 Azure SDK 依赖项。目前该项目处于预览版。

此服务是其他所有场景的替代方案:本地 PostgreSQL、可自托管的数据库、Supabase、RDS 或任何标准 PostgreSQL 实例。它是一个依赖精简的单文件服务,不受云平台锁定,提供完整的读写支持和多个 SQL 语句的原子事务;需要限制访问时,还可使用可选的 ?mode=readonly 标志。

要求

  • Node.js 18+
  • 正在运行的 PostgreSQL 数据库

安装

npm install -g @sarmadparvez/postgresql-mcp

也可以直接运行而无需安装(需要 npm 7+ / Node.js 18+):

npx @sarmadparvez/postgresql-mcp <postgresql-connection-string>

用法

postgresql-mcp <postgresql-connection-string>

示例:

# Read-write access
postgresql-mcp postgresql://user:pass@localhost:5432/mydb

# Read-only mode (disables execute and transaction tools)
postgresql-mcp postgresql://user:pass@localhost:5432/mydb?mode=readonly

也可以通过 npx 运行(需要 npm 7+ / Node.js 18+):

npx @sarmadparvez/postgresql-mcp postgresql://user:pass@localhost:5432/mydb
npx @sarmadparvez/postgresql-mcp postgresql://user:pass@localhost:5432/mydb?mode=readonly

工具

工具可用模式描述
query始终可用执行只读的 SELECT 查询。在 READ ONLY 事务中运行。以 JSON 格式返回行。
execute读写模式执行写入 SQL 语句(INSERT、UPDATE、DELETE、CREATE、DROP 等)。返回受影响的行数。
schema始终可用列出指定架构中表的列、类型、可空性、默认值和主键。可选按特定表筛选。
list_tables始终可用列出架构中的所有基本表及其磁盘大小。
transaction读写模式以原子方式执行多个 SQL 语句。任何一条语句失败时,都会回滚所有语句。

只读模式

在连接字符串后添加 ?mode=readonly,即可在只读模式下启动服务。此模式会禁用 execute 和 transaction 工具,仅保留 query、schema 和 list_tables。

Claude Desktop 配置

首先,全局安装该软件包:

npm install -g @sarmadparvez/postgresql-mcp

然后,查找 node 和已安装脚本的路径:

which node
# e.g. /usr/local/bin/node
# nvm users: /Users/yourname/.nvm/versions/node/v22.12.0/bin/node

npm root -g
# e.g. /usr/local/lib/node_modules
# nvm users: /Users/yourname/.nvm/versions/node/v22.12.0/lib/node_modules

将以下内容添加到你的 claude_desktop_config.json:

  • 将 command 替换为 which node 的输出
  • 将脚本路径的前缀替换为 npm root -g 的输出;后缀 /@sarmadparvez/postgresql-mcp/index.js 保持不变
{
  "mcpServers": {
    "postgres": {
      "command": "/usr/local/bin/node",
      "args": [
        "/usr/local/lib/node_modules/@sarmadparvez/postgresql-mcp/index.js",
        "postgresql://user:pass@localhost:5432/mydb"
      ]
    }
  }
}

如需只读访问权限,请在连接字符串后追加 ?mode=readonly:

{
  "mcpServers": {
    "postgres-readonly": {
      "command": "/usr/local/bin/node",
      "args": [
        "/usr/local/lib/node_modules/@sarmadparvez/postgresql-mcp/index.js",
        "postgresql://user:pass@localhost:5432/mydb?mode=readonly"
      ]
    }
  }
}

兼容的 AI 客户端

此 MCP 服务适用于任何支持 Model Context Protocol 的客户端:

依赖项

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。