YouTube Music MCP Server
by mondweep
# YouTube Music MCP Server
## Overview
This project implements a Model Context Protocol (MCP) server that enables AI models to control YouTube Music playback through Google Chrome. It bridges the gap between AI assistants and music playback, allowing AI to search for and play songs based on song names and artist names.
## What is MCP?
The Model Context Protocol (MCP) is a standardized way for AI models to interact with external tools and services. It provides a structured communication protocol that allows AI assistants to:
- Discover available tools
- Understand tool capabilities
- Execute actions through these tools
- Handle responses and errors consistently
Learn more about MCP:
- [MCP Documentation](https://github.com/modelcontextprotocol/protocol)
- [MCP SDK](https://github.com/modelcontextprotocol/sdk)
## Features
- Search YouTube Music for songs
- Play songs directly in Google Chrome
- Support for song name and artist name search
- Error handling and logging
- Cross-platform support (focused on macOS for Chrome automation)
## Architecture
### High-Level Overview
# youtube-music-server MCP Server
A Model Context Protocol server
This is a TypeScript-based MCP server that implements a simple notes system. It demonstrates core MCP concepts by providing:
- Resources representing text notes with URIs and metadata
- Tools for creating new notes
- Prompts for generating summaries of notes
## Features
### Resources
- List and access notes via `note://` URIs
- Each note has a title, content and metadata
- Plain text mime type for simple content access
### Tools
- `create_note` - Create new text notes
- Takes title and content as required parameters
- Stores note in server state
### Prompts
- `summarize_notes` - Generate a summary of all stored notes
- Includes all note contents as embedded resources
- Returns structured prompt for LLM summarization
## Development
Install dependencies:
```bash
npm install
```
Build the server:
```bash
npm run build
```
For development with auto-rebuild:
```bash
npm run watch
```
## Installation
To use with Claude Desktop, add the server config:
On MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
On Windows: `%APPDATA%/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"youtube-music-server": {
"command": "/path/to/youtube-music-server/build/index.js"
}
}
}
```
### Debugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the [MCP Inspector](https://github.com/modelcontextprotocol/inspector), which is available as a package script:
```bash
npm run inspector
```
The Inspector will provide a URL to access debugging tools in your browser.