Mcp Postgres Full Access Extended

Mcp Postgres Full Access Extended

🚀 PostgreSQL 全访问 MCP 服务器

PostgreSQL 全访问 MCP(机器学习平台)服务器是一款强大的工具,它支持对 PostgreSQL 数据库进行全面的读写操作。通过提供增强的 schema 细节、事务支持、索引信息等高级功能,能帮助用户更好地管理和操作数据库。

🚀 快速开始

PostgreSQL 全访问 MCP 服务器为数据库管理提供了全面且强大的功能。借助它,你可以对 PostgreSQL 数据库进行完整的读写操作,获取详细的数据库元数据,还能进行事务控制等高级操作。以下将为你详细介绍其安装和使用方法。

✨ 主要特性

  • 读取与写入访问:支持 SELECT、INSERT、UPDATE、DELETE 等各类数据库操作,满足多样化的数据处理需求。
  • 增强型 Schema 详情:提供详尽的表结构信息,涵盖索引和外键关系,助力用户深入了解数据库结构。
  • 事务支持:允许用户显式控制事务,并设有超时机制,保障数据一致性。
  • 指数与外键信息:清晰显示表的索引和外键细节,方便数据库的设计与优化。
  • 行数量估计:提供表中记录数的估算,帮助用户快速了解数据规模。
  • 表描述:包含每个表的详细描述信息,便于用户理解表的用途和内容。

优势

相较于官方 PostgreSQL MCP 服务器,本服务器功能更为全面,支持更多高级操作,并且能提供更详细的数据库元数据。

📦 安装指南

使用 Docker 运行

# 构建 Docker 镜像
docker build -t mcp-postgres-full-access .

# 启动容器
docker run -i --rm mcp-postgres-full-access "postgresql://username:password@host:5432/database"

注意事项

⚠️ 重要提示

在 macOS 系统上,需使用 host.docker.internal 代替主机名来连接 Docker 容器的网络。

💻 使用示例

基础用法

创建新表并添加数据

用户: "我需要创建一个包含 id、名称、价格和库存的新产品表"

Claude: 分析数据库并生成查询

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

用户: 审核后点击“允许一次”

Claude: "我已经创建了产品表。是否需要添加一些示例数据?"

用户: "是的,请添加5条示例产品数据"

Claude: 生成插入语句并请求批准 用户审核后点击“允许一次”

数据分析(只读操作)

用户: "请告诉我价格最高的3款产品是什么?"

Claude: 执行只读查询并显示结果

高级用法

创建新数据库

CREATE DATABASE my_database;
\c my_database;  -- 切换到新数据库

管理用户与权限

CREATE USER new_user WITH PASSWORD 'securepass';
GRANT ALL PRIVILEGES ON DATABASE my_database TO new_user;

示例查询

-- 查询所有产品及其价格
SELECT * FROM products ORDER BY price DESC;

-- 插入新记录
INSERT INTO products (name, price, inventory) VALUES ('New Product', 99.99, 10);

📚 详细文档

功能模块

  1. PostgreSQL 全访问功能
    • 支持完整的 SQL 查询,包括 DDL 和 DML 操作。
    • 提供详细的查询结果和执行计划。
  2. 增强型 Schema 信息
    • 显示表结构、索引、外键等详细信息。
    • 支持自动生成数据库文档。
  3. 事务控制
    • 允许显式开始和提交事务。
    • 设置超时机制以防止死锁和其他并发问题。
  4. 性能优化工具
    • 提供查询执行计划分析。
    • 显示表空间使用情况和索引统计信息。

安装与配置

快速安装

# 使用 Docker 启动 MCP 服务器
docker run -d --name mcp-server -p 5000:5000 mcr.microsoft.com/mssql-tools:latest

配置选项

  • 端口映射:默认使用 5000 端口。
  • 环境变量配置
    docker run -e PGPORT=5432 -e PGUSER=username -e PGPASSWORD=password ...
    

🔧 技术细节

安全注意事项

数据库用户权限

⚠️ 重要提示

使用一个受限的数据库用户,并授予其必要的最小权限。

-- 示例:创建受限用户(根据需要进行调整)
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;
-- 根据需求授予特定权限

使用最佳实践

💡 使用建议

  1. 始终使用“允许一次”:在执行写入操作前,仔细审核每条指令。永远不要选择“总是允许”,除非你已充分验证过代码。
  2. 连接到测试数据库:初次使用时,请链接到一个测试或备份数据库。
  3. 谨慎处理敏感数据:确保数据库中的敏感信息得到妥善保护。

安全与合规

数据加密

  • 传输中加密:确保所有数据库连接使用 SSL 加密。
  • 数据-at-rest 加密:对存储的数据进行加密,防止物理盗窃。

审计日志

  • 记录所有用户操作和查询历史。
  • 配置审核策略以监控敏感操作。

符合法规

  • 确保遵守 GDPR、HIPAA 等数据保护法规。
  • 定期进行安全审计和漏洞扫描。

📚 常见问题

为什么需要增强型 Schema 信息?

  • 回答:增强型 Schema 信息有助于更好地理解数据库结构,优化查询性能,并生成文档。

如何处理大事务?

  • 解答:建议将长事务分解为多个小事务,并定期提交以避免锁定问题。

📄 总结

PostgreSQL 全访问 MCP 服务器是一个功能全面的工具,适用于需要完全控制和详细信息的数据库管理场景。通过 Docker 容器化部署,可以轻松集成到现有环境中,同时确保安全性和性能优化。

  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-24 20:21

相似服务问题