curl -L -o openapi-mock-server.skill "https://aiskillstore.io/v1/agent/skills/ea8429fb-0e8b-451b-8b75-8a124147650b/download?platform=ClaudeCode"
{
"tool": "download_skill",
"arguments": {
"skill_id": "ea8429fb-0e8b-451b-8b75-8a124147650b",
"platform": "ClaudeCode"
}
}
{
"mcpServers": {
"skill-store": {
"url": "https://aiskillstore.io/mcp/"
}
}
}
Parse OpenAPI 3.x specs, generate mock responses from schemas, serve mock requests in stdin/stdout mode, and report endpoint coverage — no HTTP server required
Compatible Platforms any
🚨 Security risks detected:
Findings: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)"]
AI Review Stage
스킬 메타데이터에 선언된 네트워크, 파일 시스템, 서브프로세스 접근 권한 없음(`network: false`, `filesystem: false`, `subprocess: false`)을 코드에서 충실히 준수하고 있습니다. `main.py`에서 발견된 `__import__` 플래그는 Python의 모듈 로딩 메커니즘(예: `from lib.parser import ...`)에 의한 것으로, 사용자 입력에 기반한 동적 임포트나 악의적인 코드 실행과는 무관한 정적 임포트입니다. 이는 정적 분석 도구의 오탐으로 판단됩니다. `lib/parser.py`에서 YAML 파싱 시 `yaml.safe_load`를 사용하여 잠재적인 보안 취약점(임의 코드 실행)을 방지하고 있습니다. 스킬은 표준 입출력(`stdin_stdout`)을 통해서만 통신하며, 외부 통신이나 무단 데이터 수집/전송의 징후가 없습니다. 전반적으로 안전하며 스킬의 목적에 부합하는 고품질 코드입니다.
Representative input/output examples for this skill. Agents can use these to understand how to invoke the skill and what output to expect.
Extract all endpoints from an OpenAPI 3.x YAML spec
{
"action": "parse",
"spec": "openapi: \"3.0.0\"\ninfo:\n title: Test API\n version: \"1.0\"\npaths:\n /users:\n get:\n summary: List users\n responses:\n \"200\":\n description: OK\n /users/{id}:\n get:\n summary: Get user\n responses:\n \"200\":\n description: OK\n"
}
{
"endpoints": [
{
"method": "get",
"path": "/users",
"summary": "List users"
},
{
"method": "get",
"path": "/users/{id}",
"summary": "Get user"
}
],
"ok": true
}
Auto-generate fake response data from an OpenAPI schema definition
{
"action": "generate",
"method": "get",
"path": "/users/{id}",
"spec": "openapi: \"3.0.0\"\ninfo:\n title: Test API\n version: \"1.0\"\npaths:\n /users/{id}:\n get:\n responses:\n \"200\":\n content:\n application/json:\n schema:\n type: object\n properties:\n id:\n type: integer\n name:\n type: string\n email:\n type: string\n",
"status_code": 200
}
{
"mock_response": {
"body": {
"email": "mock_string_email",
"id": 1,
"name": "mock_string_name"
},
"headers": {
"content-type": "application/json"
},
"status_code": 200
},
"ok": true
}
Handle a mock API call and return a generated response matching the spec
{
"action": "serve",
"request": {
"method": "get",
"path": "/users/42"
},
"spec": "openapi: \"3.0.0\"\ninfo:\n title: Test API\n version: \"1.0\"\npaths:\n /users/{id}:\n get:\n responses:\n \"200\":\n content:\n application/json:\n schema:\n type: object\n properties:\n id:\n type: integer\n name:\n type: string\n"
}
{
"mock_response": {
"body": {
"id": 1,
"name": "mock_string_name"
},
"matched_path": "/users/{id}",
"method": "get",
"status_code": 200
},
"ok": true
}
Save a real API response into the spec as an example for future mocking
{
"action": "record",
"method": "get",
"path": "/users/1",
"recorded_response": {
"body": {
"email": "alice@example.com",
"id": 1,
"name": "Alice"
},
"status_code": 200
},
"spec": "openapi: \"3.0.0\"\ninfo:\n title: Test API\n version: \"1.0\"\npaths:\n /users/{id}:\n get:\n responses:\n \"200\":\n description: OK\n"
}
{
"matched_path": "/users/{id}",
"ok": true,
"recorded": true
}
Check which endpoints have mock examples defined and which do not
{
"action": "coverage",
"spec": "openapi: \"3.0.0\"\ninfo:\n title: Test API\n version: \"1.0\"\npaths:\n /users:\n get:\n responses:\n \"200\":\n content:\n application/json:\n examples:\n default:\n value:\n id: 1\n /products:\n get:\n responses:\n \"200\":\n description: OK\n"
}
{
"coverage": {
"coverage_pct": 50.0,
"missing": [
{
"method": "get",
"path": "/products",
"status_code": 200
}
],
"total": 2,
"with_examples": 1,
"without_examples": 1
},
"ok": true
}
Returns structured error when spec cannot be parsed
{
"action": "parse",
"spec": "this is not valid yaml: or json { ["
}
{
"error": {
"code": "SPEC_PARSE_ERROR",
"message": "Failed to parse spec: invalid YAML/JSON format"
},
"ok": false
}
Returns error when requested path does not exist in spec
{
"action": "generate",
"method": "get",
"path": "/nonexistent",
"spec": "openapi: \"3.0.0\"\ninfo:\n title: Test API\n version: \"1.0\"\npaths:\n /users:\n get:\n responses:\n \"200\":\n description: OK\n"
}
{
"error": {
"code": "PATH_NOT_FOUND",
"message": "Path \u0027/nonexistent\u0027 with method \u0027get\u0027 not found in spec"
},
"ok": false
}
Returns structured error when action field is missing
{
"spec": "openapi: 3.0.0"
}
{
"error": {
"code": "MISSING_ACTION",
"message": "Field \u0027action\u0027 is required"
},
"ok": false
}
All examples are also available via the agent API:
/v1/agent/skills/ea8429fb-0e8b-451b-8b75-8a124147650b/schema
No reviews yet. Be the first to leave one!