Skip to main content
Glama
README.md
# CLOVA Speech Lecture MCP Server

강의 녹음 STT 및 요약을 위한 MCP 서버입니다.  
Google ADK 에이전트에서 네이버 CLOVA Speech / CLOVA Studio API를 호출합니다.

---

## 제공 툴

| 툴 이름 | 설명 | 적합한 상황 |
|--------|------|------------|
| `transcribe_short` | 동기 STT (60초 이하) | 짧은 클립, 테스트 |
| `transcribe_lecture_submit` | 비동기 STT 제출 (강의 전체) | 수십 분~수 시간 강의 |
| `get_transcription_result` | 비동기 STT 결과 조회 | submit 후 폴링 |
| `summarize_lecture` | 강의 전사본 요약 | 전사 완료 후 |

---

## 시작하기

### 1. API 키 발급

**CLOVA Speech (STT)**
1. [네이버 클라우드 플랫폼](https://www.ncloud.com) 로그인
2. AI Services → CLOVA Speech → 이용 신청
3. 서비스 생성 후 Secret Key 복사

**CLOVA Studio (요약)**
1. AI Services → CLOVA Studio → 이용 신청
2. Playground에서 앱 생성
3. API 키 및 앱 ID 복사

### 2. .env 설정

```bash
cp .env .env.local   # 실제 값으로 수정
```

```.env
CLOVA_SPEECH_API_KEY=실제_키_입력
CLOVA_STUDIO_CLIENT_ID=실제_Client_ID
CLOVA_STUDIO_CLIENT_SECRET=실제_Client_Secret
CLOVA_STUDIO_APP_ID=실제_앱_ID
```

### 3. 실행

```bash
# Docker
docker-compose up -d

# 로컬 실행
pip install -r requirements.txt
python app/main.py
```

### 4. ADK 에이전트 연결

```python
# agent.py 예시
tools = [
    MCPToolset(
        connection_params=SseServerParams(url="http://localhost:8002/sse")
    )
]
```

---

## 강의 처리 플로우

```
[강의 오디오 파일]
       ↓
transcribe_lecture_submit(file_path, enable_diarization=True)
       ↓ (task_id 반환)
get_transcription_result(task_id)   ← 완료까지 자동 폴링
       ↓ (full_text 반환)
summarize_lecture(text)
       ↓
[요약문 + 키워드]
```

---

## 지원 오디오 형식

`.wav` `.mp3` `.flac` `.m4a` `.aac` `.ogg`

## 지원 언어

| 코드 (단문) | 코드 (장문) | 언어 |
|------------|------------|------|
| `Kor` | `ko-KR` | 한국어 |
| `Eng` | `en-US` | 영어 |
| `Jpn` | `ja-JP` | 일본어 |