PostgreSQL Full Access MCP Server

PostgreSQL Full Access MCP Server

site icon
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 的敏感数据

使用教程

使用依赖

  1. 确保系统已安装 Node.js

安装教程

  1. 使用 npx 安装包或将其添加到项目中
  2. 配置 Claude Desktop 编辑 claude_desktop_config.json
  3. 替换数据库连接字符串为实际的 PostgreSQL 连接详情
  4. 完全重启 Claude Desktop

调试方式

  1. 使用 Docker 运行服务:
# 构建 Docker 镜像
docker build -t mcp-postgres-full-access .

# 运行容器
docker run -i --rm mcp-postgres-full-access "postgresql://username:password@host:5432/database"
  1. 对于 macOS 上的 Docker,使用 host.docker.internal 连接到主机网络:
docker run -i --rm mcp-postgres-full-access "postgresql://username:[email protected]:5432/database"

许可证

该项目遵循 MIT 开源许可条款。