mcpField
P
postgres

postgres

github.com/sanjay3290数据与数据库447607 次安装7 周前更新
代码仓库

关于 postgres

PostgreSQL Read-Only Query Skill 是用于查询已配置 PostgreSQL 数据库的 Python 技能,仅执行只读操作。它还支持发现数据库和查看结构,并对查询与结果设置限制。

主要功能

  1. 01执行 PostgreSQL 只读查询
  2. 02列出已配置的数据库
  3. 03列出表并查看结构
  4. 04限制查询类型且拒绝多语句
  5. 05设置超时和结果数量上限
  6. 06配置 SSL 模式

适用场景

  1. 01安全检查数据库内容
  2. 02查找数据表并查看结构
  3. 03执行有结果限制的 SELECT 或 EXPLAIN 查询

安装

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

$npx skills add https://github.com/sanjay3290/ai-skills --skill postgres

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.gitignore
connections.example.json
README.md
requirements.txt
scripts/
query.py

详细介绍

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