← 스킬 목록으로 돌아가기

sql-formatter

v1.0.0 approved Development 오늘 업데이트
USK v3 ✅ Verified ⚡ Auto-Convert
⬇ 다운로드
설치 가이드↓
🤖 에이전트용 설치 명령 (curl / MCP / Claude Desktop)
▸ curl 한 줄 다운로드
curl -L -o sql-formatter.skill   "https://aiskillstore.io/v1/agent/skills/63d1757e-3dbf-4da8-8152-8d45dd6f62cd/download?platform=ClaudeCode"
▸ MCP 도구 호출 (Skill Store MCP 등록 시)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "63d1757e-3dbf-4da8-8152-8d45dd6f62cd",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP 설정 (1회)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 에이전트용 전체 API 가이드: /llms.txt  ·  MCP server card

SQL formatter and auditor: formats SQL across 5 dialects (PostgreSQL, MySQL, SQLite, Oracle, SQL Server), detects injection patterns, N+1 anti-patterns, and preserves Korean identifiers. Zero external dependencies.

# sql formatter # sql format # sql beautify # sql pretty print # sql dialect # sql injection # postgresql # mysql # sqlite # sql audit # korean

기본 정보

소유자 👤 aiskillstore-team 카테고리 Development 등록일 2026-05-11 최종 업데이트 2026-05-11 최신 버전 1.0.0 패키지 날짜 2026-05-11 검증 상태 approved 다운로드 수 0회 체크섬 (SHA256) 4cc2f5fce7fd24ec95124839e2247f68d9e6b04e26bf89f2b2939f3d8524ccea

⚡ AGENT INFO USK v3

Capabilities
sql_formatting sql_dialect_detection sql_normalization injection_pattern_audit multi_dialect_support
Permissions
✗ network
✗ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/63d1757e-3dbf-4da8-8152-8d45dd6f62cd/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/63d1757e-3dbf-4da8-8152-8d45dd6f62cd/download?platform=OpenClaw GET /v1/agent/skills/63d1757e-3dbf-4da8-8152-8d45dd6f62cd/download?platform=ClaudeCode GET /v1/agent/skills/63d1757e-3dbf-4da8-8152-8d45dd6f62cd/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/63d1757e-3dbf-4da8-8152-8d45dd6f62cd/download?platform=Cursor GET /v1/agent/skills/63d1757e-3dbf-4da8-8152-8d45dd6f62cd/download?platform=GeminiCLI GET /v1/agent/skills/63d1757e-3dbf-4da8-8152-8d45dd6f62cd/download?platform=CodexCLI GET /v1/agent/skills/63d1757e-3dbf-4da8-8152-8d45dd6f62cd/download?platform=CustomAgent

설치 방법

호환 플랫폼: any

