MCP Server
The LiveScript MCP server exposes transcript tools over the Model Context Protocol, so an AI agent — Claude Desktop, Claude Code, Cursor, or any client that speaks MCP — can pull YouTube transcripts directly from a chat or coding session. No CLI install, no binary download.
Connection URL
https://livescript.live/api/v1/mcpThe transport is HTTP-streamable — the standard for remote MCP servers. Claude Desktop, Claude Code, Cursor, and the MCP Inspector all support it natively.
Authentication
The same ls_live_ API key you'd use for a direct API call works here. Create and manage keys in your dashboard. Treat a key like a password — never paste it into a public repo or client-side code. See Authentication.
The server accepts the key three ways, in this priority order:
| Method | How |
|---|---|
| Authorization: Bearer <key> | The standard for HTTP-streamable MCP clients (Claude Desktop, Claude Code, Cursor). |
| x-access-key: <key> | A plain header, for clients that set custom headers under a different name. |
| ?access_key=<key> | Query string, for clients that can't set custom headers at all. |
Tools are listed even without a key — a call only fails (with a clean AUTHENTICATION_FAILED surfaced back to the model) once the agent actually tries to invoke one.
Add to Claude Desktop
Open Settings → Developer → Edit Config and add a livescript entry under mcpServers:
{
"mcpServers": {
"livescript": {
"url": "https://livescript.live/api/v1/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Restart Claude Desktop. The tools appear in the tools panel. Try asking: "Get the transcript of this YouTube video: https://www.youtube.com/watch?v=…"
Add to Claude Code
From any project directory:
claude mcp add --transport http livescript https://livescript.live/api/v1/mcp \
--header "Authorization: Bearer YOUR_API_KEY"Claude Code picks the tools up on the next session.
Add to Cursor
Open Settings → MCP → + Add new MCP server and use:
{
"livescript": {
"url": "https://livescript.live/api/v1/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}Use it from any MCP client
Any client that speaks JSON-RPC 2.0 over HTTP-streamable transport works. Minimum viable call — list the tools and their input schemas:
curl -X POST https://livescript.live/api/v1/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}'Available tools
| Tool | Description |
|---|---|
| get_yt_transcript | Fetch the full transcript of a non-live YouTube video, by URL or ID. |
More tools will be added over time; this list is the source of truth.
get_yt_transcript
Fetches the full transcript of a YouTube video that is not currently live. Returns the transcript as timestamped text plus structured segments (the same shape as the REST /api/v1/transcript response). Live streams require the live WebSocket API instead.
| Field | Type | Required | Description |
|---|---|---|---|
| video_url | string | yes | A YouTube URL (watch, youtu.be, live, shorts, or embed form) or a bare 11-character video ID. |
Example: call a tool directly
curl -X POST https://livescript.live/api/v1/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_yt_transcript",
"arguments": {
"video_url": "https://www.youtube.com/watch?v=abc123DEF45"
}
}
}'The response (streamed as Server-Sent Events) contains a content array with a human-readable timestamped transcript, plus structuredContent with the individual segments.
Troubleshooting
| Symptom | Cause / fix |
|---|---|
| Tools appear but every call returns AUTHENTICATION_FAILED | Your key isn't reaching the server. Re-check the Authorization: Bearer header in your client config. |
| A call returns PLAN_REQUIRED | The key's account has no active Pro subscription. The transcript tool requires an active plan. |
| A call returns SOURCE_IS_LIVE | The video is currently live. Use the live WebSocket API for active streams; this tool is for finished videos. |
| A call returns CAPTIONS_UNAVAILABLE | That video has no captions available. Nothing to fetch. |
| A call returns RATE_LIMITED | You've hit the daily transcript request cap for your plan. Wait and retry. |
| The tool doesn't appear in your client | Restart the client, or confirm it supports HTTP-streamable transport. Run the tools/list curl below to check the server is reachable. |
Security reminders
- Treat your API key like a password — it grants full API access and consumes usage.
- Never commit your key in a shared MCP config that lands in a public repo. Use your client's secret / environment-variable support instead.
- Rotate the key from your dashboard if you suspect it's been exposed.