curl -L -o url-metadata-extractor.skill "https://aiskillstore.io/v1/agent/skills/6e4ab882-c868-4830-a134-11b308c73f36/download?platform=ClaudeCode"
{
"tool": "download_skill",
"arguments": {
"skill_id": "6e4ab882-c868-4830-a134-11b308c73f36",
"platform": "ClaudeCode"
}
}
{
"mcpServers": {
"skill-store": {
"url": "https://aiskillstore.io/mcp/"
}
}
}
Extract page title, OG tags, description, author, keywords, and canonical URL from any web page as structured JSON.
호환 플랫폼: any
검사 결과: ["USK v3 경고: interface.runtime 'python3.11'이 권장 값이 아닙니다 (권장: ['python3', 'node', 'bash', 'binary', 'any'])"]
✅ 보안 위험 항목이 발견되지 않았습니다.
AI 검수 단계
1. **권한 일치**: 메타데이터에 `network: true` 권한이 선언되었고, 코드에서 `requests` 라이브러리를 사용하여 HTTP 요청을 수행하는 것이 확인되었습니다. 이는 스킬의 핵심 기능(웹 페이지 메타데이터 추출)에 필수적인 권한이며 적절하게 사용됩니다. `filesystem: false` 및 `subprocess: false`로 선언되었으며, 제공된 코드 스니펫에서는 해당 권한을 사용하는 부분이 발견되지 않았습니다. 2. **악의적 목적 코드 없음**: 사용자 입력 `url`에 대해 `http://` 또는 `https://` 스키마를 강제하는 유효성 검사가 포함되어 있어, 잠재적인 로컬 파일 접근(예: `file:///`)이나 기타 비표준 프로토콜을 통한 공격을 방지합니다. 데이터 탈취, 시스템 파괴, 코드 난독화 등의 악의적인 목적은 발견되지 않았습니다. 3. **선언되지 않은 외부 통신 없음**: 선언된 `network` 권한을 통해 사용자 지정 URL로 HTTP 요청을 보내는 것 외에, 선언되지 않은 외부 통신은 확인되지 않았습니다. `User-Agent` 헤더를 통해 스킬의 정체를 명확히 밝히고 있습니다. 4. **사용자 데이터 무단 수집/전송 없음**: 스킬의 목적에 따라 URL 메타데이터를 추출하여 반환할 뿐, 사용자 데이터를 무단으로 수집하거나 외부로 전송하는 행위는 발견되지 않았습니다. 5. **코드 품질**: 입력 유효성 검사, 의존성 확인, 예외 처리 등 전반적인 코드 구조가 스킬의 목적에 부합하며 안전하게 작성되었습니다. `timeout` 값을 60초로 제한하여 서비스 거부 공격 가능성을 줄입니다. 6. **정적 분석 결과**: 정적 분석 결과 `red_flags_found` 및 `obfuscation_warnings`가 비어 있어, 코드 자체에서 심각한 보안 취약점이나 악의적인 패턴은 발견되지 않았습니다. `caution` 상태는 네트워크 접근 스킬에 대한 일반적인 경고이거나 매우 경미한 사항으로 판단됩니다.
이 스킬의 대표적인 입출력 예시입니다. 에이전트는 이 예시를 보고 스킬 호출 방법과 결과 형태를 이해할 수 있습니다.
Extract metadata from a blog post URL
{
"include_keywords": true,
"timeout": 10,
"url": "https://example.com/blog/ai-trends-2026"
}
{
"author": "Jane Doe",
"canonical_url": "https://example.com/blog/ai-trends-2026",
"description": "A comprehensive overview of the top AI trends shaping 2026.",
"keywords": [
"AI",
"machine learning",
"2026",
"trends"
],
"lang": "en",
"og": {
"description": "A comprehensive overview of the top AI trends shaping 2026.",
"image": "https://example.com/images/ai-trends.jpg",
"site_name": "ExampleBlog",
"title": "AI Trends in 2026",
"type": "article"
},
"published_date": "2026-01-15",
"status_code": 200,
"title": "AI Trends in 2026",
"twitter": {
"card": "summary_large_image",
"title": "AI Trends in 2026"
},
"url": "https://example.com/blog/ai-trends-2026"
}
한국어 뉴스 페이지 메타데이터 추출
{
"include_keywords": true,
"timeout": 15,
"url": "https://news.example.kr/article/12345"
}
{
"author": "\ud64d\uae38\ub3d9",
"canonical_url": "https://news.example.kr/article/12345",
"description": "\uc778\uacf5\uc9c0\ub2a5 \uae30\uc220\uc758 \ucd5c\uc2e0 \ub3d9\ud5a5\uacfc \ubbf8\ub798 \uc804\ub9dd\uc744 \ubd84\uc11d\ud569\ub2c8\ub2e4.",
"keywords": [
"AI",
"\uc778\uacf5\uc9c0\ub2a5",
"\uae30\uc220",
"2026"
],
"lang": "ko",
"og": {
"description": "\uc778\uacf5\uc9c0\ub2a5 \uae30\uc220\uc758 \ucd5c\uc2e0 \ub3d9\ud5a5\uacfc \ubbf8\ub798 \uc804\ub9dd\uc744 \ubd84\uc11d\ud569\ub2c8\ub2e4.",
"image": "https://news.example.kr/images/ai-2026.jpg",
"site_name": "ExampleNews Korea",
"title": "2026\ub144 AI \uae30\uc220 \ub3d9\ud5a5 \ubd84\uc11d",
"type": "article"
},
"published_date": "2026-03-10",
"status_code": 200,
"title": "2026\ub144 AI \uae30\uc220 \ub3d9\ud5a5 \ubd84\uc11d",
"twitter": {
"card": "summary",
"title": "2026\ub144 AI \uae30\uc220 \ub3d9\ud5a5 \ubd84\uc11d"
},
"url": "https://news.example.kr/article/12345"
}
HTTP response headers also returned for debugging
{
"include_headers": true,
"include_keywords": false,
"timeout": 10,
"url": "https://github.com/anthropics/anthropic-sdk-python"
}
{
"author": "",
"canonical_url": "https://github.com/anthropics/anthropic-sdk-python",
"description": "Official Python SDK for the Anthropic API",
"headers": {
"content-type": "text/html; charset=utf-8",
"x-frame-options": "deny"
},
"keywords": [],
"lang": "en",
"og": {
"image": "https://opengraph.githubassets.com/abc123",
"site_name": "GitHub",
"title": "anthropics/anthropic-sdk-python",
"type": "object"
},
"published_date": "",
"status_code": 200,
"title": "GitHub - anthropics/anthropic-sdk-python",
"twitter": {
"card": "summary_large_image"
},
"url": "https://github.com/anthropics/anthropic-sdk-python"
}
Timeout error response when server is too slow
{
"timeout": 1,
"url": "https://slow-server.example.com/page"
}
{
"error": {
"code": "TIMEOUT",
"message": "Request timed out after 1 seconds"
},
"status_code": 0,
"url": "https://slow-server.example.com/page"
}
Non-200 HTTP response handled gracefully
{
"timeout": 10,
"url": "https://example.com/nonexistent-page"
}
{
"error": {
"code": "HTTP_ERROR",
"message": "HTTP 404: Not Found"
},
"status_code": 404,
"url": "https://example.com/nonexistent-page"
}
모든 예시는 에이전트 API로도 조회 가능:
/v1/agent/skills/6e4ab882-c868-4830-a134-11b308c73f36/schema
아직 리뷰가 없습니다. 첫 번째 리뷰를 남겨보세요!