# my-youtubeinsights-mcp-server

A practice project based on dabidstudio's YouTube Insights MCP Server.

## Features

* Extract transcripts from YouTube videos (multi-language)
* Search videos by keyword and fetch metadata (views, likes, thumbnails, etc.)
* Retrieve channel info and latest videos from any YouTube video URL
* FastMCP-based server integration for easy deployment
* MCP Tools for seamless agent workflows

### Example usecases


<details>
<summary>Finding Trending Videos and Summarizing</summary>
<img src="https://github.com/user-attachments/assets/60a97619-13cf-4aba-807e-0fad0a4f3b42" width="480"/>
</details>
 
<details>
<summary>Analyzing a Channel's Recent Performance</summary>
<img src="https://github.com/user-attachments/assets/4f35a716-0c92-4368-8ba5-0b564613aae0" width="480"/>
</details>

### Installing via Smithery

To install youtubeinsights-mcp-server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@dabidstudio/youtubeinsights-mcp-server):

```bash
npx -y @smithery/cli install @dabidstudio/youtubeinsights-mcp-server --client claude
```

### Using uvx (recommended)

When using [`uvx`](https://docs.astral.sh/uv/guides/tools/), no specific installation is needed.

Add the following configuration to your MCP settings file (e.g., `claude_desktop_config.json` for Claude Desktop):

```json
{
  "mcpServers": {
    "youtubeinsights": {
      "command": "uvx",
      "args": ["youtubeinsights-mcp-server"],
      "env": {
        "YOUTUBE_API_KEY": "your-api-key",
      }
    }
  }
}
```

### Development Installation

1. Clone this repository

2. Copy `.env.example` to `.env` and fill in your youtube data api credentials

    ```json
    {
      "mcpServers": {
        "youtubeinsights": {
          "command": "uv",
          "args": [
            "--directory",
            "path/to/youtubeinsights-mcp-server",
            "run",
            "youtubeinsights-mcp-server"
          ],
          "env": {
            "YOUTUBE_API_KEY": "your-api-key",
          }
        }
      }
    }
    ```

## Available MCP Tools

- `get_youtube_transcript`: Extract full transcript (subtitles) from a YouTube video URL (supports `ko`, `en`)
- `search_youtube_videos`: Search for videos on YouTube by keyword and retrieve key metadata
- `get_channel_info`: Get channel metadata and recent uploads based on any YouTube video URL

## Sample MCP Tool Descriptions

```json
{
  "tool": "get_youtube_transcript",
  "description": "Extract subtitles from a given YouTube video URL."
}
```

```json
{
  "tool": "search_youtube_videos",
  "description": "Search videos by keyword and return metadata including views, likes, and thumbnails."
}
```

```json
{
  "tool": "get_channel_info",
  "description": "Retrieve channel info (title, subscriber count, latest uploads) based on a video URL."
}
```

## License

This project is licensed under the MIT License. See the `LICENSE` file for more information.

## Original Author

This project is based on the work of dabidstudio. See the `original-author` field in `pyproject.toml` for more information.
