Automatically analyzes Django REST Framework ViewSets to generate accurate OpenAPI 3.0 documentation, extracting serializer fields, request/response parameters, and CRUD endpoints without manual configuration.
Uses FastAPI to create a Python Parser server that scans Django projects, detects ViewSets, and generates complete API documentation with proper request/response schemas.
Serves as the main MCP server that provides Swagger UI integration and JSON API documentation serving capabilities, acting as a proxy between users and the Python Parser.
Provides a complete Swagger UI interface for visualizing and interacting with the automatically generated API documentation, showing all endpoints, parameters, and response schemas.
Used for HTML templating in the Spring Boot component to render the Swagger UI documentation pages.
MCP API 문서 자동화 시스템
Django REST Framework ViewSet을 자동으로 분석하여 OpenAPI 3.0 스펙의 API 문서를 생성하는 완전 자동화 시스템입니다.
📋 목차
🎯 프로젝트 개요
목적
- Django 프로젝트의 ViewSet을 자동으로 탐지하고 분석 
- 실제 serializer 필드를 기반으로 정확한 OpenAPI 3.0 스펙 생성 
- Request/Response 파라미터, 헤더, 바디 정보 완전 자동화 
- Swagger UI를 통한 직관적인 API 문서 제공 
핵심 특징
- ✅ 완전 자동화: 수동 설정 없이 ViewSet 자동 탐지 
- ✅ 정확한 스키마: 실제 serializer 필드 1:1 반영 
- ✅ 125개 엔드포인트: 모든 ViewSet CRUD 작업 지원 
- ✅ 실시간 생성: 코드 변경 시 즉시 문서 업데이트 
- ✅ JavaScript 호환: Swagger UI 완벽 지원 
🏗️ 시스템 아키텍처
컴포넌트 설명
- Python Parser (FastAPI) - Django ViewSet 자동 탐지 및 분석 
- OpenAPI 3.0 스펙 생성 
- 실제 serializer 필드 추출 
 
- MCP Server (Spring Boot) - Swagger UI 제공 
- JSON API 문서 서빙 
- 프록시 역할 
 
- Django Project - 분석 대상 ViewSet 파일들 
- 실제 serializer 정의 
 
