PostgreSQL 全访问 MCP(机器学习平台)服务器是一款强大的工具,它支持对 PostgreSQL 数据库进行全面的读写操作。通过提供增强的 schema 细节、事务支持、索引信息等高级功能,能帮助用户更好地管理和操作数据库。
PostgreSQL 全访问 MCP 服务器为数据库管理提供了全面且强大的功能。借助它,你可以对 PostgreSQL 数据库进行完整的读写操作,获取详细的数据库元数据,还能进行事务控制等高级操作。以下将为你详细介绍其安装和使用方法。
相较于官方 PostgreSQL MCP 服务器,本服务器功能更为全面,支持更多高级操作,并且能提供更详细的数据库元数据。
# 构建 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);
# 使用 Docker 启动 MCP 服务器
docker run -d --name mcp-server -p 5000:5000 mcr.microsoft.com/mssql-tools:latest
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;
-- 根据需求授予特定权限
💡 使用建议
- 始终使用“允许一次”:在执行写入操作前,仔细审核每条指令。永远不要选择“总是允许”,除非你已充分验证过代码。
- 连接到测试数据库:初次使用时,请链接到一个测试或备份数据库。
- 谨慎处理敏感数据:确保数据库中的敏感信息得到妥善保护。
PostgreSQL 全访问 MCP 服务器是一个功能全面的工具,适用于需要完全控制和详细信息的数据库管理场景。通过 Docker 容器化部署,可以轻松集成到现有环境中,同时确保安全性和性能优化。