OpenAPI 3.x (JSON/YAML) 스펙을 MCP stdio 서버(Python) 코드로 자동 변환하는 스킬. 외부 REST API를 MCP tool로 빠르게 브릿지할 때 사용. 인증(Bearer, API Key, OAuth stub) 지원, endpoint별 tool 자동 생성. 트리거: OpenAPI→MCP 변환, 외부 API MCP 연동, REST API tool 자동화, Python MCP scaffold.
Scanned 9/12/2026
Install to Claude Code
npx -y skills add aibot88/sec_skill_store --skill openapi-tool-scaffold --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Openapi Tool Scaffold?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/aibot88-openapi-tool-scaffold)More formats (shields.io, HTML) on the badges page.
---
name: openapi-tool-scaffold
description: |
OpenAPI 3.x (JSON/YAML) 스펙을 MCP stdio 서버(Python) 코드로 자동 변환하는 스킬.
외부 REST API를 MCP tool로 빠르게 브릿지할 때 사용.
인증(Bearer, API Key, OAuth stub) 지원, endpoint별 tool 자동 생성.
트리거: OpenAPI→MCP 변환, 외부 API MCP 연동, REST API tool 자동화, Python MCP scaffold.
metadata:
author: misskim
version: "1.0"
---
# OpenAPI Tool Scaffold
Research → Audit → Rewrite 패턴으로 재작성한 **Python 3.10+ 기반 OpenAPI→MCP 생성 스킬**.
- 입력: OpenAPI 3.x spec (URL 또는 로컬 JSON/YAML)
- 출력: 실행 가능한 MCP stdio 서버 Python 파일
- 핵심: 각 REST endpoint를 MCP tool로 자동 노출
> 외부 툴을 blind install 하지 않고, 공개 패턴을 흡수해 내부 재구현.
## 왜 필요한가?
1. **실제 필요성**: 외부 API 통합 시간을 크게 절약
2. **기존 것으로 충분한가?**: 기존 mcporter류는 있어도 OpenAPI→MCP 자동 코드 생성은 공백 존재
3. **비용 대비 효과**: 추가 SaaS 비용 없이 개발 시간 절감
4. **과대포장 방지**: 기존 구현을 그대로 가져오지 않고 패턴만 흡수
## 포함 파일
```
openapi-tool-scaffold/
├── SKILL.md
├── scripts/
│ └── openapi-to-mcp.py
├── templates/
│ └── mcp_server_stdio.py.tmpl
├── examples/
│ ├── README.md
│ ├── petstore-mcp-server.py
│ ├── todo-mini-openapi.yaml
│ └── todo-mini-mcp-server.py
└── references/
└── research-audit.md
```
## 빠른 시작
```bash
# 1) Petstore OpenAPI -> MCP 서버 코드 생성
python3 skills/openapi-tool-scaffold/scripts/openapi-to-mcp.py \
"https://petstore3.swagger.io/api/v3/openapi.json" \
--output skills/openapi-tool-scaffold/examples/petstore-mcp-server.py \
--server-name petstore_mcp
# 2) 생성 코드 문법 검사
python3 -m py_compile skills/openapi-tool-scaffold/examples/petstore-mcp-server.py
# 3) MCP 서버 실행 (stdio)
python3 skills/openapi-tool-scaffold/examples/petstore-mcp-server.py
```
## CLI 사용법
```bash
python3 scripts/openapi-to-mcp.py INPUT --output OUTPUT.py [options]
```
옵션:
- `--server-name` : MCP 서버 이름 오버라이드
- `--base-url` : OpenAPI servers보다 우선하는 API base URL
- `--template` : 서버 템플릿 경로 변경
- `--include-deprecated` : deprecated operation 포함
- `--max-tools N` : 생성 tool 수 제한 (0=무제한)
## 인증 패턴 (생성 서버)
생성된 서버는 OpenAPI `components.securitySchemes` + operation/global `security`를 해석해
다음 환경변수를 자동 사용한다.
### 1) Bearer
- `BEARER_TOKEN_<SCHEME_NAME>`
- fallback: `BEARER_TOKEN`
### 2) API Key
- `API_KEY_<SCHEME_NAME>`
- fallback: `API_KEY`
- OpenAPI 정의(`in: header/query/cookie`, `name`)에 맞게 자동 주입
### 3) OAuth (stub)
- `OAUTH_ACCESS_TOKEN_<SCHEME_NAME>`
- fallback: `OAUTH_ACCESS_TOKEN`
- 토큰 자동 발급 플로우는 구현하지 않고, **토큰 주입 스텁**으로 처리
(추가) Basic auth도 지원:
- `BASIC_USERNAME_<SCHEME_NAME>`, `BASIC_PASSWORD_<SCHEME_NAME>`
- fallback: `BASIC_USERNAME`, `BASIC_PASSWORD`
## 생성되는 MCP 메서드
- `initialize`
- `tools/list`
- `tools/call`
- `ping`
stdio 입력은 newline JSON-RPC를 기본으로 처리하며, Content-Length 프레이밍 입력도 수용한다.
출력은 newline JSON-RPC(기본)이며 `MCP_USE_CONTENT_LENGTH=1`로 Content-Length 출력 가능.
## 제한사항
- OpenAPI **3.x만** 지원
- 외부 `$ref` URL dereference는 자동 fetch하지 않음 (로컬 `#/...` 중심)
- complex serialization(style/explode deepObject)은 기본 매핑 수준으로 처리
- OAuth 자동 리프레시/코드교환은 범위 밖 (stub)
## 운영 팁
- 민감 endpoint는 OpenAPI 단계에서 별도 spec 분리 권장
- `--max-tools`로 초기 노출 범위를 좁히고 점진 확장
- 반드시 읽기/쓰기/삭제 endpoint 구분 후 클라이언트 측 승인 정책 추가
## Research/Audit 결과
세부 조사 결과는 `references/research-audit.md` 참고.
핵심 결론:
- 오픈소스는 대부분 TS/Node 또는 특정 플랫폼 편향
- Python 경량/무의존(또는 최소의존) 생성기 수요 존재
- 라이선스는 주로 MIT/Apache-2.0으로 패턴 참조에 적합
- 따라서 내부 Python 재작성 전략이 타당
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!