mcpField
P
postgres

postgres

github.com/dedalus-erp-pas数据与数据库192 次安装
代码仓库

关于 postgres

用于安全执行 PostgreSQL 只读查询的技能,通过配置文件连接数据库,并可查看表和结构。它限制允许的查询类型,并设有超时和结果上限。

主要功能

  1. 01连接多个已配置数据库
  2. 02仅允许只读查询
  3. 03查看表与数据库结构
  4. 04限制查询时长和结果行数
  5. 05支持可配置 SSL 模式

适用场景

  1. 01查询用户、订单或分析数据
  2. 02查看数据库中的表和结构
  3. 03执行带结果上限的 SELECT 查询

安装

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

$npx skills add https://github.com/dedalus-erp-pas/foundation-skills --skill postgres

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

包含的文件

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

connections.example.json
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