Back to Guides
Workflow9 minUpdated Sep 21, 2026

How to Connect Cline to a YouTube MCP Server

Cline adds the Prepublish YouTube script audit from its Remote Servers tab or from the MCP settings JSON, and one field decides whether it connects at all: the transport type has to say streamableHttp, because leaving it out defaults to the legacy SSE transport that this server does not serve.

TL;DR

Cline adds the Prepublish YouTube script audit from the MCP Servers icon, the Configure tab, and then either the Remote Servers tab or the extension MCP settings JSON, with the server URL set to https://mcp.prepublish.ai and the transport set to streamableHttp. Omitting the type makes Cline use the legacy SSE transport, which this server does not serve. A local stdio entry with npx -y prepublish-mcp works as well.

Try it on your own script

Paste your draft below. You get your hook, structure, and pacing scores, a script-level attention-risk map, and the single biggest issue quoted from your own lines. Free, no login.

Free · No login · See a sample audit first if you prefer.

Key Takeaways

  • Cline adds Prepublish from the MCP Servers icon, then the Configure tab, then either the Remote Servers tab or the extension MCP settings JSON
  • The transport type has to say streamableHttp, because Cline defaults an entry without a type to the legacy SSE transport and this server serves Streamable HTTP
  • The CLI keeps its own file at ~/.cline/mcp.json, and cline config mcp --json prints what it is reading
  • audit_script polls for up to 90 seconds inside one request, so a short Cline MCP timeout cuts it off and the recovery is get_audit with the returned analysis_id
  • The filename cline_mcp_settings.json was not named on the docs.cline.bot page read on 2026-09-21
  • The default free tier is 100 AI-backed anonymous calls per UTC day across the endpoint and 6 per caller per 10 minutes, published in prepublish-fe/lib/mcp/limits.ts

