Add a Remote MCP Server to Cline: Settings, Auth and Fixes
How to add a remote MCP server to Cline from the Remote Servers tab, the CLI or cline_mcp_settings.json, why a missing type falls back to SSE, how sign-in works, and how to fix one that will not connect.
The quickest way is the Remote Servers tab: in the Cline panel, click the MCP Servers icon in the top toolbar, open Remote Servers, enter a name and the server's URL, leave the transport on Streamable HTTP, and click Add Server [1].
To write it yourself, the same server is one entry in cline_mcp_settings.json:
{
"mcpServers": {
"my-server": {
"type": "streamableHttp",
"url": "https://mcp.example.com/mcp"
}
}
}
Everything below is checked against Cline's documentation, and where the documentation is silent against its source code, on 14 October 2026 [1][2][3].
TL;DR:
- Always write
"type": "streamableHttp". Leave it out and Cline uses the legacy SSE transport [1]. - One settings file for every Cline: VS Code, JetBrains, the CLI and the SDK all read
cline_mcp_settings.jsonin~/.cline/data/settings/[1][4]. - A server that needs sign-in shows an Authenticate button on its row [3].
timeoutis in seconds, default 60 [3].
Add the server
From the Remote Servers tab
The form asks for three things [1]:
| Field | What to put |
|---|---|
| Server Name | Any unique label, such as my-server |
| Server URL | The MCP endpoint itself, usually ending in /mcp, not the product's homepage |
| Transport Type | Streamable HTTP, which the form selects for you |
If the tab is missing, your organisation has turned off personal remote servers [3].
From the CLI
cline mcp opens a wizard, or add a server in one line [2]:
cline mcp add my-server https://mcp.example.com/mcp \
--transport http \
--header "Authorization: Bearer $MY_SERVER_TOKEN" --yes
cline config mcp lists what is configured [2]. The CLI writes to the same file the editor reads, so a server added here shows up in VS Code too [1].
In cline_mcp_settings.json
In the editor, open the MCP Servers icon, then the Configure tab, then Configure MCP Servers. That opens the settings file [1]. On disk it lives in ~/.cline/data/settings/, and you can point it elsewhere with the CLINE_MCP_SETTINGS_PATH environment variable [1].
A full remote entry, from Cline's own example [1]:
{
"mcpServers": {
"my-server": {
"type": "streamableHttp",
"url": "https://mcp.example.com/mcp",
"headers": {
"Authorization": "Bearer your-token"
},
"disabled": false,
"autoApprove": []
}
}
}
autoApprove lists tool names Cline may call without asking you first. Leave it empty for a server you have not vetted.
Why the type field matters
Cline's documentation is direct about it: "Omitting it defaults to the legacy sse transport for backward compatibility" [1]. So an entry with only a url, the shape Cursor's documentation uses, connects to a modern server with a transport it may no longer speak.
type |
Transport |
|---|---|
streamableHttp |
Streamable HTTP, what current servers speak |
sse, or no type at all |
SSE, the transport Streamable HTTP replaced |
stdio |
A local process |
Any other value fails with "Server type must be one of: 'stdio', 'sse', or 'streamableHttp'" [3]. Note the casing: streamableHttp, not streamable-http or http.
Keep the token out of the file
Cline's advice is to keep secrets in environment variables [1]. The VS Code extension expands ${env:VAR_NAME} in URLs and headers [3]:
"headers": {
"Authorization": "Bearer ${env:MY_SERVER_TOKEN}"
}
The CLI's documentation does not describe that syntax, so on the CLI pass the header with --header from a shell where the variable is set, as above.
Sign in to a server that needs it
When a server answers 401, its row in the MCP Servers panel says "This MCP server requires authentication to get started." and shows an Authenticate button [3]. Clicking it opens the server's sign-in page in your browser, and Cline sends the token it gets back as Authorization: Bearer [3]. On the CLI, the cline mcp wizard has an "Authorize OAuth" step that runs or reruns the browser sign-in [1].
Most servers let a client register itself during that sign-in. We read the authorization metadata of 169 servers that ask for credentials, from our registry census on 9 October 2026: 162 offered Dynamic Client Registration [5]. MCP OAuth covers what a server has to publish for this to work.
Timeouts
Each server has a timeout in seconds, default 60, between 1 and 3,600 [3]. A larger value is clamped to 3,600, because Cline reads it as a seconds and milliseconds mix-up [3]. You can also set it from the dropdown on the server's row [3].
"my-server": {
"type": "streamableHttp",
"url": "https://mcp.example.com/mcp",
"timeout": 180
}
A slow tool fails with "MCP request to "my-server" timed out after 60s." [3] Raising the limit is the quick fix; the lasting one is a tool that returns early and lets the client poll, which MCP server errors covers along with 406s, CORS and -32601.
When it will not connect
| What you see | Usual cause | Fix |
|---|---|---|
| A known-good server fails to connect | No type, so Cline spoke SSE |
Add "type": "streamableHttp" |
| "Server type must be one of ..." | type spelled differently |
Use streamableHttp exactly |
| "MCP settings schema error: no servers were loaded." [3] | Invalid JSON or an unknown field | Fix the file; one bad entry stops them all |
| "Invalid URL format" in the form [3] | A URL without https:// |
Paste the full endpoint |
401 with a header configured |
Token wrong, expired, or ${env:...} unset |
Check the variable where your editor starts |
| "requires authentication to get started" | The server uses sign-in | Click Authenticate |
| "timed out after 60s" | One slow tool | Raise timeout (seconds) |
| The Remote Servers tab is missing | Blocked by your organisation's settings | Ask your admin, or edit the file if allowed |
Check it from outside before you share it
Our MCP connection test calls your server from our network, runs the handshake and tools/list, and reports what a stranger on the internet gets back, with a dated URL you can share. If it passes there and fails in Cline, the problem is in your settings file, not the server.
The same setup in other clients is in Claude Code, Codex, Cursor, VS Code, Gemini CLI, GitHub Copilot CLI, Claude Desktop and ChatGPT, and remote MCP server vs stdio covers whether your server should have a public address at all.
Sources
- MCP overview, Cline docs
- CLI reference, Cline docs
- Cline source code, GitHub: the settings schema,
McpHub.ts, the Remote Servers form and the shared MCP timeout rules, read on 14 October 2026 - Configuration, Cline docs
- Dynamic Client Registration, MCP Hunter glossary