All commands to set up and test the MCP server.
cd /path/to/mcp
npm install
npm run buildnpm testRuns Jest: listTools, delete_transcript validation, createMcpServer.
npm run start:httpServer at http://localhost:8080. API key comes from client headers. Keep running.
Get API key from youtubetranscript.dev/dashboard/account.
Hosted MCP (no local server): https://mcp.youtubetranscript.dev
Claude Code:
claude mcp add --transport http ytscribe https://mcp.youtubetranscript.dev --header "x-api-token: YOUR_API_KEY"Cursor – .cursor/mcp.json:
{
"mcpServers": {
"ytscribe": {
"url": "https://mcp.youtubetranscript.dev",
"headers": { "x-api-token": "YOUR_API_KEY" }
}
}
}Antigravity: URL https://mcp.youtubetranscript.dev, header x-api-token: YOUR_API_KEY
Local server: If running npm run start:http, use http://localhost:8080 instead.
# Set API key first
export YTSM_API_KEY=your_key # bash/mac
$env:YTSM_API_KEY="your_key" # PowerShell
# Test all tools (transcribe, list, get, etc.)
npm run test:all
# Verify flows (account details, ASR, get_job)
npm run verify
# Integration test (listTools + list_transcripts + transcribe)
npm run test:integrationBuild stdio image:
docker build -t youtube-transcript-mcp:latest .Run stdio (for subprocess clients):
docker run -it --rm -e YTSM_API_KEY=your_key youtube-transcript-mcp:latestBuild HTTP image:
docker build -f Dockerfile.cloudrun -t youtube-transcript-mcp:http .Run HTTP (for Cursor/Claude etc.):
docker run -p 8080:8080 youtube-transcript-mcp:httpThen connect clients to http://localhost:8080 with x-api-token header.
(Or use hosted: https://mcp.youtubetranscript.dev — no Docker needed.)
Docker Compose (stdio):
YTSM_API_KEY=your_key docker compose run --rm mcpTest Docker image:
YTSM_API_KEY=your_key npm run test:dockernpm run lint
npm run typecheck| Command | What it does |
|---|---|
npm test |
Unit tests |
npm run start:http |
Start HTTP server (localhost:8080) |
npm run test:all |
E2E all tools (needs YTSM_API_KEY) |
npm run verify |
E2E flow verification (needs YTSM_API_KEY) |
npm run test:integration |
Integration test (needs YTSM_API_KEY) |
npm run test:docker |
Test Docker stdio image (needs YTSM_API_KEY) |
Tools: get_stats, transcribe_v2, list_transcripts, get_transcript, delete_transcript