Skip to main content
Glama
README.md
# StudyTube MCP šŸŽ“

An MCP (Model Context Protocol) server that transforms YouTube educational videos into learning resources using AI.

## Features

āœ… Extract YouTube video transcripts

āœ… Generate concise video summaries

āœ… Create structured study notes

āœ… Generate multiple-choice quizzes

āœ… Create flashcards for revision

## Tech Stack

- Python
- MCP (Model Context Protocol)
- Claude Desktop
- Groq API
- YouTube Transcript API
- python-dotenv

## Project Structure

```text
StudyTube-MCP/
│
ā”œā”€ā”€ server.py
ā”œā”€ā”€ utils.py
ā”œā”€ā”€ requirements.txt
ā”œā”€ā”€ .env.example
ā”œā”€ā”€ README.md
└── screenshots/
```

## Installation

### 1. Clone Repository

```bash
git clone https://github.com/your-username/StudyTube-MCP.git
cd StudyTube-MCP
```

### 2. Create Virtual Environment

```bash
python -m venv .venv
```

Activate environment:

Windows:

```bash
.venv\Scripts\activate
```

### 3. Install Dependencies

```bash
pip install -r requirements.txt
```

### 4. Configure Environment Variables

Create a `.env` file:

```env
GROQ_API_KEY=your_groq_api_key
```

## MCP Configuration

Add the server to Claude Desktop configuration:

```json
{
  "mcpServers": {
    "studytube": {
      "command": "YOUR_PYTHON_PATH",
      "args": [
        "YOUR_SERVER_PATH\\server.py"
      ]
    }
  }
}
```

## Available Tools

### 1. summarize_video(url)

Generates a concise summary of a YouTube video.

Example:

```text
Summarize this video:
https://www.youtube.com/watch?v=VIDEO_ID
```

---

### 2. generate_video_notes(url)

Creates structured study notes.

Example:

```text
Generate notes for:
https://www.youtube.com/watch?v=VIDEO_ID
```

---

### 3. generate_quiz(url)

Generates multiple-choice questions from video content.

Example:

```text
Generate a quiz for:
https://www.youtube.com/watch?v=VIDEO_ID
```

---

### 4. generate_flashcards(url)

Creates flashcards for revision.

Example:

```text
Generate flashcards for:
https://www.youtube.com/watch?v=VIDEO_ID
```

---

### 5. get_transcript(url)

Retrieves the transcript of a YouTube video.

Example:

```text
Get transcript for:
https://www.youtube.com/watch?v=VIDEO_ID
```

## Example Workflow

```text
YouTube URL
      ↓
Transcript Extraction
      ↓
Groq LLM Processing
      ↓
Summary / Notes / Quiz / Flashcards
```

## Screenshots

Add screenshots of:

- Claude using summarize_video()
- Claude generating notes
- Claude generating quizzes
- Claude generating flashcards

## Future Improvements

- Transcript chunking for long videos
- Multi-language support
- PDF export
- Markdown export
- Anki flashcard generation
- Learning progress tracking

## Author

Suganda Karaguppi