# Guide: Registering `mcp-browser-youtube-transcript` with Docker MCP
This guide details how to package the `mcp-browser-youtube-transcript` server as a Docker image and register it with the Docker MCP CLI so it can be used by VS Code and other clients.
## Prerequisites
* Docker Desktop installed.
* The `docker mcp` CLI available.
* Terminal open in `experiments/mcp-browser-youtube-transcript`.
## Step 1: Build the Docker Image
First, we need to build the image that contains the Node.js server and the Chromium browser dependencies.
```bash
cd experiments/mcp-browser-youtube-transcript
docker build -t mcp-browser-youtube-transcript:latest .
```
* **Note**: The `Dockerfile` is already configured to install `chromium` and set `PUPPETEER_EXECUTABLE_PATH`, ensuring Puppeteer works inside the container.
## Step 2: Create a Catalog Definition
Create a file named `mcp.yaml` (or `catalog.yaml`) in the project directory to define the server for the Docker MCP registry.
**File:** `experiments/mcp-browser-youtube-transcript/mcp.yaml`
```yaml
registry:
browser-youtube:
description: Fetches YouTube transcripts using browser automation (Puppeteer).
title: Browser YouTube Transcript
type: server
image: mcp-browser-youtube-transcript:latest
```
## Step 3: Register with Docker MCP
Now, add this definition to your local Docker MCP catalog.
1. **Create a catalog** (if you haven't already):
```bash
docker mcp catalog create local-dev
```
2. **Add the server**:
```bash
docker mcp catalog add local-dev browser-youtube mcp.yaml
```
## Step 4: Enable the Server
Enable the server to make it active in the Docker MCP runtime.
```bash
docker mcp server enable browser-youtube
```
## Step 5: Verify
Check that the server is running and recognized.
```bash
docker mcp server ls
```
You should see `browser-youtube` in the list.
## Step 6: Use in VS Code
To use this server in VS Code Insiders (GitHub Copilot):
1. Open your MCP settings (Command Palette -> "MCP: Manage MCP Servers").
2. Add the following configuration:
```json
{
"mcpServers": {
"browser-youtube": "mcp/browser-youtube"
}
}
```
* **Note**: We use the server name `browser-youtube` defined in the catalog, prefixed with `mcp/`.
## Troubleshooting
If the server fails to start or Puppeteer crashes:
1. **Inspect Logs**:
```bash
docker logs <container_id>
```
(You can find the container ID via `docker ps` when it's running, or by running it manually).
2. **Manual Run Test**:
Try running it manually to see if it outputs JSON-RPC messages (it should hang waiting for input, but not crash immediately):
```bash
docker run -i --rm mcp-browser-youtube-transcript:latest
```