← 스킬 목록으로 돌아가기

sqlite-query-toolkit

v1.0.0 approved Data Processing ⬇ 2 ↑ 1/7일 3일 전
USK v3 ✅ Verified
⬇ 다운로드
설치 가이드↓
🤖 에이전트용 설치 명령 (curl / MCP / Claude Desktop)
▸ curl 한 줄 다운로드
curl -L -o sqlite-query-toolkit.skill   "https://aiskillstore.io/v1/agent/skills/c5991b25-1727-4d47-bd71-0a3ec78ba489/download?platform=ClaudeCode"
▸ MCP 도구 호출 (Skill Store MCP 등록 시)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "c5991b25-1727-4d47-bd71-0a3ec78ba489",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP 설정 (1회)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 에이전트용 전체 API 가이드: /llms.txt  ·  MCP server card

Open a SQLite .db file and run schema inspection, safe SELECT execution, EXPLAIN QUERY PLAN analysis, and index/stats queries. Zero external dependencies (Python stdlib sqlite3 only).

# sqlite # database # schema # query # inspect # explain

기본 정보

소유자 👤 aiskillstore-team 카테고리 Data Processing 등록일 2026-06-12 최종 업데이트 2026-06-12 최신 버전 1.0.0 패키지 날짜 2026-06-12 검증 상태 approved 다운로드 수 2회 체크섬 (SHA256) e4c9a52208aa9e0285580d24d1d4f691e7c48c9f6e41615c00599ac5efa52964

⚡ AGENT INFO USK v3

Capabilities
sqlite_query schema_inspection query_explain database_introspection data_validation
Permissions
✗ network
✓ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/c5991b25-1727-4d47-bd71-0a3ec78ba489/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/c5991b25-1727-4d47-bd71-0a3ec78ba489/download?platform=OpenClaw GET /v1/agent/skills/c5991b25-1727-4d47-bd71-0a3ec78ba489/download?platform=ClaudeCode GET /v1/agent/skills/c5991b25-1727-4d47-bd71-0a3ec78ba489/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/c5991b25-1727-4d47-bd71-0a3ec78ba489/download?platform=Cursor GET /v1/agent/skills/c5991b25-1727-4d47-bd71-0a3ec78ba489/download?platform=GeminiCLI GET /v1/agent/skills/c5991b25-1727-4d47-bd71-0a3ec78ba489/download?platform=CodexCLI GET /v1/agent/skills/c5991b25-1727-4d47-bd71-0a3ec78ba489/download?platform=CustomAgent

설치 방법

호환 플랫폼: any

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

보안 검증 보고서

검증 결과 CAUTION

검사 결과: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", 'USK v3 경고: 이 스킬은 자동 변환 조건을 충족하지 않아 manual_install로 처리됩니다']

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

AI 검수 단계

검수 주체 gemini 위험도 🟢 낮음 검수 요약 SQLite 데이터베이스에 대한 안전한 읽기 전용 접근 및 스키마 검사를 제공하는 스킬입니다.
판단 근거

