본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 05. 22. 11:27

openapi-mcp-generator

요약

OpenAPI 명세를 Model Context Protocol(MCP) 서버로 자동 변환해주는 Python 기반 도구입니다. Docker 지원, 다양한 인증 방식, 비동기 작업 및 SSE/IO 프로토콜을 통해 즉시 실행 가능한 MCP 서버 구현체를 생성합니다.

핵심 포인트

  • OpenAPI 스펙을 MCP 도구 및 리소스로 자동 변환
  • 멀티 스테이지 빌드를 지원하는 Docker 환경 제공
  • Bearer, Token, Basic 등 다양한 인증 방식 지원
  • 비동기 작업 및 속도 제한(Rate Limiting) 기능 포함
  • CLI 도구 및 Python 모듈로 유연하게 사용 가능

OpenAPI 명세(specifications)를 완전히 기능하는 Model Context Protocol (MCP) 서버로 자동 변환하는 Python 도구입니다. SSE/IO 통신 프로토콜, 인증(authentication), 그리고 포괄적인 에러 처리(error handling)를 지원하며 Docker에서 즉시 실행 가능한 구현체를 생성합니다.

  • 🔄 OpenAPI를 MCP 도구(tools)/리소스(resources)로 변환
  • 🐳 멀티 스테이지 빌드(multi-stage builds)를 지원하는 Docker 준비 완료
  • 🔐 다양한 인증 방식 지원
  • ⚡ 비동기 작업(Async operations) 및 속도 제한(rate limiting)
  • 📡 SSE/IO 통신 프로토콜
  • 📦 패키지 지원을 포함한 모듈형 코드 구조

이 생성기(generator)는 하위 호환성을 유지하면서 적절한 Python 패키지로 리팩터링(refactored)되었습니다:

기존 진입점(Original Entry Point): generator.py 스크립트는 이전과 동일하게 작동합니다
모듈형 구성(Modular Organization): 코드가 이제 집중된 모듈들로 분리되었습니다
패키지 설치(Package Installation): 적절한 Python 패키지로 설치할 수 있습니다
동일한 템플릿(Same Templates): /templates 디렉토리 내의 정확히 동일한 템플릿을 사용합니다
Docker 지원(Docker Support): 모든 Docker 기능을 보존합니다

원하는 방식에 따라 도구를 사용할 수 있습니다:

  • generator.py를 직접 실행 (기존 방식)
  • 패키지로 설치하여 mcp-generator 명령 사용
  • 본인의 Python 코드에서 모듈을 프로그래밍 방식으로 사용

모듈형 코드 구조에 대한 자세한 내용은 MODULAR_REFACTORING.md를 참조하세요.

  • OpenAPI 명세를 MCP 서버로 변환

  • 멀티 스테이지 빌드를 포함한 Docker 준비 완료 구현체

  • 다양한 인증 방식 지원

  • SSE 또는 IO 통신 프로토콜 선택 가능

  • 포괄적인 에러 처리 및 로깅(logging)

  • 내장된 속도 제한(rate limiting) 및 보안 기능

  • 최적의 성능을 위한 비동기 작업(Async operations)

  • 커버리지 보고(coverage reporting)를 포함한 광범위한 테스트 스위트(test suite)

  • Python 3.10+

  • Docker (생성된 서버 실행용)

  • pip 또는 uv (Python 패키지 관리자)

# 저장소 복제(Clone)
git clone https://github.com/abutbul/openapi-mcp-generator.git
cd openapi-mcp-generator
...

pip install openapi-mcp-generator

# 기존 스크립트 사용 (동일한 방식으로 작동함)
python generator.py openapi.yaml --output-dir ./output --api-url https://api.example.com
# 설치 후 새로운 모듈형 CLI 도구 사용
...

openapi_file
: OpenAPI YAML 파일 경로 (필수)

--output-dir
: 생성된 프로젝트의 출력 디렉토리 (기본값: '.')

--api-url
: API의 베이스 URL (Base URL)

--auth-type
: 인증 유형 (bearer, token, basic)

--api-token
: 인증을 위한 API 토큰

--api-username
: Basic 인증을 위한 사용자 이름

--api-password
: Basic 인증을 위한 비밀번호

서버를 생성한 후에는 Docker를 사용하여 빌드하고 실행할 수 있습니다:

cd output/openapi-mcp-*
./docker.sh build
./docker.sh start --transport=sse --port=8000

생성된 docker.sh 스크립트는 다음 명령어를 지원합니다:

build
: Docker 이미지 빌드

start
: 컨테이너 시작

--port=PORT
: 포트 설정 (기본값: 8000)

--transport=TYPE
: 전송 유형 (transport type) 설정: 'sse' 또는 'io' (기본값: sse)

--log-level=LEVEL
: 로깅 레벨 (logging level) 설정 (기본값: info)

stop
: 컨테이너 중지

clean
: 컨테이너 및 이미지 삭제

logs
: 컨테이너 로그 확인

모듈형 생성기 (modular generator)는 다음과 같은 구조를 가집니다:

openapi-mcp-generator/
├── generator.py # 기존 진입점 (하위 호환성을 위해 유지됨)
├── mcp_generator.py # 새로운 진입점 (모듈형 구조 사용)
...

모듈형 구조는 기존의 모든 기능을 보존하면서 코드를 더 유지보수하기 쉽게 만듭니다:

  • 기존 진입점(generator.py)을 이전과 같이 여전히 사용할 수 있습니다.
  • /templates에 있는 기존 템플릿들이 새로운 모듈형 코드에 의해 사용됩니다.
  • 모든 Docker 관련 기능이 기존과 정확히 동일하게 보존됩니다.
  • 이제 프로젝트를 정식 Python 패키지로 설치할 수 있습니다.

생성기가 실제로 작동하는 모습을 확인하려면 우리의 샘플 구현 사례를 살펴보세요:

  • Trilium Notes ETAPI Server - Trilium Notes 지식 관리 시스템의 ETAPI를 위한 MCP 서버

  • 저장소 포크 (Fork the repository)

  • 기능 브랜치 (feature branch) 생성

  • 변경 사항 적용

  • 테스트 스위트 (test suite) 실행

  • 풀 리퀘스트 (pull request) 제출

이 프로젝트는 MIT License 라이선스 하에 배포됩니다 - 자세한 내용은 LICENSE 파일을 참조하세요.

Elasticsearch 6.1 스펙 폴더로부터 MCP 서버를 생성하려면:

# 원본 스크립트를 직접 실행
python generator.py samples/elasticsearch_6.1/api
# 또는 모듈형 엔트리 포인트 (modular entry point) 사용
...

먼저, 패키지를 설치하세요 (프로젝트 루트에서):

pip install .

그 다음 CLI 도구를 사용하여 Trilium ETAPI 스펙을 변환하세요:

mcp-generator samples/TriliumNext/etapi.openapi.yaml

또는 본인의 Python 코드에서 프로그래밍 방식으로 사용할 수 있습니다:

from openapi_mcp_generator import generator
generator.generate('samples/TriliumNext/etapi.openapi.yaml')

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0