Token导航 LogoToken导航TokenDH.com
Postgres Ssh MCP logo
数据服务未说明官方级别未说明来源级核验

Postgres Ssh MCP

MCP Server

一个跨平台的PostgreSQL MCP服务器,支持SSH隧道连接,适用于AI工具查询和检查数据库。

工具数

6

提示词数

0

GitHub Stars

0

资源数

0
数据库工具PostgreSQLClaudeClaude DesktopClaudeCursorWindsurf

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

SecretX33

提供方

SecretX33

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

postgres ssh-mcp

支持SSH隧道的PostgreSQL跨平台MCP服务器。适用于macOS、Linux和Windows。

概述

postgres-ssh-mcp 公开了允许AI工具查询和内省PostgreSQL数据库的MCP工具。它支持三种连接模式:

连接模式

模式激活时连接方式
直接的未设置SSH变量直接连接到Postgres(无隧道)
SSH配置SSH_HOST 已设置读取 ~/.ssh/config 对于给定的别名;使用其 HostName, User, IdentityFile等等。
显式SSHSSH_HOSTNAME + SSH_USER 已设置使用环境变量中的值打开SSH隧道

使用AI工具

任何MCP兼容工具

Claude Desktop、Cursor和Windsurf等工具使用JSON配置文件。在下面添加条目 mcpServers:

{
  "mcpServers": {
    "postgres-ssh-mcp": {
      "command": "npx",
      "args": ["-y", "postgres-ssh-mcp"],
      "env": {
        "DB_HOST": "localhost",
        "DB_NAME": "mydb",
        "DB_USER": "dbuser",
        "DB_PASSWORD": "dbpassword",
        
        // If you have an SSH config alias:
        "SSH_HOST": "my-bastion",
        
        // Or if you need explicit SSH:
        "SSH_HOSTNAME": "127.0.0.1",
        "SSH_USER": "mybastionuser",
        "SSH_IDENTITY_FILE": "~/.ssh/mybastionkey", // optional if you use the default key path
        "SSH_KEY_PASSPHRASE": "mypassphrase", // optional, if your private key is encrypted
        "SSH_PORT": "1234", // defaults to 22
      }
    }
  }
}

对于SSH隧道连接,添加 SSH_HOST (SSH配置别名)或 SSH_HOSTNAME + SSH_USER (显式凭据)到 env 块。

克劳德代码

使用 claude mcp add 注册服务器。所有环境变量必须通过传递 --env 旗帜。

claude mcp add --transport stdio postgres-ssh-mcp \
  --env DB_HOST=localhost \
  --env DB_NAME=mydb \
  --env DB_USER=dbuser \
  --env DB_PASSWORD=dbpassword \
  -- npx -y postgres-ssh-mcp

提示: 您可以包括 --scope project 将服务器仅添加到当前项目中。

工具

工具说明
run_query执行SQL查询(默认情况下为只读;请参阅 DB_READ_ONLY).支持参数化查询 $1, $2, ... 占位符
explain_query获取SQL查询的执行计划。支持所有PostgreSQL EXPLAIN选项(分析、缓冲、定时等)和输出格式(文本、JSON、YAML、XML)
list_schemas列出数据库中的所有架构
list_tables列出架构中的表(默认值: public)
describe_table显示表的列、类型和可空性
get_connection_status显示连接池统计信息、数据库版本、大小和服务器配置

深度防御查询安全

这是设置的关键功能 postgres-ssh-mcp 除了其他PostgreSQL MCP服务器之外。它是唯一一个通过安全机制的组合来实施多层保护以防止意外数据修改的系统。

  1. AST级SQL验证 使用 pgsql-parser@pgsql/traverse --将SQL解析为抽象语法树并遍历它以检测突变(包括CTE中的隐藏突变), SELECT INTO以及锁定条款。仅 SELECTEXPLAIN 允许发表声明。
  2. 危险功能denylist --阻止250多个PostgreSQL函数,即使在只读事务中也会产生副作用,包括 pg_sleep, nextval, pg_notify、文件I/O功能、咨询锁和复制控制。
  3. 只读事务包装 --所有查询都在内部执行 BEGIN TRANSACTION READ ONLY 自动 ROLLBACK.
  4. 单一声明执行 --多语句查询在执行前被拒绝。

_注: 不建议禁用这些安全机制,但是,您可以通过设置 DB_READ_ONLY=false,它授予AI工具对数据库的完全写入权限。_

环境变量

这些都是可用于配置此MCP服务器的环境变量。

必需

变量描述
DB_HOSTPostgres主机或RDS端点
DB_NAME数据库名称
DB_USER数据库用户
DB_PASSWORD数据库密码

可选的

变量默认值描述
ALLOWED_TOOLS_(全部)_以逗号分隔的要注册的工具列表。未设置时,所有工具都可用。案件敏感。例子: run_query,describe_table
DB_PORT5432Postgres港口
DB_READ_ONLYtrue设置为 false 允许写查询(run_query 仅)
DB_SSLfalse设置为 true 为数据库连接启用TLS
DB_SSL_CA--用于SSL验证的自定义CA证书文件(PEM)的路径
DB_SSL_REJECT_UNAUTHORIZEDtrue设置为 false 跳过SSL证书验证(不安全)
DB_MAX_ROWS1000每个查询返回的最大行数。在只读模式下使用基于光标的获取
DB_CONNECTION_POOL_SIZE5池中的最大连接数
DB_CONNECTION_TIMEOUT_MS10000等待来自池的连接的毫秒数
DB_QUERY_TIMEOUT_MS15000强制取消查询前的毫秒
DB_POOL_DRAIN_TIMEOUT_MS5000在重新连接期间等待旧池排空的毫秒数(0表示从不等待)
SSH_HOST--SSH配置别名(读取 ~/.ssh/config)
SSH_HOSTNAME--Bastion主机名或IP
SSH_USER--SSH登录用户
SSH_PORT22SSH端口
SSH_STRICT_HOST_KEY_CHECKINGtrue启用或禁用严格主机检查
SSH_IDENTITY_FILE--绝对路径或 ~/... 到私钥文件
SSH_KEY_PASSPHRASE--加密私钥的密码
SSH_PASSWORD--SSH密码(基于密钥的身份验证的替代方案)
SSH_KEEPALIVE_INTERVAL_MSdisabledSSH保活探测之间的毫秒数(如果设置:最小1000)
SSH_KEEPALIVE_COUNT_MAX3在断开连接之前,最多可进行未应答的保活探测
SSH_TRUST_ON_FIRST_USEtrue在首次连接时自动接受并保存未知的SSH主机密钥
SSH_KNOWN_HOSTS_PATH--自定义known_hosts文件的路径(默认值: ~/.ssh/known_hosts)
SSH_MAX_RECONNECT_ATTEMPTS5SSH重新连接的最大尝试次数(-1表示无限制,0表示禁用)

发展

复制示例env文件并填写您的值:

git clone https://github.com/SecretX33/postgres-ssh-mcp.git
cd postgres-ssh-mcp
npm install
npm run build

编译后的服务器被写入 dist/index.js.

复制示例env文件并填写您的值:

cp .env.example .env
# edit .env

然后以监视模式运行(自动加载 .env):

npm run dev

许可证

麻省理工学院

目录标签

目录标签

数据库工具PostgreSQLClaudeTypeScript本地部署SSH隧道AI集成查询安全

支持客户端

Claude DesktopClaudeCursorWindsurf

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP