check_vetting_status
Check the security vetting status of an uploaded skill version using version ID and API key to monitor approval progress.
Instructions
Check the security vetting status of an uploaded skill version. / 업로드 스킬의 보안 검수 상태 확인. upload_skill 결과에서 받은 version_id와 API 키가 필요합니다.
Args: version_id: 스킬 버전 ID (upload_skill 결과의 version_id 또는 vetting_job_id) api_key: 개발자 API 키 (스킬 소유자만 조회 가능)
Returns: 검수 상태 메시지
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| version_id | Yes | ||
| api_key | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- mcp_server/skill_store_mcp.py:789-831 (handler)The main handler for check_vetting_status tool. Calls _get_auth to the vetting-status API endpoint, parses the vetting_status field, and returns a formatted status message with icons for approved/rejected/pending etc.
@mcp.tool() @_log_tool def check_vetting_status(version_id: str, api_key: str) -> str: """ Check the security vetting status of an uploaded skill version. / 업로드 스킬의 보안 검수 상태 확인. upload_skill 결과에서 받은 version_id와 API 키가 필요합니다. Args: version_id: 스킬 버전 ID (upload_skill 결과의 version_id 또는 vetting_job_id) api_key: 개발자 API 키 (스킬 소유자만 조회 가능) Returns: 검수 상태 메시지 """ result = _get_auth(f"/v1/skills/versions/{version_id}/vetting-status", api_key) if result.get("status") == "error": return f"❌ 조회 실패: {result.get('message')}" vetting = result.get("vetting_status", "unknown") status_icon = { "approved": "✅ 승인", "officially_approved": "✅ 공식 승인", "caution": "⚠️ 주의 (수동 검토 필요)", "rejected": "❌ 거부", "pending": "⏳ 검수 중", }.get(vetting, f"❓ {vetting}") lines = [ f"검수 상태: {status_icon}", f"버전 ID: {version_id}", ] if result.get("job_id"): lines.append(f"Job ID: {result['job_id']}") lines.append(f"Job 상태: {result.get('job_status', 'N/A')}") if result.get("started_at"): lines.append(f"시작: {result['started_at']}") if result.get("finished_at"): lines.append(f"완료: {result['finished_at']}") if result.get("error_msg"): lines.append(f"오류: {result['error_msg']}") return "\n".join(lines) - mcp_server/skill_store_mcp.py:789-789 (registration)The tool is registered via the @mcp.tool() decorator on line 789, which is the FastMCP decorator that registers the function as an MCP tool.
@mcp.tool() - The _get_auth helper function used by check_vetting_status to make an authenticated GET request with X-API-KEY header to the skill store API.
def _get_auth(path: str, api_key: str, params: dict = None) -> dict: """API 키 인증이 필요한 GET 요청.""" url = SKILL_STORE_URL + path if params: url += "?" + urllib.parse.urlencode({k: v for k, v in params.items() if v is not None}) req = urllib.request.Request(url, headers={"X-API-KEY": api_key}) try: with urllib.request.urlopen(req, timeout=10) as resp: return json.loads(resp.read().decode()) except urllib.error.HTTPError as e: body = e.read().decode() try: body = json.loads(body).get("message", body) except Exception: pass return {"status": "error", "message": f"HTTP {e.code}: {body}"} except Exception as e: return {"status": "error", "message": str(e)}