curl -L -o xlsx-spreadsheet-toolkit.skill "https://aiskillstore.io/v1/agent/skills/54397bdc-3434-40b6-9120-c0125b3d093c/download?platform=ClaudeCode"
{
"tool": "download_skill",
"arguments": {
"skill_id": "54397bdc-3434-40b6-9120-c0125b3d093c",
"platform": "ClaudeCode"
}
}
{
"mcpServers": {
"skill-store": {
"url": "https://aiskillstore.io/mcp/"
}
}
}
Excel(.xlsx) 읽기·쓰기·분석 — 엑셀 처리, xlsx 읽기, spreadsheet 데이터 추출. Offline, base64 I/O, no filesystem mount needed.
Compatible Platforms any
🚨 Security risks detected:
Findings: ["메타데이터 경고: 권장 필드 없음: 'tags' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)", "USK v3 경고: interface.runtime 'python3.11'이 권장 값이 아닙니다 (권장: ['python3', 'node', 'bash', 'binary', 'any'])"]
AI Review Stage
Issues Found
제출된 스킬 패키지 'xlsx-spreadsheet-toolkit'에 대한 보안 검토 결과, 다음과 같은 판단 근거로 'approved' 판정을 내립니다. 1. **권한 일치 여부:** 스킬 메타데이터에 `network: false`, `filesystem: false`, `subprocess: false`로 명확히 선언되어 있습니다. 코드(`main.py`, `lib/xlsx_ops.py`)를 분석한 결과, `sys.stdin`과 `sys.stdout`을 통한 표준 입출력과 `io.BytesIO`를 이용한 인메모리 데이터 처리만을 수행하며, 네트워크 통신, 파일 시스템 접근, 외부 프로세스 실행과 관련된 어떠한 코드도 발견되지 않았습니다. 선언된 권한과 실제 코드가 완벽하게 일치합니다. 2. **악의적 코드 여부:** 데이터 탈취, 시스템 파괴, 코드 난독화 등 악의적인 목적의 코드는 발견되지 않았습니다. `openpyxl` 라이브러리는 Excel 파일 데이터를 처리하는 데 사용되며, 시스템에 영향을 미칠 수 있는 기능은 포함하고 있지 않습니다. 3. **외부 통신 여부:** 코드 내에서 `requests`, `socket`, `urllib` 등 외부 네트워크 통신을 위한 모듈이나 함수 호출이 전혀 없습니다. 선언되지 않은 외부 통신은 존재하지 않습니다. 4. **사용자 데이터 처리:** 스킬은 입력으로 받은 base64 인코딩된 Excel 파일 데이터를 메모리에서 처리하고, 그 결과를 다시 base64 인코딩하여 표준 출력으로 반환합니다. 이 과정에서 사용자 데이터가 무단으로 수집되거나 외부로 전송되는 메커니즘은 없습니다. 5. **코드 품질 및 목적 일치:** 코드는 `openpyxl` 라이브러리를 활용하여 Excel 파일 읽기, 쓰기, 필터링, 셀 값 추출 등 스킬의 목적에 부합하는 기능을 안정적으로 구현하고 있습니다. `main.py`는 액션 디스패치 역할을, `lib/xlsx_ops.py`는 핵심 Excel 처리 로직을 담당하여 모듈화가 잘 되어 있습니다. JSON 파싱 및 액션 처리 과정에서 기본적인 오류 처리도 포함되어 있습니다. **정적 분석 결과에 대한 보충 설명:** 정적 분석에서 `lib/xlsx_ops.py` 파일의 `base64.b64decode` 사용이 'red_flags_found'로 감지되었습니다. `base64.b64decode`는 잠재적으로 악의적인 페이로드를 숨기는 데 사용될 수 있어 일반적으로 주의가 필요한 함수입니다. 그러나 이 스킬의 경우, 메타데이터 설명에 'base64 I/O'가 명시되어 있으며, `_decode_file` 함수는 `file_base64` 입력 파라미터(Excel 파일 내용)를 디코딩하는 데 사용됩니다. 이는 스킬의 핵심 기능이며, 디코딩된 데이터는 Excel 파일로 해석되어 `openpyxl`에 의해 처리될 뿐, 실행 가능한 코드로 해석되지 않습니다. 따라서 이 경우는 오탐(false positive)으로 판단됩니다.
Representative input/output examples for this skill. Agents can use these to understand how to invoke the skill and what output to expect.
Excel 파일의 Sheet1 데이터를 JSON rows로 추출
{
"action": "read_sheet",
"file_base64": "\u003cbase64-encoded xlsx file, ~2KB\u003e",
"headers": true,
"sheet_name": "Sheet1"
}
{
"action": "read_sheet",
"column_count": 3,
"row_count": 3,
"rows": [
{
"name": "Alice",
"region": "Seoul",
"sales": 1500
},
{
"name": "Bob",
"region": "Busan",
"sales": 800
},
{
"name": "Carol",
"region": "Seoul",
"sales": 2100
}
],
"sheet_name": "Sheet1",
"warnings": []
}
sales 컬럼 값이 1000 이상인 행만 추출
{
"action": "filter_rows",
"file_base64": "\u003cbase64-encoded xlsx file\u003e",
"filter_column": "sales",
"filter_op": "gte",
"filter_value": "1000",
"sheet_name": "Sheet1"
}
{
"action": "filter_rows",
"column_count": 3,
"row_count": 2,
"rows": [
{
"name": "Alice",
"region": "Seoul",
"sales": 1500
},
{
"name": "Carol",
"region": "Seoul",
"sales": 2100
}
],
"sheet_name": "Sheet1",
"warnings": []
}
rows 배열을 받아 새 Excel 파일 생성 (base64 반환)
{
"action": "write_sheet",
"rows": [
{
"price": 500,
"product": "Widget",
"qty": 10
},
{
"price": 1200,
"product": "Gadget",
"qty": 5
}
],
"sheet_name": "Report"
}
{
"action": "write_sheet",
"column_count": 3,
"file_base64": "\u003c256\uc790 \ub0b4\uc678 base64 string \u2014 .xlsx binary\u003e",
"row_count": 2,
"sheet_name": "Report",
"warnings": []
}
xlsx에 포함된 모든 시트 이름, 행수, 열수 반환
{
"action": "list_sheets",
"file_base64": "\u003cbase64-encoded multi-sheet xlsx\u003e"
}
{
"action": "list_sheets",
"sheets": [
{
"column_count": 8,
"name": "Q1",
"row_count": 50
},
{
"column_count": 8,
"name": "Q2",
"row_count": 47
},
{
"column_count": 4,
"name": "Summary",
"row_count": 5
}
],
"warnings": []
}
C5 셀의 값과 데이터 타입 반환
{
"action": "get_cell",
"cell_address": "C5",
"file_base64": "\u003cbase64-encoded xlsx\u003e",
"sheet_name": "Sheet1"
}
{
"action": "get_cell",
"cell_type": "date",
"cell_value": "2026-03-15",
"warnings": []
}
All examples are also available via the agent API:
/v1/agent/skills/54397bdc-3434-40b6-9120-c0125b3d093c/schema
No reviews yet. Be the first to leave one!