README
🚀 PostgreSQL 全文翻译说明
这个 MCP(机器学习平台)服务器是一个用于连接 PostgreSQL 数据库的自定义工具,它支持读写操作,还提供了增强的数据库交互功能,能让用户更高效、安全地与 PostgreSQL 数据库进行交互。
✨ 主要特性
1. 增强的数据库访问
- 读写支持:支持用户执行 SELECT、INSERT、UPDATE 和 DELETE 操作,满足多样化的数据操作需求。
- 权限控制:通过创建专用数据库用户并授予适当权限,确保安全连接到 PostgreSQL 数据库。示例如下:
-- 创建一个受限用户(根据需要进行调整)
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;
-- 只授予必要的权限
2. 增强的数据库交互
- 事务支持:用户可以使用
commit和rollback命令来管理事务,保证数据操作的一致性和完整性。
# 提交事务
commit
# 回滚事务
rollback
- 索引信息:可显示指定表的索引及其类型,方便用户了解表的索引结构。
\di+ table_name
- 外键信息:展示特定表的外键关联,帮助用户理清表之间的关系。
\d+ table_name
- 行估计:提供表的大小和行数统计信息,让用户对表的数据规模有清晰的认识。
# 表大小和行数统计
\dt+
- 表描述:显示表及其列的详细信息,包括数据类型和约束,便于用户了解表的结构。
\d table_name
3. 安全注意事项
- 始终使用“允许一次”选项,每次写入操作前仔细审查 SQL 语句:
- 查看表名、确认列名和数据准确性。
- 确保 WHERE 子句适当,避免误删或误更新。
💻 使用示例
基础用法
示例 1:创建新表并添加数据
用户:"我需要一个包含 id、名称、价格和库存的新产品表。" Claude:分析你的数据库需求,生成以下 SQL 语句:
CREATE TABLE products (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
price DECIMAL(10,2) NOT NULL,
inventory INTEGER DEFAULT 0
);
用户:审查后点击“允许一次”。 Claude:“我已经创建了 products 表。是否需要添加一些示例数据?” 用户:"是的,请添加五个示例产品。" Claude:生成 INSERT 语句并提示批准。
高级用法
示例 2:安全工作流程
对于任何写入操作,采用两步验证:
- 分析请求:Claude 根据你的需求准备 SQL。
- 读取操作自动执行:仅 SELECT 查询会直接运行。
- 写入操作处理:
- Claude 在事务中执行 SQL 并结束对话。
- 用户审查结果。
- 新对话中,用户回复“是”提交或“否”回滚。
📦 安装指南
构建与运行容器
# 构建 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 run -i --rm mcp-postgres-full-access "postgresql://username:password@host.docker.internal:5432/database"
📄 许可证
此 MCP 服务器根据 MIT License 分发。
创建者
由 Syahiid Nur Kamil(@syahiidkamil)创建。
版权所有 © 2024 Syahiid Nur Kamil。保留所有权利。
Scan to contact