제공된 스킬 메타데이터와 코드(main.py)를 분석한 결과, 이 스킬은 보안을 매우 중요하게 고려하여 설계되었습니다. 주요 판단 근거는 다음과 같습니다: 1. **권한 일치**: 스킬 메타데이터에 선언된 `permissions` (network: false, filesystem: true, subprocess: false)와 코드의 실제 동작이 완벽하게 일치합니다. `os` 모듈을 통한 파일 시스템 접근과 `sqlite3` 모듈을 통한 DB 파일 접근은 `filesystem: true`에 부합하며, 네트워크 통신이나 외부 프로세스 실행 코드는 발견되지 않았습니다. 2. **악의적 코드 부재**: 데이터 탈취, 시스템 파괴, 난독화 등의 악의적인 목적을 가진 코드는 발견되지 않았습니다. 특히, `_validate_sql_dml` 함수를 통해 `SELECT`, `WITH`, `EXPLAIN` 문만 허용하고 DML(Data Manipulation Language)을 명시적으로 차단하며, `_open_readonly` 함수에서 `mode=ro` URI를 사용하여 데이터베이스를 읽기 전용으로만 연결하는 강력한 보안 조치가 구현되어 있습니다. 3. **외부 통신 없음**: `permissions.network`가 `false`로 선언되었고, 코드에서도 `socket`, `requests` 등 네트워크 관련 모듈의 사용이 전혀 없어 선언되지 않은 외부 통신은 없습니다. 4. **사용자 데이터 무단 수집/전송 없음**: 스킬은 사용자로부터 `db_path` 및 `sql` 쿼리를 입력받아 처리하고 결과를 반환할 뿐, 이 데이터를 무단으로 수집하거나 외부로 전송하는 메커니즘이 없습니다. 5. **코드 품질 및 목적 일치**: 코드는 명확하고 가독성이 높으며, 스킬의 목적(SQLite DB 검사 및 안전한 쿼리 실행)에 완벽하게 부합합니다. `SQLITE_MAGIC` 헤더 검사를 통해 유효한 SQLite 파일만 처리하도록 하는 등 견고한 입력 유효성 검사 로직이 포함되어 있습니다. Python 표준 라이브러리인 `sqlite3`만을 사용하여 외부 의존성이 없다는 점도 긍정적입니다. 정적 분석 결과에서 'caution' 상태가 표시되었으나, 구체적인 'red_flags_found'나 'obfuscation_warnings'가 없어 이 스킬의 안전성에 심각한 위협으로 판단하지 않습니다. 전반적으로 이 스킬은 보안 모범 사례를 잘 따르고 있으며, AI 에이전트 스킬 스토어에 업로드하기에 안전하다고 판단됩니다.

버전 히스토리

버전 USK v3 검증 상태 패키지 날짜 다운로드 변경사항
v1.0.0 approved 2026-06-12 ⬇ 2 1.0.0: Initial release — list_tables, describe_table, query, explain, indexes, stats with read-only SQLite access
v1.0.0 approved 2026-06-12 ⬇ 0 1.0.0: Initial release — list_tables, describe_table, query, explain, indexes, stats with read-only SQLite access

사용 예시 (Examples) 9 개

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

list_tables — 전체 테이블·뷰·트리거 카운트
# basic# discovery

DB 파일의 테이블 목록과 뷰, 트리거 수를 조회한다. 에이전트가 DB 구조 파악을 시작할 때 첫 번째로 호출하는 action.

📥 입력
{
  "action": "list_tables",
  "db_path": "/data/shop.db"
}
📤 출력
{
  "action": "list_tables",
  "db_path": "/data/shop.db",
  "tables": [
    "users",
    "orders",
    "products"
  ],
  "trigger_count": 2,
  "view_count": 1
}
describe_table — users 테이블 컬럼·외래키·행 수
# schema# introspection

특정 테이블의 컬럼 정의, 외래키 제약, 현재 행 수를 반환한다. ERD 없이도 스키마를 이해할 수 있다.

📥 입력
{
  "action": "describe_table",
  "db_path": "/data/shop.db",
  "table": "users"
}
📤 출력
{
  "action": "describe_table",
  "columns": [
    {
      "dflt_value": null,
      "name": "id",
      "notnull": 0,
      "pk": 1,
      "type": "INTEGER"
    },
    {
      "dflt_value": null,
      "name": "email",
      "notnull": 1,
      "pk": 0,
      "type": "TEXT"
    },
    {
      "dflt_value": "1",
      "name": "active",
      "notnull": 0,
      "pk": 0,
      "type": "INTEGER"
    }
  ],
  "db_path": "/data/shop.db",
  "foreign_keys": [],
  "row_count": 4820,
  "table": "users"
}
query — 파라미터 바인딩으로 안전한 SELECT 실행
# query# parameterized# security

parameterized query를 이용해 SQL injection 없이 조건부 SELECT를 실행한다. params 배열을 ? 플레이스홀더와 순서대로 바인딩한다.

📥 입력
{
  "action": "query",
  "db_path": "/data/shop.db",
  "limit": 10,
  "params": [
    1
  ],
  "sql": "SELECT id, email FROM users WHERE active = ? LIMIT 5"
}
📤 출력
{
  "action": "query",
  "columns": [
    "id",
    "email"
  ],
  "db_path": "/data/shop.db",
  "row_count": 2,
  "rows": [
    {
      "email": "alice@example.com",
      "id": 1
    },
    {
      "email": "bob@example.com",
      "id": 3
    }
  ],
  "truncated": false
}
explain — 쿼리 실행 계획 분석
# explain# performance# query-plan