Key Statistics

  • •Cline documents a remote MCP server as an entry with a url and a type of streamableHttp, and states that omitting the type defaults to the legacy sse transport (https://docs.cline.bot/mcp/mcp-overview, read 2026-09-21).
  • •The Cline CLI keeps its MCP configuration in ~/.cline/mcp.json, and the extension opens its own MCP settings JSON from the Configure tab (https://docs.cline.bot/mcp/mcp-overview, read 2026-09-21).
  • •audit_script polls the backend for up to 90 seconds inside one request and returns an analysis_id for get_audit when the audit has not settled (prepublish-fe/lib/mcp/tools.ts).
  • •The default free tier is 100 AI-backed anonymous calls per UTC day across the endpoint and 6 per anonymous caller per 10 minutes (prepublish-fe/lib/mcp/limits.ts).

How to Connect Cline to a YouTube MCP Server

Cline adds Prepublish as a remote MCP server, either from the Remote Servers tab in its MCP settings or as one entry in the extension's MCP settings JSON:

{
  "mcpServers": {
    "prepublish": {
      "type": "streamableHttp",
      "url": "https://mcp.prepublish.ai"
    }
  }
}

That type field is not decoration. Cline's documentation states that omitting it defaults to the legacy sse transport, and Prepublish serves Streamable HTTP, so an entry without the type asks for a transport that is not there. The shared reference, including the six tools and the published limits, is the Claude Code hub guide. This page covers what is specific to Cline.

The click path in the Cline extension

Cline documents two routes in MCP, read on 2026-09-21.

The Remote Servers tab, which is the shortest path. In the Cline panel, click the MCP Servers icon, the stacked server icon in the top toolbar. Open the Configure tab. Then, instead of editing JSON, use the Remote Servers tab and fill in three fields: Server Name, which is any unique label, Server URL, which is https://mcp.prepublish.ai, and Transport Type, where you choose Streamable HTTP rather than SSE (Legacy). Click Add Server.

The settings JSON. In the same Configure tab, click Configure MCP Servers, which the documentation describes as the button near the bottom that opens the MCP settings JSON used by the extension. Add the entry shown above under mcpServers, save, and the server appears in the list.

One naming note. The page read on 2026-09-21 calls the extension's file the MCP settings JSON and gives ~/.cline/mcp.json as the CLI file. It does not name cline_mcp_settings.json, the filename that circulates in third-party guides, so that name was not verified on the vendor page on 2026-09-21. Use the button in the panel, which opens the file the extension actually reads.

The CLI route, and where the CLI keeps its config

Cline's CLI carries the same server definitions and its own configuration file at ~/.cline/mcp.json, per the same page.

The wizard handles it interactively. Run cline mcp and the menu can list servers and their enabled state, add a server, edit one, enable or disable one without deleting it, and delete one. Adding a server prompts for the name, the transport type, and then either a command and arguments for a local server or a URL and headers for a remote one.

The non-interactive route lists what is configured: cline config mcp prints the servers and cline config mcp --json prints them as JSON. That confirms the entry you added is the entry Cline is reading.

The page's security guidance applies here directly: keep secrets in environment variables, and limit autoApprove to tools you would let run unattended. Three of the six tools take an email address or a script you may not want auto-submitted, so leaving autoApprove empty is the conservative setting.

Cline's own failure modes, and what the server answers

Five failures are Cline's rather than the server's.

The transport type defaults to SSE. A remote entry with a url and no type is read as the legacy sse transport, per the documentation. Prepublish answers a POST with one JSON response and no event stream, and a GET returns the server card rather than an SSE stream, so an SSE client has nothing to subscribe to. Set "type": "streamableHttp".

The server is disabled or was never restarted. Enable, disable and restart are separate controls, and a disabled server is not an error, it is absent. Restart the server from the MCP settings panel after a change.

The request times out on a full audit. Cline's troubleshooting table names timeout errors and the fix of increasing the MCP timeout. This one matters before you run audit_script: that tool starts an asynchronous backend job and polls for up to 90 seconds inside the same request, per prepublish-fe/lib/mcp/tools.ts. A shorter client timeout cuts the call off before the audit settles. The audit is not lost, because the tool returns an analysis_id and tells the model to collect it with get_audit, so the recovery is one more tool call.

No tools appear. The troubleshooting table gives the fix directly: confirm the server started and exposes tools. A reachable endpoint with a failed tool list is almost always the transport mismatch above.

An authentication error appears for an entry you did not think needed one. Only the optional pp_live_ key lives in headers, so an empty headers object is correct and a malformed Authorization header is the usual cause.

When the problem is on the server side, the response says what it is. These strings come from the endpoint's own code.

What you seeWhat produced it
Origin "https://example.com" may not connect to this MCP endpointA request arrived with an Origin header the deployment does not list. Revision 2025-11-25 of the transport requires this 403 (prepublish-fe/app/mcp/route.ts). A request that sends no origin, which is the normal case for an editor extension, is allowed
Unsupported MCP-Protocol-Version "2024-10-07"A request declared a revision this server does not implement, and the response lists the supported ones
Request body is not valid JSONA manual call sent a body that did not parse
Unknown tool "no_such_tool"A misspelled name or a stale tool list. Re-run tools/list
Method "resources/read" is not implemented by this serverThis server declares the tools capability only. resources/list and prompts/list return empty arrays, and any other method lands here
Prepublish's free MCP endpoint has reached its daily limit of 100 AI-backed calls (it resets at 00:00 UTC). ...The shared anonymous counter for the UTC day is spent
This connection has used its 6 free Prepublish AI checks for now; the allowance resets in about N minute(s). ...Six AI-backed calls arrived from one caller inside ten minutes
Prepublish needs an email address to continue: ...A free full audit is released by email, and the backend rejected the request without an address

The hosted URL or the stdio bridge in Cline

Cline supports both shapes, so the decision is yours rather than the client's.

Cline's examples show a local server as command plus args plus env, and a remote one as type plus url plus optional headers. Prepublish swaps which one you write:

{
  "mcpServers": {
    "prepublish": {
      "command": "npx",
      "args": ["-y", "prepublish-mcp"]
    }
  }
}

Use the hosted URL by default. It needs no Node installation, it is one line, and it keeps the tool list identical to every other client's.

Use the bridge when you want the process on your machine. It connects to the same hosted endpoint and re-serves it over stdio, and prepublish-mcp/test/bridge.test.ts asserts that its sorted tool names equal the six in the hosted list. It needs Node 20 or newer, per the engines field in prepublish-mcp/package.json, and PREPUBLISH_MCP_URL and PREPUBLISH_TOKEN point it elsewhere or authenticate it. On startup it writes one line to stderr naming the upstream URL, the tool count and whether a token was supplied, which is what Cline's server output shows if the process starts and then fails.

A first run in Cline

Ask for the free arithmetic first, because it proves the connection and costs nothing:

Use the prepublish server to tell me how many words I need for a twelve minute video, and how long a 2,400 word script would run.

The response carries speaking_rates_words_per_minute with fast, median and slow, a source string, a caveat string, word_count, runtime_minutes and word_budget, the last two each with the same three keys. The rates are the measured ones in prepublish-fe/lib/seo/wpm-data.ts. Computed from them, 2,400 words is 15 minutes at 160 words per minute, 13.3 at 181 and 11.9 at 201, and a twelve minute target needs 1,920 words at the slow rate, 2,172 at the median and 2,412 at the fast rate. The caveat field carries the limit in the payload: speaking time only, with pauses, B-roll, demonstrations and edits adding time.

Then hand over an opening, which is where a coding agent is comfortable:

Use the prepublish server to audit this hook and name the sentence that loses attention first: "Most creators lose half their viewers in the first fifteen seconds, and the reason is rarely the editing."

audit_hook takes hook_text, an optional niche and an optional email, and returns a hook object with evaluation_id, hook_text, niche, overall_score, grade, one_sentence_verdict, sentences, top_issues, rewrites, model_used and created_at. Each entry in sentences carries its own attention read, and each rewrite is written to be pasted over the line it replaces. This tool counts against the allowance.

The payload repeats its own limit, and the model relays it: "This is a text-only check of an unrecorded script. It maps relative attention risk inside the draft. It does not measure or predict published YouTube retention, and it cannot account for delivery, editing, thumbnail, topic or distribution."

Limits on the Cline connection

The check reads text. It does not watch a video, fetch a transcript or read your channel, and no result is a forecast of audience behaviour.

The free tier is published in prepublish-fe/lib/mcp/limits.ts, and the values in force for the current day are in the server card at https://mcp.prepublish.ai.

LimitDefaultWindow
AI-backed anonymous calls across the whole endpoint100One UTC day
AI-backed anonymous calls per caller610 minutes
AI-backed calls per authenticated caller3010 minutes
script_runtime and get_auditUnlimitedNone

A full audit is released by email, so audit_script asks for an address and the backend rejects a request without one. The narrower checks do not ask. An optional pp_live_ API key in the headers block takes the call out of the shared daily cap and applies your account's plan quota instead, and it is the reason Cline's own advice to keep secrets in environment variables is worth following here.

Frequently asked questions

How do I add an MCP server to Cline?

Open the Cline panel, click the MCP Servers icon in the top toolbar, and open the Configure tab. The quickest route is the Remote Servers tab: give the server a name, paste https://mcp.prepublish.ai as the URL, choose Streamable HTTP as the transport type, and click Add Server. The other route is Configure MCP Servers, which opens the extension MCP settings JSON where you add an entry under mcpServers.

Where is the Cline MCP settings file?

The documentation read on 2026-09-21 names ~/.cline/mcp.json for the CLI and describes the extension's file only as the MCP settings JSON that the Configure MCP Servers button opens. The filename cline_mcp_settings.json appears in third-party guides but was not on the vendor page on 2026-09-21. Click the button in the panel, because that always opens the file the extension reads.

Why does Cline keep showing no tools for the server?

Check the transport first. Cline's documentation states that a remote entry without a type field is read as the legacy sse transport, and Prepublish serves Streamable HTTP, so the entry needs "type": "streamableHttp" beside the url. Then check that the server is enabled rather than disabled in the list, and restart it from the MCP settings panel. The documentation's own entry for missing tools asks you to confirm the server started and exposes tools.

Why does audit_script time out in Cline while other tools work?

Because audit_script is the slow one by design. It starts an asynchronous audit and polls for up to 90 seconds inside the same request, so a shorter client timeout cuts it off before the result settles. The audit is not lost: the tool returns an analysis_id and instructs the model to call get_audit with it. Raising the MCP request timeout in Cline's settings is the other fix, and it is the one the documentation names for timeout errors.

Does Cline support remote MCP servers, or only local ones?

Both, and its documentation shows both shapes on the same page: a local server as command plus args plus env, and a remote server as type plus url plus optional headers. Prepublish works either way, with the hosted URL or through npx -y prepublish-mcp as a local stdio process. The bridge adds and hides nothing, and a test asserts that its tool list equals the hosted one.

Is the YouTube MCP server free in Cline?

Yes. The endpoint is anonymous and needs no account, API key or card, and the free tier is published in prepublish-fe/lib/mcp/limits.ts. Two of the six tools, script_runtime and get_audit, are unlimited, while the four AI-backed checks share a daily cap of 100 anonymous calls. An optional pp_live_ API key in the headers block lifts the shared cap.

What happens when the daily allowance is spent?

The tool returns an error naming the daily limit of 100 AI-backed calls, saying it resets at 00:00 UTC, and telling the model not to retry. A separate per-caller message reports that this connection has used its 6 free checks for now, with the reset given in minutes. Both are tool-level errors, so they appear in the conversation. Cline's autoApprove setting does not change any of this, it only changes whether you are asked first.

Is there a Cline marketplace listing for this server?

The docs.cline.bot index read on 2026-09-21 lists an MCP page and an enterprise MCP controls page, and no marketplace page, so the marketplace install flow was not verified on that date. Nothing here depends on it: the Remote Servers tab and the MCP settings JSON are both documented and both accept this endpoint.

Related Guides

Free tools to put this into practice

Want to see how this reads on real channels? Browse the channel breakdowns. Each one compares script patterns across a channel's own higher-viewed and lower-viewed uploads, quoted from the transcripts.

See where your next script leaks viewers

Paste your script, get your scores and the biggest leak for free. No login.