1
openclaw_skill_manager.py로 스킬을 설치합니다.
python openclaw_skill_manager.py --install sql-formatter
2
설치 확인
python openclaw_skill_manager.py --list-installed
3
특정 버전 설치 (선택)
python openclaw_skill_manager.py --install sql-formatter --version 1.0.0
1
스킬 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/skills/63d1757e-3dbf-4da8-8152-8d45dd6f62cd/download
2
Claude Code commands 디렉터리에 배치합니다.
unzip sql-formatter.skill -d ~/.claude/commands/sql-formatter/
3
Claude Code에서 슬래시 커맨드로 사용합니다.
/sql-formatter
1
Agent Skills 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/63d1757e-3dbf-4da8-8152-8d45dd6f62cd/download?platform=ClaudeCodeAgentSkill
2
Claude Code skills 디렉터리에 압축을 해제합니다.
unzip sql-formatter-agent-skill-*.skill -d ~/.claude/skills/sql-formatter/
3
Claude Code를 재시작하면 세션 시작 시 자동으로 로드됩니다. 슬래시 커맨드 없이 자연어로 사용 가능합니다.
1
Cursor 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/63d1757e-3dbf-4da8-8152-8d45dd6f62cd/download?platform=Cursor
2
압축 해제 후 영구 위치에 저장합니다.
unzip sql-formatter-cursor-*.skill -d ~/.cursor/skills/sql-formatter/
3
.cursor/mcp.json에 MCP 서버 설정을 추가하고 Cursor를 재시작합니다.
cat ~/.cursor/skills/sql-formatter/cursor_mcp_config.json
1
Gemini CLI 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/63d1757e-3dbf-4da8-8152-8d45dd6f62cd/download?platform=GeminiCLI
2
압축 해제 후 영구 위치에 저장합니다.
unzip sql-formatter-geminicli-*.skill -d ~/.gemini/skills/sql-formatter/
3
~/.gemini/settings.json에 MCP 서버 설정을 추가하고 Gemini CLI를 재시작합니다.
cat ~/.gemini/skills/sql-formatter/gemini_settings_snippet.json
1
Codex CLI 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/63d1757e-3dbf-4da8-8152-8d45dd6f62cd/download?platform=CodexCLI
2
압축 해제 후 영구 위치에 저장합니다.
unzip sql-formatter-codexcli-*.skill -d ~/.codex/skills/sql-formatter/
3
~/.codex/config.toml에 MCP 서버 설정을 추가하고 Codex CLI를 재시작합니다.
cat ~/.codex/skills/sql-formatter/codex_config_snippet.toml
1
REST API로 스킬 패키지를 다운로드합니다.
GET https://aiskillstore.io/v1/skills/63d1757e-3dbf-4da8-8152-8d45dd6f62cd/download
2
에이전트 플랫폼의 skills 디렉터리에 배치합니다.
cp sql-formatter.skill ./skills/
3
설치 가이드 API로 플랫폼별 상세 정보를 조회합니다.
GET https://aiskillstore.io/v1/skills/63d1757e-3dbf-4da8-8152-8d45dd6f62cd/install-guide?platform=CustomAgent

보안 검증 보고서

검증 결과 APPROVED

검사 결과: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)"]

✅ 보안 위험 항목이 발견되지 않았습니다.

AI 검수 단계

검수 주체 gemini 위험도 🟢 낮음 검수 요약 SQL 포맷팅 및 감사 스킬로, 선언된 권한을 준수하며 악의적인 활동 징후가 없습니다.
판단 근거

제공된 스킬 메타데이터와 코드 스니펫, 정적 분석 결과를 종합적으로 검토했습니다. 1. **권한 일치 여부:** 스킬 메타데이터에 `network: false`, `filesystem: false`, `subprocess: false`로 선언되어 있으며, 제공된 `main.py` 코드 스니펫에서는 이러한 권한을 사용하는 어떠한 코드(예: `import socket`, `import os`, `import subprocess` 등)도 발견되지 않았습니다. `sys.stdin`, `sys.stdout`을 `io.TextIOWrapper`로 재설정하는 부분은 `stdin_stdout` 호출 패턴에 따른 표준 입출력 처리이며, 파일 시스템 접근이나 네트워크 통신으로 간주되지 않습니다. 정적 분석 결과에서도 `red_flags_found` 및 `forbidden_exec_files_found`가 비어 있어 선언된 권한과 실제 코드가 일치함을 확인했습니다. 2. **악의적 목적 코드:** 코드 스니펫은 SQL 키워드 및 방언 감지 신호를 정의하는 등 스킬의 기능과 일치하는 내용을 담고 있습니다. 데이터 탈취, 시스템 파괴, 난독화 등의 악의적인 목적을 가진 코드는 발견되지 않았습니다. 정적 분석 결과 `obfuscation_warnings`도 비어 있습니다. 3. **선언되지 않은 외부 통신:** `permissions.network: false`로 명시되어 있으며, 코드 스니펫에서 외부 통신을 시도하는 어떠한 코드도 발견되지 않았습니다. 정적 분석 결과도 이를 뒷받침합니다. 4. **사용자 데이터 무단 수집/전송:** 스킬은 입력으로 받은 SQL 문자열을 처리하고 결과를 반환하는 것이 주 목적입니다. 네트워크 및 파일 시스템 접근 권한이 없으므로 사용자 데이터를 무단으로 수집하거나 외부로 전송할 수 있는 메커니즘이 없습니다. 5. **코드 품질 및 목적 일치:** 스킬의 설명, 입력/출력 스키마, 예시가 매우 상세하고 명확하게 정의되어 있습니다. 'Zero external dependencies'라는 설명과 같이 표준 라이브러리만을 사용하는 것으로 보이며, 이는 스킬의 안정성과 보안성을 높이는 요소입니다. 코드 스니펫은 스킬의 핵심 로직을 위한 상수 정의 및 I/O 설정으로, 스킬의 목적과 일치하는 양호한 품질을 보여줍니다. 종합적으로 판단할 때, 이 스킬은 안전하며 AI 에이전트 스킬 스토어에 공개하기에 적합하다고 판단됩니다.