🚀 주요 기능
1. ViewSet 자동 탐지
- app/디렉토리 내 모든 앱 스캔
- views.py또는- views/폴더 내 파일 분석
- class \w+ViewSet패턴 자동 발견
2. Serializer 필드 추출
- serializer_class속성 자동 감지
- 실제 필드 타입, nullable, required 정보 추출 
- 중첩 serializer 지원 
3. OpenAPI 3.0 스펙 생성
- Request 파라미터 (쿼리, 헤더, 바디) 
- Response 스키마 (상태 코드별) 
- 인증 정보 (Authorization 헤더) 
- Pagination, Search, Filtering 지원 
4. CRUD 엔드포인트 자동 생성
- GET - /api/v1/{resource}/- 목록 조회
- POST - /api/v1/{resource}/- 생성
- GET - /api/v1/{resource}/{id}/- 상세 조회
- PUT - /api/v1/{resource}/{id}/- 수정
- DELETE - /api/v1/{resource}/{id}/- 삭제
🛠️ 기술 스택
Backend
- Python 3.12.2: 메인 파싱 로직 
- FastAPI: Python Parser 서버 
- Django: 분석 대상 프로젝트 
- Django REST Framework: ViewSet 분석 
Frontend
- Spring Boot: MCP 서버 
- Swagger UI: API 문서 인터페이스 
- Thymeleaf: HTML 템플릿 
개발 도구
- Gradle: Spring Boot 빌드 
- uvicorn: FastAPI 서버 
- watchfiles: 자동 리로드 
📁 프로젝트 구조
🔧 로컬 환경 설정
1. Python 환경 설정
2. Python 의존성 설치
3. Spring Boot 환경 설정
🚀 실행 방법
1. Python Parser 서버 시작
서버 정보:
- URL: - http://localhost:8009
- 자동 리로드: 활성화 
- Django 환경: 자동 설정 
2. Spring Boot MCP 서버 시작
서버 정보:
- URL: - http://localhost:8080
- Swagger UI: - http://localhost:8080/api-docs/html
- JSON API: - http://localhost:8080/api-docs/json
3. API 문서 생성
📖 API 사용법
1. API 문서 생성 엔드포인트
파라미터:
- project_name: 프로젝트 이름 (예: ucms-be)
- base_url: 기본 URL (예: http://localhost:8009)
- save_to_file: 파일 저장 여부 (true/false)
응답:
2. 생성된 문서 확인
- Swagger UI: - http://localhost:8080/api-docs/html
- JSON 파일: - http://localhost:8080/api-docs/json
- 로컬 파일: - python-parser/generated_docs/ucms-be_api_docs.json
🔍 구현 상세 내용
1. ViewSet 자동 탐지 로직
2. Serializer 필드 추출 로직
3. OpenAPI 스펙 생성 로직
🧪 테스트 방법
1. 단위 테스트
2. 통합 테스트
3. Swagger UI 테스트
4. 엔드포인트별 테스트
📊 생성된 API 문서 예시
1. Revenue API 엔드포인트
2. 생성된 엔드포인트 통계
- 총 엔드포인트: 125개 
- ViewSet 개수: 25개 
- 주요 ViewSet: - Revenue (16개 필드) 
- RevenueShare (16개 필드) 
- AdminUser (8개 필드) 
- UserActionHistory (12개 필드) 
- VideoSource (23개 필드) 
- Series (18개 필드) 
- Content (다양한 필드) 
- 기타 모든 ViewSet 
 
🔧 트러블슈팅
1. Django 환경 설정 문제
문제: DJANGO_SETTINGS_MODULE 미설정
해결책:
2. ViewSet Import 실패
문제: 상대 import 오류
해결책:
3. Serializer 필드 추출 실패
문제: cached_property 오류
해결책:
4. JavaScript 호환성 문제
문제: Swagger UI에서 Object.keys() 오류
해결책:
📈 성능 최적화
1. 캐싱 전략
- ViewSet 클래스 import 결과 캐싱 
- Serializer 필드 추출 결과 캐싱 
- 파일 변경 감지로 부분 업데이트 
2. 병렬 처리
- 여러 ViewSet 동시 분석 
- 파일 I/O 비동기 처리 
3. 메모리 최적화
- 불필요한 객체 생성 방지 
- 가비지 컬렉션 최적화 
🔮 향후 개선 계획
1. 기능 확장
- GraphQL 스키마 생성 지원 
- API 버전 관리 
- 커스텀 필터링/정렬 지원 
- API 테스트 코드 자동 생성 
2. 성능 개선
- Redis 캐싱 도입 
- 배치 처리 최적화 
- 메모리 사용량 모니터링 
3. 사용성 개선
- 웹 인터페이스 추가 
- 실시간 문서 업데이트 
- API 문서 버전 관리 
📞 지원 및 문의
프로젝트 관련 문의사항이나 버그 리포트는 이슈를 통해 제출해 주세요.
개발자: AI Assistant
최종 업데이트: 2024년 12월
버전: 1.0.0
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
A fully automated system that analyzes Django REST Framework ViewSets to generate accurate OpenAPI 3.0 specification documentation without manual configuration.
Related MCP Servers
- -security-license-qualityA server that enables Large Language Models to discover and interact with REST APIs defined by OpenAPI specifications through the Model Context Protocol.Last updated -705178MIT License
- -security-license-qualityA server implementation that provides a unified interface for OpenAI services, Git repository analysis, and local filesystem operations through REST API endpoints.Last updated -GPL 3.0
- -security-license-qualityAn MCP server that automatically generates documentation, test plans, and code reviews for code repositories by analyzing directory structures and code files using AI models via OpenRouter API.Last updated -5Creative Commons Zero v1.0 Universal
- -security-license-qualityA FastAPI library that provides Model Context Protocol tools for endpoint introspection and OpenAPI documentation, allowing AI agents to discover and understand API endpoints.Last updated -3MIT License