← 스킬 목록으로 돌아가기

http-request-validator

v1.0.0 approved Development ⬇ 3 ↑ 1/7일 4일 전
✅ Verified
⬇ 다운로드 설치 가이드↓
🤖 에이전트용 설치 명령 (curl / MCP / Claude Desktop)
▸ curl 한 줄 다운로드
curl -L -o http-request-validator.skill   "https://aiskillstore.io/v1/agent/skills/82697ffe-f69a-44a9-ace7-27a292de906d/download?platform=ClaudeCode"
▸ MCP 도구 호출 (Skill Store MCP 등록 시)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "82697ffe-f69a-44a9-ace7-27a292de906d",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP 설정 (1회)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 에이전트용 전체 API 가이드: /llms.txt  ·  MCP server card

Validates HTTP request objects (method, URL, headers, body) against RFC standards and OpenAPI specs, returning structured error lists. Prevents request-generation bugs before execution in agent API automation loops.

# http # validation # openapi # authentication # api

기본 정보

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

설치 방법

호환 플랫폼: any

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

보안 검증 보고서

검증 결과 CAUTION

🚨 보안 위험 감지:

  • main.py: base64.b64decode(
  • tests/_test_local.py: subprocess.run(

검사 결과: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)", '정보: spec: usk/1.0 미선언 — v2 패키지로 처리됩니다. 자동 변환 및 에이전트 검색 기능을 사용하려면 USK v3로 업그레이드하세요.']

AI 검수 단계

검수 주체 gemini 위험도 🟢 낮음 검수 요약 HTTP 요청 객체의 유효성을 검사하는 스킬로, 선언된 권한을 준수하며 악의적인 코드가 없습니다.
판단 근거

1. **권한 일치:** 스킬 메타데이터에 'network: false', 'filesystem: false', 'subprocess: false'로 선언되어 있으며, 'main.py' 코드는 이 권한을 엄격히 준수합니다. 'urllib.parse'는 URL 파싱에만 사용되며, 'sys.stdin'/'sys.stdout'은 표준 입출력으로 파일 시스템 접근으로 간주되지 않습니다. 2. **악의적 코드 없음:** 'main.py'는 HTTP 요청 유효성 검사 로직만을 포함하며, 데이터 탈취, 시스템 파괴, 난독화 등의 악의적인 목적의 코드는 발견되지 않았습니다. 'base64.b64decode' 사용은 Basic 및 Bearer JWT 인증 토큰의 형식을 검증하기 위한 정당한 목적입니다. 3. **외부 통신 없음:** 네트워크 관련 모듈(예: 'requests', 'urllib.request', 'socket') 사용이 없어 선언되지 않은 외부 통신은 없습니다. 4. **사용자 데이터 무단 수집/전송 없음:** 입력된 HTTP 요청 데이터를 검증하는 데에만 사용하며, 외부로 데이터를 저장하거나 전송하는 기능이 없습니다. 5. **코드 품질:** 스킬의 목적(HTTP 요청 유효성 검사)에 부합하는 명확하고 잘 구조화된 코드입니다. RFC 표준 및 OpenAPI 스펙에 따른 다양한 유효성 검사 로직이 구현되어 있으며, 테스트 코드도 충실하게 작성되어 있습니다. 정적 분석에서 'main.py'의 'base64.b64decode'는 인증 토큰 유효성 검사를 위한 정당한 사용이며 보안 위험이 없습니다. 'tests/_test_local.py'에서 'subprocess.run'이 발견되었으나, 이는 스킬의 런타임 코드가 아닌 테스트 스크립트이므로 스킬 자체의 보안과는 무관합니다.

버전 히스토리

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

사용 예시 (Examples) 7 개

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

Valid GET request
# happy-path# get

A well-formed GET request with Accept header passes validation

📥 입력
{
  "headers": {
    "Accept": "application/json"
  },
  "method": "GET",
  "url": "https://api.example.com/users/123"
}
📤 출력
{
  "auth_scheme_detected": null,
  "errors": [],
  "is_valid": true,
  "summary": {
    "auth_present": false,
    "error_count": 0,
    "warning_count": 0
  },
  "warnings": []
}
Bearer JWT structure validation failure
# auth# jwt# bearer

An Authorization header with a malformed Bearer token (not 3-part JWT) triggers INVALID_BEARER_FORMAT

📥 입력
{
  "headers": {
    "Authorization": "Bearer notavalidjwt"
  },
  "method": "GET",
  "url": "https://api.example.com/profile"
}
📤 출력
{
  "auth_scheme_detected": "Bearer",
  "errors": [
    {
      "code": "INVALID_BEARER_FORMAT",
      "field": "headers.Authorization",
      "message": "Bearer token must be a JWT with 3 dot-separated base64url-encoded parts (header.payload.signature)"
    }
  ],
  "is_valid": false,
  "summary": {
    "auth_present": true,
    "error_count": 1,
    "warning_count": 0
  },
  "warnings": []
}
Unfilled path parameter detection
# url# path-param

URL containing unreplaced template placeholder triggers UNFILLED_PATH_PARAM

📥 입력
{
  "headers": {
    "Accept": "application/json"
  },
  "method": "GET",
  "url": "https://api.example.com/users/{id}/posts"
}
📤 출력
{
  "auth_scheme_detected": null,
  "errors": [
    {
      "code": "UNFILLED_PATH_PARAM",
      "field": "url",
      "message": "URL contains unfilled path parameter: {id}"
    }
  ],
  "is_valid": false,
  "summary": {
    "auth_present": false,
    "error_count": 1,
    "warning_count": 0
  },
  "warnings": []
}
POST with body missing Content-Type
# post# content-type

A POST request carrying a body but without Content-Type header triggers CONTENT_TYPE_MISMATCH

📥 입력
{
  "body": {
    "item_id": "abc123",
    "quantity": 2
  },
  "method": "POST",
  "url": "https://api.example.com/orders"
}
📤 출력
{
  "auth_scheme_detected": null,
  "errors": [
    {
      "code": "CONTENT_TYPE_MISMATCH",
      "field": "headers.Content-Type",
      "message": "Request has a body but Content-Type header is missing"
    }
  ],
  "is_valid": false,
  "summary": {
    "auth_present": false,
    "error_count": 1,
    "warning_count": 0
  },
  "warnings": []
}
OpenAPI required header validation
# openapi# required-header

Missing X-Tenant-ID required by OpenAPI operation triggers MISSING_REQUIRED

📥 입력
{
  "headers": {
    "Accept": "application/json"
  },
  "method": "GET",
  "openapi_operation": {
    "parameters": [
      {
        "in": "header",
        "name": "X-Tenant-ID",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
    ]
  },
  "url": "https://api.example.com/tenant/data"
}
📤 출력
{
  "auth_scheme_detected": null,
  "errors": [
    {
      "code": "MISSING_REQUIRED",
      "field": "headers.X-Tenant-ID",
      "message": "Required header \u0027X-Tenant-ID\u0027 is missing (required by OpenAPI spec)"
    }
  ],
  "is_valid": false,
  "summary": {
    "auth_present": false,
    "error_count": 1,
    "warning_count": 0
  },
  "warnings": []
}
API Key header auto-detection
# auth# api-key# happy-path

X-API-Key header is automatically detected and reported as ApiKey scheme

📥 입력
{
  "body": {
    "event": "user.created"
  },
  "headers": {
    "Content-Type": "application/json",
    "X-API-Key": "a valid API key string"
  },
  "method": "POST",
  "url": "https://api.example.com/events"
}
📤 출력
{
  "auth_scheme_detected": "ApiKey",
  "errors": [],
  "is_valid": true,
  "summary": {
    "auth_present": true,
    "error_count": 0,
    "warning_count": 0
  },
  "warnings": []
}
Korean language error output
# korean# i18n# invalid-method

output_language=ko returns error messages in Korean

📥 입력
{
  "method": "INVALID_METHOD",
  "output_language": "ko",
  "url": "https://api.example.com/items"
}
📤 출력
{
  "auth_scheme_detected": null,
  "errors": [
    {
      "code": "INVALID_METHOD",
      "field": "method",
      "message": "\ud5c8\uc6a9\ub418\uc9c0 \uc54a\ub294 HTTP \uba54\uc11c\ub4dc\uc785\ub2c8\ub2e4: INVALID_METHOD"
    }
  ],
  "is_valid": false,
  "summary": {
    "auth_present": false,
    "error_count": 1,
    "warning_count": 0
  },
  "warnings": []
}

모든 예시는 에이전트 API로도 조회 가능: /v1/agent/skills/82697ffe-f69a-44a9-ace7-27a292de906d/schema

리뷰 & 평점

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

✍️ 리뷰 작성