EXPLAIN QUERY PLAN으로 인덱스 사용 여부·풀스캔 여부를 확인한다. 슬로우 쿼리 원인 파악에 활용한다.

📥 입력
{
  "action": "explain",
  "db_path": "/data/shop.db",
  "sql": "SELECT id, email FROM users WHERE active = 1"
}
📤 출력
{
  "action": "explain",
  "db_path": "/data/shop.db",
  "plan": [
    {
      "detail": "SCAN TABLE users",
      "id": 0,
      "parent": 0
    },
    {
      "detail": "USE TEMP B-TREE FOR ORDER BY",
      "id": 1,
      "parent": 0
    }
  ],
  "sql": "SELECT id, email FROM users WHERE active = 1"
}
indexes — orders 테이블 인덱스 목록
# indexes# schema

테이블에 정의된 모든 인덱스와 유니크 여부, 구성 컬럼을 반환한다. 인덱스 커버리지 확인에 사용한다.

📥 입력
{
  "action": "indexes",
  "db_path": "/data/shop.db",
  "table": "orders"
}
📤 출력
{
  "action": "indexes",
  "db_path": "/data/shop.db",
  "indexes": [
    {
      "columns": [
        "user_id"
      ],
      "name": "idx_orders_user_id",
      "unique": 0
    },
    {
      "columns": [
        "created_at"
      ],
      "name": "idx_orders_created_at",
      "unique": 0
    }
  ],
  "table": "orders"
}
stats — DB 전체 메타정보 조회
# stats# metadata

파일 크기, 페이지 크기, 전체 테이블 수, 총 행 수, SQLite 버전을 한 번에 조회한다. DB 규모 파악에 유용.

📥 입력
{
  "action": "stats",
  "db_path": "/data/shop.db"
}
📤 출력
{
  "action": "stats",
  "db_path": "/data/shop.db",
  "file_size_bytes": 2097152,
  "page_size": 4096,
  "sqlite_version": "3.42.0",
  "table_count": 3,
  "total_rows": 12450
}
DML 시도 → DML_NOT_ALLOWED 에러
# error# security

SELECT/WITH/EXPLAIN 외의 SQL을 실행하려 하면 DML_NOT_ALLOWED 에러를 반환한다. 에이전트가 실수로 데이터를 변경하는 것을 방지한다.

📥 입력
{
  "action": "query",
  "db_path": "/data/shop.db",
  "sql": "UPDATE users SET active = 0 WHERE id = 1"
}
📤 출력
{
  "error": {
    "code": "DML_NOT_ALLOWED",
    "message": "Only SELECT / WITH / EXPLAIN statements are allowed. Received: UPDATE"
  }
}
유효하지 않은 SQLite 파일 → INVALID_SQLITE_FILE 에러
# error# validation

magic header가 없는 파일(텍스트·이미지 등)을 db_path로 넘기면 INVALID_SQLITE_FILE을 반환한다.

📥 입력
{
  "action": "list_tables",
  "db_path": "/tmp/not_a_db.txt"
}
📤 출력
{
  "error": {
    "code": "INVALID_SQLITE_FILE",
    "message": "File does not have a valid SQLite magic header: /tmp/not_a_db.txt"
  }
}
존재하지 않는 테이블 → TABLE_NOT_FOUND 에러
# error# validation

describe_table 또는 indexes 실행 시 테이블명이 없으면 TABLE_NOT_FOUND를 반환한다.

📥 입력
{
  "action": "describe_table",
  "db_path": "/data/shop.db",
  "table": "nonexistent_table"
}
📤 출력
{
  "error": {
    "code": "TABLE_NOT_FOUND",
    "message": "Table \u0027nonexistent_table\u0027 not found in /data/shop.db"
  }
}

모든 예시는 에이전트 API로도 조회 가능: /v1/agent/skills/c5991b25-1727-4d47-bd71-0a3ec78ba489/schema

리뷰 & 평점

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

✍️ 리뷰 작성