diff --git a/apps/web/components/settings/external-mcp-settings.tsx b/apps/web/components/settings/external-mcp-settings.tsx index ae15d1c6d3..31913e6eb1 100644 --- a/apps/web/components/settings/external-mcp-settings.tsx +++ b/apps/web/components/settings/external-mcp-settings.tsx @@ -70,7 +70,14 @@ export function ExternalMcpSettings() { discoveryTargetId={STANDALONE_SETTINGS_TARGETS.externalMcpEndpoints} icon={} title={t("settings:externalMcpEndpoints")} - description={t("settings:externalMcpEndpointsDescription")} + // `localhost` is a hostname the user types, not copy. Interpolated so + // the pseudo-locale leaves it intact — baked into the message it renders + // as `ĺōćàĺĥōśţ`, a dead pointer to something the reader must reproduce + // verbatim. Same reasoning as `voiceUnavailableInsecure`, which already + // passes its scheme and host as values. + description={t("settings:externalMcpEndpointsDescription", { + localhostHost: "localhost", + })} > diff --git a/apps/web/src/locales/en/settings.json b/apps/web/src/locales/en/settings.json index c8bb95e5f5..ba97c2870d 100644 --- a/apps/web/src/locales/en/settings.json +++ b/apps/web/src/locales/en/settings.json @@ -482,7 +482,7 @@ "externalMcpIntro": "Use this if you want to manage Kandev from coding agents that run <2>outside Kandev (e.g. Claude Code, Cursor, or Codex on your host), or from <4>passthrough agents running inside Kandev.", "externalMcpIntroPassthrough": "Agents launched inside Kandev in their normal mode already have the Kandev MCP wired in automatically, no setup needed.", "externalMcpEndpoints": "Endpoints", - "externalMcpEndpointsDescription": "Available on the same host and port as Kandev. Use localhost for same-machine agents, or the reachable Kandev URL for LAN, VPN, and reverse-proxy clients.", + "externalMcpEndpointsDescription": "Available on the same host and port as Kandev. Use {{localhostHost}} for same-machine agents, or the reachable Kandev URL for LAN, VPN, and reverse-proxy clients.", "externalMcpStreamableHttp": "Streamable HTTP", "externalMcpStreamableHttpHint": "Recommended for Claude Code, Cursor, and Codex.", "externalMcpSse": "Server-Sent Events (SSE)", diff --git a/apps/web/src/locales/pseudo/settings.json b/apps/web/src/locales/pseudo/settings.json index 6ec388526c..407da6fe28 100644 --- a/apps/web/src/locales/pseudo/settings.json +++ b/apps/web/src/locales/pseudo/settings.json @@ -482,7 +482,7 @@ "externalMcpIntro": "Ũśē ţĥĩś ĩƒ ŷōũ ŵàńţ ţō ḿàńàĝē Ķàńďēv ƒŕōḿ ćōďĩńĝ àĝēńţś ţĥàţ ŕũń <2>ōũţśĩďē Ķàńďēv (ē.ĝ. Ćĺàũďē Ćōďē, Ćũŕśōŕ, ōŕ Ćōďēx ōń ŷōũŕ ĥōśţ), ōŕ ƒŕōḿ <4>ƥàśśţĥŕōũĝĥ àĝēńţś ŕũńńĩńĝ ĩńśĩďē Ķàńďēv.", "externalMcpIntroPassthrough": "Àĝēńţś ĺàũńćĥēď ĩńśĩďē Ķàńďēv ĩń ţĥēĩŕ ńōŕḿàĺ ḿōďē àĺŕēàďŷ ĥàvē ţĥē Ķàńďēv ḾĆƤ ŵĩŕēď ĩń àũţōḿàţĩćàĺĺŷ, ńō śēţũƥ ńēēďēď.", "externalMcpEndpoints": "Ēńďƥōĩńţś", - "externalMcpEndpointsDescription": "Àvàĩĺàƀĺē ōń ţĥē śàḿē ĥōśţ àńď ƥōŕţ àś Ķàńďēv. Ũśē ĺōćàĺĥōśţ ƒōŕ śàḿē-ḿàćĥĩńē àĝēńţś, ōŕ ţĥē ŕēàćĥàƀĺē Ķàńďēv ŨŔĹ ƒōŕ ĹÀŃ, VƤŃ, àńď ŕēvēŕśē-ƥŕōxŷ ćĺĩēńţś.", + "externalMcpEndpointsDescription": "Àvàĩĺàƀĺē ōń ţĥē śàḿē ĥōśţ àńď ƥōŕţ àś Ķàńďēv. Ũśē {{localhostHost}} ƒōŕ śàḿē-ḿàćĥĩńē àĝēńţś, ōŕ ţĥē ŕēàćĥàƀĺē Ķàńďēv ŨŔĹ ƒōŕ ĹÀŃ, VƤŃ, àńď ŕēvēŕśē-ƥŕōxŷ ćĺĩēńţś.", "externalMcpStreamableHttp": "Śţŕēàḿàƀĺē ĤŢŢƤ", "externalMcpStreamableHttpHint": "Ŕēćōḿḿēńďēď ƒōŕ Ćĺàũďē Ćōďē, Ćũŕśōŕ, àńď Ćōďēx.", "externalMcpSse": "Śēŕvēŕ-Śēńţ Ēvēńţś (ŚŚĒ)",