postgresql-skill
/install postgresql-skill
PostgreSQL Database Operations
Pure Python PostgreSQL skill using psycopg2 (no psql client needed).
When to Use
Use this skill when the user needs to:
- List database tables: "What tables are in the database?", "show tables"
- View table structure: "What columns does the users table have?", "describe users"
- Execute SQL queries: "Get all users", "SELECT * FROM users"
- Get schema summary: "What's the database structure?", "schema overview"
- Modify data: Insert, update, or delete records
When NOT to Use
- User asks conceptual questions (e.g., "What is PostgreSQL?")
- User needs data analysis or business insights (requires LLM reasoning)
- User wants natural language to SQL conversion (should be handled by upper-layer Agent)
- Database is not PostgreSQL
Usage Guidelines for AI Agents
Step 1: Check Prerequisites
Before using this skill, ensure:
- Python 3 is installed
- Dependencies are installed:
pip install psycopg2-binary pyyaml config.yamlexists with valid database connection details
If config.yaml is missing, instruct the user to:
cp config.example.yaml config.yaml
# Then edit config.yaml with real database credentials
Step 2: Choose the Right Command
| User Intent | Command | Example |
|---|---|---|
| List tables | python scripts/pgsql_skill.py list-tables |
Get all table names |
| Describe table | python scripts/pgsql_skill.py describe-table \x3Ctable> |
describe-table users |
| Query data | python scripts/pgsql_skill.py execute-sql "\x3CSQL>" |
execute-sql "SELECT * FROM users LIMIT 10" |
| Schema overview | python scripts/pgsql_skill.py schema-summary |
Full database structure |
Step 3: Parse Results
All commands return JSON (except schema-summary):
list-tables output:
{"tables": ["users", "orders", "products"]}
describe-table output:
{
"table": "users",
"columns": [
{"name": "id", "type": "integer", "nullable": false, "default": null},
{"name": "username", "type": "varchar", "nullable": false, "default": null}
]
}
execute-sql SELECT output:
{
"columns": ["id", "username", "email"],
"rows": [
{"values": ["1", "alice", "[email protected]"]},
{"values": ["2", "bob", "[email protected]"]}
]
}
execute-sql INSERT/UPDATE/DELETE output:
{"affected_rows": 1}
Step 4: Handle Errors
If a command fails, check the error message:
"error": "config.yaml not found"→ Guide user to create config"error": "psycopg2 not installed"→ Runpip install psycopg2-binary"error": "connection failed"→ Verify database credentials"error": "Forbidden operation"→ SQL violates safety rules
Safety Rules
This skill enforces strict SQL safety:
✅ Allowed:
- SELECT queries
- INSERT (single row only)
- UPDATE (must have WHERE clause)
- DELETE (must have WHERE clause)
❌ Blocked:
- DROP TABLE/DATABASE
- TRUNCATE TABLE
- ALTER TABLE
- Batch INSERT (multiple rows)
- UPDATE/DELETE without WHERE
Example of blocked query:
python scripts/pgsql_skill.py execute-sql "DROP TABLE users"
# Output: {"error": "Forbidden operation: DROP"}
Programmatic Integration
For advanced usage, import directly in Python:
import sys
from pathlib import Path
sys.path.insert(0, 'scripts')
from pgsql_skill import Database, load_config
# Initialize database connection
config = load_config()
db = Database(
host=config['host'],
port=config['port'],
dbname=config['dbname'],
user=config['user'],
password=config.get('password', '')
)
# Use database methods
tables = db.list_tables()
structure = db.describe_table("users")
result = db.execute_sql("SELECT count(*) FROM users")
# Always close connection
db.close()
Troubleshooting
- ModuleNotFoundError: psycopg2: Run
pip install psycopg2-binary- On macOS with managed Python:
pip install psycopg2-binary --no-binary :all:
- On macOS with managed Python:
- config.yaml not found: Copy from config.example.yaml
- Connection failed: Verify host/port/user/password in config.yaml
- Permission denied: Check database user permissions
Best Practices
- Add LIMIT to SELECT queries to avoid large result sets
- Always check errors before proceeding
- Close connections when using programmatic API
- Warn users before data modifications (INSERT/UPDATE/DELETE) and confirm intent
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install postgresql-skill - 安装完成后,直接呼叫该 Skill 的名称或使用
/postgresql-skill触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
postgresql-skill 是什么?
Execute PostgreSQL database operations using psycopg2. List tables, describe schema, execute SQL queries. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 42 次。
如何安装 postgresql-skill?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install postgresql-skill」即可一键安装,无需额外配置。
postgresql-skill 是免费的吗?
是的,postgresql-skill 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
postgresql-skill 支持哪些平台?
postgresql-skill 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 postgresql-skill?
由 tengshengbo(@tengshengbo)开发并维护,当前版本 v1.0.1。