버전 히스토리

버전 USK v3 검증 상태 패키지 날짜 다운로드 변경사항
v1.0.0 approved 2026-05-11 ⬇ 0

사용 예시 (Examples) 8 개

이 스킬의 대표적인 입출력 예시입니다. 에이전트는 이 예시를 보고 스킬 호출 방법과 결과 형태를 이해할 수 있습니다.

SELECT 단순 포맷 / Simple SELECT format
# format# select# basic

단순 SELECT 문을 정렬된 형태로 포맷팅합니다.

📥 입력
{
  "action": "format",
  "dialect": "auto",
  "sql": "select id,name,email from users where status=\u0027active\u0027 and created_at\u003e\u00272024-01-01\u0027 order by name"
}
📤 출력
{
  "action": "format",
  "dialect": "sqlite",
  "formatted": "SELECT\n  id,\n  name,\n  email\nFROM users\nWHERE\n  status = \u0027active\u0027\n  AND created_at \u003e \u00272024-01-01\u0027\nORDER BY name",
  "meta": {
    "keywords_uppercased": true,
    "lines": 7
  }
}
복잡한 JOIN 포맷 / Complex JOIN format
# format# join# complex

다중 JOIN 과 서브쿼리를 포함한 복잡한 SQL 을 정렬합니다.

📥 입력
{
  "action": "format",
  "dialect": "postgresql",
  "sql": "select u.id,u.name,o.amount,p.name as product from users u left join orders o on u.id=o.user_id inner join products p on o.product_id=p.id where u.status=\u0027active\u0027 and o.amount\u003e100"
}
📤 출력
{
  "action": "format",
  "dialect": "postgresql",
  "formatted": "SELECT\n  u.id,\n  u.name,\n  o.amount,\n  p.name AS product\nFROM users u\nLEFT JOIN orders o\n  ON u.id = o.user_id\nINNER JOIN products p\n  ON o.product_id = p.id\nWHERE\n  u.status = \u0027active\u0027\n  AND o.amount \u003e 100",
  "meta": {
    "lines": 13
  }
}
방언 감지 (PostgreSQL JSON 연산자) / Dialect detection PostgreSQL
# detect_dialect# postgresql# json_operator

PostgreSQL 전용 ->> 연산자로 방언을 자동 감지합니다.

📥 입력
{
  "action": "detect_dialect",
  "sql": "SELECT data-\u003e\u003e\u0027name\u0027 AS name, data-\u003e\u003e\u0027email\u0027 FROM users WHERE data-\u003e\u003e\u0027status\u0027 = \u0027active\u0027"
}
📤 출력
{
  "action": "detect_dialect",
  "dialect": "postgresql",
  "dialect_confidence": 0.95,
  "dialect_signals": [
    "JSON operator -\u003e\u003e",
    "JSON operator -\u003e"
  ],
  "meta": {
    "sql_length": 88
  }
}
한국어 식별자 보존 / Korean identifier preservation
# format# korean# identifiers

한국어 컬럼/테이블명이 포맷팅 후에도 그대로 보존됩니다.

