
PostgreSQL Full Access MCP Server

2025.04.23
0
TypeScript数据库管理数据操作PostgreSQL 工具数据库
mcp-postgres-full-access-extended 是一个基于 Model Context Protocol 的 PostgreSQL 数据库全访问服务,提供了对 PostgreSQL 数据库的完整读写权限。相比官方的只读 PostgreSQL MCP 服务器,该增强版本允许大型语言模型(LLMs)在适当的事务管理和安全控制下查询和修改数据库内容。
View on GitHub
Overview
产品定位
一个增强的 PostgreSQL 数据库访问服务,为 LLMs 提供完整的读写权限和丰富的数据库操作功能。
核心功能
完整读写访问
- 安全执行 DML 操作(INSERT, UPDATE, DELETE)
- 使用 DDL 创建、修改和管理数据库对象
- 带有显式提交的事务管理
- 安全超时和自动回滚保护
丰富的模式信息
- 详细的列元数据(数据类型、描述、最大长度、可空性)
- 主键标识
- 外键关系
- 索引信息(类型和唯一性标志)
- 表行数估计
- 表和列描述(当可用时)
高级安全控制
- SQL 查询分类(DQL, DML, DDL, DCL, TCL)
- 强制执行只读查询
- 所有操作在隔离的事务中运行
- 自动事务超时监控
- 可配置的安全限制
- 带有显式用户确认的两步事务提交过程
适用场景
- 数据库管理和维护
- 数据分析和报告生成
- 数据库模式设计和修改
- 数据迁移和转换
- 自动化数据库测试
工具列表
- execute_query: 执行只读 SQL 查询(SELECT 语句)
- execute_dml_ddl_dcl_tcl: 执行数据修改操作或模式更改
- execute_maintenance: 执行维护命令如 VACUUM, ANALYZE 或 CREATE DATABASE
- execute_commit: 通过 ID 显式提交事务
- execute_rollback: 通过 ID 显式回滚事务
- list_tables: 获取数据库中所有表的综合列表
- describe_table: 获取特定表结构的详细信息
常见问题解答
安全注意事项
- 为数据库创建专用用户并限制权限
- 始终使用"Allow once"审查每个写入操作
- 首次使用时连接到测试数据库
- 实施数据库备份
- 不要共享不应暴露给 LLMs 的敏感数据
使用教程
使用依赖
- 确保系统已安装 Node.js
安装教程
- 使用 npx 安装包或将其添加到项目中
- 配置 Claude Desktop 编辑
claude_desktop_config.json
- 替换数据库连接字符串为实际的 PostgreSQL 连接详情
- 完全重启 Claude Desktop
调试方式
- 使用 Docker 运行服务:
# 构建 Docker 镜像
docker build -t mcp-postgres-full-access .
# 运行容器
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:[email protected]:5432/database"