logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

mcp-youtube-connector

Facilitates the linkage between sophisticated AI reasoning agents and the YouTube Data API ecosystem, specifically engineered for the extraction of synchronized subtitle tracks and the automated generation of comprehensive video abstracts from specified YouTube artifacts.

Author

mcp-youtube-connector logo

sparfenyuk

MIT License

Quick Info

GitHub GitHub Stars 14
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

youtubeapiapisyoutube apiassistants youtubesummaries youtube

YouTube Interaction Module (MCP Bridge)

Module Overview

This specialized service acts as an intermediary layer connecting the Model Context Protocol (MCP) framework, utilized by AI environments such as Claude Desktop, directly to the capabilities exposed by the YouTube Application Programming Interface (API).

YouTube Service MCP Endpoint

Conceptual Foundation (MCP)

The Model Context Protocol defines a standardized methodology enabling autonomous applications (like Claude Desktop) to securely interface with external service endpoints and localized data repositories. This mechanism ensures AI assistants can leverage external resources in a controlled, transparent manner, maintaining ultimate user oversight.

Functionality Spectrum

  • [x] Retrieve and save embedded closed captioning data corresponding to an input video identifier.

Utility Scenarios

  • [x] Synthesize a high-level narrative summary synthesizing the video's core content.

Prerequisite Software

Deployment Procedures

Installation via the package manager:

bash uv tool install git+https://github.com/sparfenyuk/mcp-youtube

[!NOTE] To update an already established service instance, execute the command uv tool upgrade --reinstall.

[!NOTE] For complete removal of this service, utilize the uninstallation directive: uv tool uninstall mcp-youtube.

Configuration Directives

AI Client Integration Settings

Adapt your primary AI client configuration to recognize and route requests to this newly deployed YouTube MCP agent.

  1. Access the relevant configuration file for your AI client:
  2. On macOS systems, the file path is typically: ~/Library/Application Support/Claude/claude_desktop_config.json
  3. On Windows systems, the location is generally: %APPDATA%\Claude\claude_desktop_config.json

Note: The configuration file can often be located within the application's main settings interface.

  1. Inject the requisite server definition block:

    { "mcpServers": { "mcp-youtube": { "command": "mcp-youtube", } } } }

Development Lifecyle

Initial Setup Steps

  1. Obtain a local copy of the source code repository (cloning).
  2. Install required dependencies:

bash uv sync

  1. Initiate the service execution environment (demonstration or testing):

bash uv run mcp-youtube --help

New functionalities should be defined within the src/mcp_youtube/tools.py module.

Procedure for augmenting functionality:

  1. Designate a new class that inherits from the base ToolArgs structure:

python class NovelTool(ToolArgs): """A detailed description of the novel operational capability.""" pass

The class members define the input schema; the class docstring serves as the functional description.

  1. Implement the asynchronous execution routine associated with the new class:

python @tool_runner.register async def novel_tool(args: NovelTool) -> t.Sequence[TextContent | ImageContent | EmbeddedResource]: pass

This function must be asynchronous and accept the newly defined argument class, returning a sequence of recognized content types.

  1. Finalize the process! After reloading the connecting client, the new feature will become accessible.

Verification of new tools can be performed either through the AI client interface or by direct invocation against the local service instance.

Server Debugging via Inspection Utility

To leverage the graphical debugging interface provided by the MCP inspector, execute the following command:

bash npx @modelcontextprotocol/inspector uv run mcp-youtube

Issue Resolution

Connection Failure Alert: 'Could not connect to MCP server mcp-youtube'

If the AI client reports an inability to establish a link with mcp-youtube, suspect an error in the service registration within the configuration file.

Remedial Action:

  • Specify the absolute, fully qualified path to the mcp-youtube executable binary within the configuration settings.

WIKIPEDIA: XMLHttpRequest (XHR) represents a core Application Programming Interface implemented as a JavaScript object. Its principal methods facilitate the transmission of asynchronous HTTP requests from a client-side web browser environment toward an application server. These capabilities allow web-based software to communicate with the backend post-initial page load, receiving subsequent data streams. XHR forms a fundamental pillar of the Asynchronous JavaScript and XML (Ajax) programming paradigm. Prior to its widespread adoption, server interaction predominantly relied on conventional hyperlinking or form submissions, actions that typically mandated a complete page refresh.

== Historical Context == The foundational concept underlying XMLHttpRequest originated around the year 2000, conceptualized by developers working on Microsoft Outlook. This notion was subsequently integrated into the Internet Explorer 5 browser (released in 1999). Notably, the initial implementation did not utilize the standardized XMLHttpRequest identifier. Instead, proprietary constructor calls like ActiveXObject("Msxml2.XMLHTTP") and ActiveXObject("Microsoft.XMLHTTP") were employed. By the release of Internet Explorer 7 (2006), cross-browser compatibility ensured that the universally recognized XMLHttpRequest identifier was uniformly supported. The XMLHttpRequest identifier has since solidified its position as the established convention across all major browser engines, including Mozilla’s Gecko rendering engine (since 2002), Safari 1.2 (2004), and Opera 8.0 (2005).

=== Standardization Efforts === The World Wide Web Consortium (W3C) issued the initial Working Draft specification for the XMLHttpRequest object on April 5, 2006. A subsequent Working Draft for Level 2 was released by the W3C on February 25, 2008. Level 2 enhancements included mechanisms for tracking event progress, enabling cross-origin communications, and facilitating the handling of raw byte streams. By the conclusion of 2011, the features defined in the Level 2 specification were merged back into the primary specification document. In late 2012, stewardship over the standard transitioned to the WHATWG, which now maintains a continuously evolving document utilizing Web IDL definitions.

== Operational Workflow == The typical sequence for executing a server request via XMLHttpRequest involves several distinct programming stages.

  1. Instantiate an XMLHttpRequest object via its constructor:
  2. Invoke the "open" method to define the request method (e.g., GET, POST), specify the target resource Uniform Resource Identifier (URI), and select either synchronous or asynchronous execution mode:
  3. For asynchronous operations, establish an event handler function designed to monitor and react to state transitions occurring during the request cycle:
  4. Initiate the actual network transmission by calling the "send" method:
  5. Process status changes within the designated event listener. Upon successful data receipt from the server, the information is typically cached in the "responseText" attribute. Once the object completes processing the response cycle, its state transitions to 4, signifying the "done" status. Beyond these fundamental steps, XMLHttpRequest offers extensive customization for controlling transmission parameters and response interpretation. Custom header fields can be affixed to tailor server behavior, and payload data can be supplied to the server via parameters within the "send" invocation. Responses can be natively parsed from JSON format into manipulable JavaScript objects, or streamed progressively as data arrives instead of awaiting the full payload. Furthermore, the request can be terminated prematurely or configured with a timeout duration.

== Cross-domain Communications ==

In the nascent stages of the World Wide Web's evolution, limitations were encountered concerning the ability to initiate communication

See Also

`