Skip to main content

Add your description here

Project description

YouTube MCP Server

A Model Context Protocol (MCP) server that provides tools for searching YouTube videos, retrieving transcripts, and performing semantic search over video content.

Support Us

If you find this project helpful and would like to support future projects, consider buying us a coffee! Your support helps us continue building innovative AI solutions.

Your contributions go a long way in fueling our passion for creating intelligent and user-friendly applications.

Table of Contents

Features

  • Search YouTube videos without using the official API
  • Retrieve video transcripts
  • Store video information and transcripts in a vector database
  • Perform semantic search over stored video transcripts

Prerequisites

  • Python 3.8+
  • Google API key for embeddings
  • uv package manager

Installation

  1. Clone this repository

  2. Create and activate a virtual environment using uv:

uv venv
# On Windows:
.venv\Scripts\activate
# On Unix/MacOS:
source .venv/bin/activate
  1. Install dependencies using uv:
uv pip install -r requirements.txt
  1. Create a .env file with your Google API key:
GOOGLE_API_KEY=your_api_key_here

Running the Server

There are two ways to run the MCP server:

1. Direct Method

To start the MCP server directly:

uv run python server.py

2. Configure for Claude.app

Add to your Claude settings without using any package manager this works for windows:

"mcpServers": {
  "youtube": {
    "command": "C:\\Path\\To\\Your\\Project\\.venv\\Scripts\\python.exe",
    "args": ["C:\\Path\\To\\Your\\Project\\server.py"],
    "env": {
      "GOOGLE_API_KEY": "your_api_key_here"
    }
  }
}

Using Uv package manager this works for windows:

"mcpServers": {
  "youtube": {
    "command": "uv",
    "args": ["--directory", "C:\\Path\\To\\Your\\Project", "run", "server.py"],
    "env": {
      "GOOGLE_API_KEY": "your_api_key_here"
    }
  }
}

Available Tools

The server provides the following tools:

  1. search-youtube: Search for YouTube videos based on a query

    • Parameters:
      • query: Search query string
      • max_results: Maximum number of results to return (default: 5)
  2. get-transcript: Get the transcript of a YouTube video

    • Parameters:
      • video_url: URL of the YouTube video
  3. store-video-info: Store video information and transcript in the vector database

    • Parameters:
      • video_url: URL of the YouTube video
      • metadata: Optional metadata about the video
  4. search-transcripts: Search stored video transcripts using semantic search

    • Parameters:
      • query: Search query
      • limit: Maximum number of results to return (default: 3)

Using with MCP Clients

This server can be used with any MCP-compatible client, such as Claude Desktop App. The tools will be automatically discovered and made available to the client.

Example Usage

  1. Start the server using one of the methods described above
  2. Open Claude Desktop App
  3. Look for the hammer icon to verify that the YouTube tools are available
  4. You can now use commands like:
    • "Search for Python tutorial videos"
    • "Get the transcript of this video: [video_url]"
    • "Search through stored video transcripts about machine learning"

Debugging

If you encounter any issues:

  1. Make sure your Google API key is correctly set in the .env file
  2. Check that all dependencies are installed correctly
  3. Verify that the server is running and listening for connections
  4. Look for any error messages in the server output

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_ia_programming_youtube_mcp-0.1.2.tar.gz.

File metadata

  • Download URL: iflow_mcp_ia_programming_youtube_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_ia_programming_youtube_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 4cfbb72baba42b7525b3a068a284c7f809864e6ac5d37f6742b3b5c7e822b29a
MD5 502eac9436d3e01b20ea991b02f8e069
BLAKE2b-256 1bfc222c7fdbe32a6c26df1be2c4ef089c1e6e953c178ef3dd43e1b90bb6777f

See more details on using hashes here.

File details

Details for the file iflow_mcp_ia_programming_youtube_mcp-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_ia_programming_youtube_mcp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_ia_programming_youtube_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c368e39c9e286f78a4e8593e8cc02e773a803b8ce02a41b10c69b155cd356971
MD5 278c1422a08355c905f8ddae8c0b2e73
BLAKE2b-256 37f29b81da68202f865612fa232636ef204ac185d58c0b3fc3f7fbf8400c3eb9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page