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

MCP Postgres Full Access Extended

MCP Server

一个增强的Model Context Protocol服务器,提供对PostgreSQL数据库的完整读写访问,包括事务管理和安全控制。

工具数

8

提示词数

0

GitHub Stars

4

资源数

0
数据分析安全控制PostgreSQLClaudeClaude DesktopClaude

安装说明

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

作者 / 组织

kamusis

提供方

kamusis

最后核验

2026/5/17 20:22

运行时

Docker

快速接入

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

命令预览

docker run -i --rm mcp-postgres-full-access "postgresql://username:password@host:5432/database"

详细介绍

PostgreSQL完全访问MCP服务器

![Model Context Protocol](https://modelcontextprotocol.io) ![MIT License](LICENSE)

该项目是原始项目的独立维护和扩展分支 mcp postgres完全访问权限 作者:Syahiid Kamil。

一个强大的模型上下文协议服务器,提供 完全读写访问 PostgreSQL数据库。与只读的官方MCP PostgreSQL服务器不同,这种增强的实现允许大型语言模型(LLM)通过适当的事务管理和安全控制来查询和修改数据库内容。

目录

- 完全读写访问权限 - 丰富的架构信息 - 高级安全控制

- execute_query - execute_dml_ddl_dcl_tcl - 执行_维护 - 执行_提交 - execute_rollback - list_tables - describe_table - list_schemas

- Claude桌面集成 - 重要提示:使用“允许一次”以确保安全

- 数据库用户权限 - 安全使用的最佳实践

🌟 特性

完全读写访问权限

  • 安全执行DML操作(INSERT、UPDATE、DELETE)
  • 使用DDL创建、更改和管理数据库对象
  • 具有显式提交的事务管理
  • 安全超时和自动回滚保护

丰富的架构信息

  • 详细的列元数据(数据类型、描述、最大长度、可空性)
  • 主键标识
  • 外键关系
  • 带有类型和唯一性标志的索引信息
  • 表行数估计
  • 表和列说明(如果可用)

高级安全控制

  • SQL查询分类(DQL、DML、DDL、DCL、TCL)
  • 强制执行只读以实现安全查询
  • 所有操作都在独立的事务中运行
  • 自动事务超时监控
  • 可配置的安全限制
  • 带有明确用户确认的两步事务提交流程

🔧 工具

  • execute_query

- 执行只读SQL查询(SELECT语句) - 输入: sql (string):要执行的SQL查询 - 所有查询都在只读事务中执行 - 结果包括执行时间指标和字段信息

  • execute_dml_ddl_dcl_tcl

- 执行数据修改操作(INSERT、UPDATE、DELETE)或模式更改(CREATE、ALTER、DROP) - 输入: sql (string):要执行的SQL语句 - 自动包装在具有可配置超时的事务中 - 返回显式提交的事务ID - 重要安全特征:对话将在执行后结束,允许用户在决定提交或回滚之前查看结果

  • 执行_维护

- 在事务之外执行VACUUM、ANALYZE或CREATE DATABASE等维护命令 - 输入: sql (string):要执行的SQL语句-必须是VACUUM、ANALYZE或CREATE DATABASE - 返回一个包含执行时间度量的结果对象

  • 执行_提交

- 按ID显式提交事务 - 输入: transaction_id (string):要提交的事务的ID - 安全地处理提交或回滚后的清理 - 将更改永久应用于数据库

  • execute_rollback

- 按事务ID显式回滚事务 - 输入: transaction_id (string):要回滚的事务的ID - 安全地丢弃所有更改并清理资源 - 在审查更改并决定不应用更改时很有用

  • list_tables

- 获取数据库中所有表的完整列表 - 包括列数和表说明 - 无需输入参数

  • describe_table

- 获取特定表结构的详细信息 - 输入: table_name (string):要描述的表的名称 - 返回完整的架构信息,包括主键、外键、索引和列详细信息

  • list_schemas

- 获取数据库中所有模式的列表 - 无需输入参数 - 返回一个包含模式名称、所有者和表计数的模式数组

📊 资源

服务器为数据库表提供增强的架构信息:

  • 持微软签名的表模式 (postgres:////schema)

- 每个表的详细JSON模式信息 - 包括完整的列元数据、主键和约束 - 从数据库元数据中自动发现

🚀 与Claude Desktop一起使用

Claude桌面集成

要将此服务器与Claude Desktop一起使用,请执行以下步骤:

  1. 首先,确保你的系统上安装了Node.js
  1. 使用npx安装包或将其添加到项目中
  1. 通过编辑配置Claude Desktop claude_desktop_config.json (通常在 ~/Library/Application Support/Claude/ 在macOS上):
{
  "mcpServers": {
    "postgres-full": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-postgres-full-access-extended",
        "postgresql://username:password@localhost:5432/database"
      ],
      "env": {
        "TRANSACTION_TIMEOUT_MS": "60000",
        "MAX_CONCURRENT_TRANSACTIONS": "5",
        "PG_STATEMENT_TIMEOUT_MS": "30000"
      }
    }
  }
}
  1. 用实际的PostgreSQL连接详细信息替换数据库连接字符串
  2. 完全重新启动克劳德桌面

重要提示:使用“允许一次”以确保安全

当Claude尝试将更改提交到您的数据库时,Claude Desktop将提示您批准:

Allow Once Dialog

在批准SQL更改之前,一定要仔细检查!

