mcpField
P
postgres

postgres

github.com/w95数据与数据库28537 次安装35 周前更新
代码仓库

关于 postgres

postgres 是用于对已配置的 PostgreSQL 数据库执行安全只读查询的技能。它还支持查看数据库和结构,并通过查询校验及结果限制约束访问与输出。

主要功能

  1. 01列出已配置的数据库
  2. 02查看数据表和数据库结构
  3. 03允许 SELECT、SHOW、EXPLAIN 和 WITH 查询
  4. 04拒绝多语句查询并设置超时
  5. 05限制查询行数并清理凭据错误信息

适用场景

  1. 01检查已配置数据库中的记录
  2. 02编写查询前探索数据表
  3. 03执行有结果限制的只读数据查询

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/w95/awesome-claude-corporate-skills --skill postgres

安装后在 Claude Code 中输入/postgres确认已加载。

详细介绍

PostgreSQL 只读查询技能

对已配置的 PostgreSQL 数据库执行安全的只读查询。

要求

  • Python 3.8+
  • psycopg2-binary:pip install -r requirements.txt

设置

在技能目录或 ~/.config/claude/postgres-connections.json 中创建 connections.json。

安全性:由于文件包含凭据,请将文件权限设为 600:

chmod 600 connections.json
{
  "databases": [
    {
      "name": "production",
      "description": "Main app database - users, orders, transactions",
      "host": "db.example.com",
      "port": 5432,
      "database": "app_prod",
      "user": "readonly_user",
      "password": "your-password",
      "sslmode": "require"
    }
  ]
}
配置字段
字段必填说明
name是数据库标识符(不区分大小写)
description是此数据库包含的数据(用于自动选择)
host是数据库主机名
port否端口号(默认值:5432)
database是数据库名称
user是用户名
password是密码
sslmode否SSL 模式:disable、allow、prefer(默认值)、require、verify-ca、verify-full

用法

列出已配置的数据库
python3 scripts/query.py --list
查询数据库
python3 scripts/query.py --db production --query "SELECT * FROM users LIMIT 10"
列出表
python3 scripts/query.py --db production --tables
显示架构
python3 scripts/query.py --db production --schema
限制结果数量
python3 scripts/query.py --db production --query "SELECT * FROM orders" --limit 100

数据库选择

根据用户意图匹配数据库 description:

用户询问内容查找说明中包含的内容
用户、账户users、accounts、customers
订单、销售orders、transactions、sales
分析、指标analytics、metrics、reports
日志、事件logs、events、audit

如果不明确,请运行 --list 并询问用户要使用哪个数据库。

安全功能

  • 只读会话:连接使用 PostgreSQL readonly=True 模式(主要保护措施)
  • 查询验证:仅允许 SELECT、SHOW、EXPLAIN、WITH 查询
  • 单条语句:拒绝每个查询包含多条语句的情况
  • SSL 支持:可配置 SSL 模式以建立加密连接
  • 查询超时:强制设置 30 秒语句超时
  • 内存保护:每个查询最多返回 10,000 行,以防止内存耗尽
  • 列宽上限:每列最多显示 100 个字符,以便于阅读输出
  • 凭据清理:错误消息不会泄露密码

故障排除

错误解决方案
找不到配置在技能目录中创建 connections.json
身份验证失败检查配置中的用户名和密码
连接超时确认主机和端口,并检查防火墙或 VPN
SSL 错误对于本地数据库,尝试使用 "sslmode": "disable"
权限警告运行 chmod 600 connections.json

退出代码

  • 0:成功
  • 1:错误(配置缺失、身份验证失败、查询无效、数据库错误)

工作流

  1. 运行 --list 以显示可用数据库
  2. 根据用户意图匹配数据库说明
  3. 运行 --tables 或 --schema 以查看结构
  4. 使用适当的 LIMIT 执行查询

评论

支持 Markdown