📥 입력
{
  "action": "format",
  "dialect": "auto",
  "lowercase_identifiers": true,
  "sql": "select \uc0ac\uc6a9\uc790.id,\uc0ac\uc6a9\uc790.\uc774\ub984,\uc8fc\ubb38.\uae08\uc561 from \uc0ac\uc6a9\uc790 inner join \uc8fc\ubb38 on \uc0ac\uc6a9\uc790.id=\uc8fc\ubb38.\uc0ac\uc6a9\uc790_id where \uc0ac\uc6a9\uc790.\uc0c1\ud0dc=\u0027\ud65c\uc131\u0027"
}
📤 출력
{
  "action": "format",
  "dialect": "sqlite",
  "formatted": "SELECT\n  \uc0ac\uc6a9\uc790.id,\n  \uc0ac\uc6a9\uc790.\uc774\ub984,\n  \uc8fc\ubb38.\uae08\uc561\nFROM \uc0ac\uc6a9\uc790\nINNER JOIN \uc8fc\ubb38\n  ON \uc0ac\uc6a9\uc790.id = \uc8fc\ubb38.\uc0ac\uc6a9\uc790_id\nWHERE\n  \uc0ac\uc6a9\uc790.\uc0c1\ud0dc = \u0027\ud65c\uc131\u0027",
  "meta": {
    "korean_identifiers_preserved": true,
    "lines": 9
  }
}
SQL injection 감지 / SQL injection pattern audit
# audit# injection# security

문자열 직접 concatenation 등 SQL injection 위험 패턴을 감지합니다.

📥 입력
{
  "action": "audit",
  "sql": "SELECT * FROM users WHERE name = \u0027\u0027 + user_input + \u0027\u0027 AND status = \u0027active\u0027"
}
📤 출력
{
  "action": "audit",
  "findings": [
    {
      "fix_hint": {
        "action": "Replace string concatenation with parameterized queries / prepared statements",
        "doc_ref": "https://aiskillstore.io/skills/sql-formatter#injection",
        "example": "SELECT * FROM users WHERE name = ? AND status = ?",
        "summary": "SQL injection \uc704\ud5d8 \u2014 prepared statement \uc0ac\uc6a9 \uad8c\uc7a5 / Use prepared statements"
      },
      "line": 1,
      "message": "Direct string concatenation in SQL \u2014 SQL injection risk detected",
      "rule": "SQL_INJECTION_CONCAT",
      "severity": "error"
    }
  ],
  "meta": {
    "finding_count": 1,
    "has_errors": true
  }
}
comma-first 스타일 / Comma-first style
# format# comma_first# style

SELECT 컬럼 목록을 comma-first 스타일로 포맷팅합니다.

📥 입력
{
  "action": "format",
  "comma_first": true,
  "sql": "select id, name, email, status, created_at from users"
}
📤 출력
{
  "action": "format",
  "dialect": "sqlite",
  "formatted": "SELECT\n    id\n  , name\n  , email\n  , status\n  , created_at\nFROM users",
  "meta": {
    "lines": 7,
    "style": "comma_first"
  }
}
정규화 (키워드 대문자 + 식별자 소문자) / Normalize SQL
# normalize# keywords# identifiers

키워드는 대문자, 식별자는 소문자로 정규화합니다.

📥 입력
{
  "action": "normalize",
  "sql": "SELECT Id, NAME, EMAIL From USERS Where STATUS = \u0027active\u0027"
}
📤 출력
{
  "action": "normalize",
  "meta": {
    "identifiers_lowercased": true,
    "keywords_uppercased": true
  },
  "normalized": "SELECT id, name, email FROM users WHERE status = \u0027active\u0027"
}
MySQL 방언 감지 / MySQL dialect detection
# detect_dialect# mysql# backtick

MySQL 전용 LIMIT/OFFSET 구문으로 방언을 감지합니다.

📥 입력
{
  "action": "detect_dialect",
  "sql": "SELECT `id`, `name` FROM `users` WHERE `status` = 1 LIMIT 10 OFFSET 20"
}
📤 출력
{
  "action": "detect_dialect",
  "dialect": "mysql",
  "dialect_confidence": 0.9,
  "dialect_signals": [
    "backtick identifiers",
    "LIMIT/OFFSET syntax"
  ],
  "meta": {
    "sql_length": 67
  }
}

모든 예시는 에이전트 API로도 조회 가능: /v1/agent/skills/63d1757e-3dbf-4da8-8152-8d45dd6f62cd/schema

리뷰 & 평점

아직 리뷰가 없습니다. 첫 번째 리뷰를 남겨보세요!

✍️ 리뷰 작성