安全最佳实践:

  • 对于提交操作,始终单击“允许一次”(而不是“始终允许”)
  • 在批准之前仔细检查事务SQL
  • 考虑使用权限有限的数据库用户
  • 首次尝试此服务器时,如果可能,请使用测试数据库

这种“允许一次”的方法使您能够完全控制,以防止对数据库进行不必要的更改,同时仍然使Claude能够在需要时帮助完成数据管理任务。

⚙️ 环境变量

您可以在Claude Desktop配置中使用环境变量自定义服务器行为:

"env": {
  "TRANSACTION_TIMEOUT_MS": "60000",
  "MAX_CONCURRENT_TRANSACTIONS": "5"
}

关键环境变量:

  • TRANSACTION_TIMEOUT_MS:事务超时(毫秒)(默认值:15000)

- 如果您的交易需要更多时间,请增加此值 - 为了安全起见,超过此时间的交易将自动回滚

  • MAX_CONCURRENT_TRANSACTIONS:最大并发事务数(默认值:10)

- 降低此数字以进行更保守的操作 - 更高的值允许更多的同时写入操作

  • ENABLE_TRANSACTION_MONITOR:启用/禁用事务监视器(“true”或“false”,默认值:“true”)

- 监控并自动回滚已放弃的交易 - 很少需要残疾

  • PG_STATEMENT_TIMEOUT_MS:SQL查询执行超时(毫秒)(默认值:30000)

- 限制任何单个SQL语句可以运行的时间 - 防止查询失控的重要安全功能

  • PG_MAX_CONNECTIONS:最大PostgreSQL连接数(默认值:20)

- 重要的是要保持在数据库的连接限制范围内

  • MONITOR_INTERVAL_MS:检查卡住交易的频率(默认值:5000)

- 通常不需要调整

🔄 使用Claude进行完全数据库访问

此服务器使Claude能够在您的批准下从您的PostgreSQL数据库读取数据和向其写入数据。以下是一些示例对话流程:

示例:创建新表和添加数据

您:“我需要一个新的产品表,其中包含id、名称、价格和库存列”

克劳德: _分析数据库并创建查询_

CREATE TABLE products (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    price DECIMAL(10,2) NOT NULL,
    inventory INTEGER DEFAULT 0
);

_Claude Desktop将提示您批准此操作_

你: _查看并单击“允许一次”_

克劳德:“我已经创建了产品表。你想让我添加一些示例数据吗?”

您:“是的,请添加5个样品产品”

克劳德: _创建INSERT语句并提示审批_ _您使用“允许一次”进行审核和批准_

示例:使用安全查询的数据分析

你:“按价格计算,我的前三大产品是什么?”

克劳德: _自动执行只读查询_ _显示结果_

安全工作流程

对于任何修改数据库的操作,关键的安全功能是两步走的方法:

  1. Claude分析您的请求并准备SQL
  2. 对于只读操作(SELECT),Claude会自动执行
  3. 对于写操作(INSERT、UPDATE、DELETE、CREATE等):

- Claude在事务中执行SQL并结束对话 - 您查看结果 - 在新的对话中,您用“是”表示提交,用“否”表示回滚 - Claude Desktop会向您显示将要更改的内容并请求许可 - 您单击“允许一次”以允许特定操作 - Claude执行操作并返回结果

这为您提供了在将更改永久应用于数据库之前验证更改的多种机会。

⚠️ 安全考虑

使用写访问权限将Claude连接到数据库时:

数据库用户权限

重要: 创建具有适当权限的专用数据库用户:

-- Example of creating a restricted user (adjust as needed)
CREATE USER claude_user WITH PASSWORD 'secure_password';
GRANT SELECT ON ALL TABLES IN SCHEMA public TO claude_user;
GRANT INSERT, UPDATE, DELETE ON TABLE table1, table2 TO claude_user;
-- Only grant specific permissions as needed

安全使用的最佳实践

  1. 始终使用“允许一次” 查看每个写入操作

- 切勿选择“始终允许”进行数据库修改 - 花时间仔细检查SQL

  1. 连接到测试数据库 首次使用此工具时

- 考虑使用数据库副本/备份进行初始测试

  1. 限制数据库用户权限 只做必要的事

- 避免使用超级用户或管理员帐户 - 尽可能授予表特定权限

  1. 实施数据库备份 在广泛使用之前
  1. 切勿共享敏感数据 不应该接触LLM
  1. 验证所有SQL操作 在批准之前

- 检查表名 - 验证列名和数据 - 确认WHERE子句是否合适 - 寻找适当的交易处理方式

码头工人

服务器可以在Docker容器中轻松运行:

# Build the Docker image
docker build -t mcp-postgres-full-access .

# Run the container
docker run -i --rm mcp-postgres-full-access "postgresql://username:password@host:5432/database"

对于macOS上的Docker,请使用host.Docker.internal连接到主机网络:

docker run -i --rm mcp-postgres-full-access "postgresql://username:password@host.docker.internal:5432/database"

📄 许可证

此MCP服务器根据MIT许可证获得许可。

💡 与官方PostgreSQL MCP服务器的比较

功能此服务器官方MCP PostgreSQL服务器
读取权限
写入权限
架构详细信息增强基本
事务支持显式超时只读
索引信息
外键详细信息
行数估计
表说明

作者

由Syahiid Nur Kamil创建(@系统)

由kamusis扩展(@kamusis)

______________________________________________________________________

版权所有©2025卡穆西斯。保留所有权利。

目录标签

目录标签

数据分析安全控制PostgreSQLClaude数据库管理TypeScript本地部署读写访问事务管理

支持客户端

Claude DesktopClaude

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP