diff --git a/studio/frontend/src/components/assistant-ui/thread.tsx b/studio/frontend/src/components/assistant-ui/thread.tsx
index 26fc60d972..b7e0f35d35 100644
--- a/studio/frontend/src/components/assistant-ui/thread.tsx
+++ b/studio/frontend/src/components/assistant-ui/thread.tsx
@@ -44,6 +44,7 @@ import {
} from "@/components/ui/dropdown-menu";
import { sentAudioNames } from "@/features/chat/api/chat-adapter";
import { parseExternalModelId } from "@/features/chat/external-providers";
+import { McpComposerButton } from "@/features/chat/mcp-composer-button";
import { getExternalReasoningCapabilities } from "@/features/chat/provider-capabilities";
import { useChatRuntimeStore } from "@/features/chat/stores/chat-runtime-store";
import { useExternalProvidersStore } from "@/features/chat/stores/external-providers-store";
@@ -1215,6 +1216,7 @@ const ComposerAction: FC<{
+
diff --git a/studio/frontend/src/features/chat/chat-mcp-servers-dialog.tsx b/studio/frontend/src/features/chat/chat-mcp-servers-dialog.tsx
index b377e7a88e..93c4c8972c 100644
--- a/studio/frontend/src/features/chat/chat-mcp-servers-dialog.tsx
+++ b/studio/frontend/src/features/chat/chat-mcp-servers-dialog.tsx
@@ -178,6 +178,8 @@ function HeadersEditor({
export interface ChatMcpServersDialogProps {
open: boolean;
onOpenChange: (open: boolean) => void;
+ /** Open straight into the "add server" form instead of the list view. */
+ openToCreate?: boolean;
}
type View =
@@ -188,6 +190,7 @@ type View =
export function ChatMcpServersDialog({
open,
onOpenChange,
+ openToCreate = false,
}: ChatMcpServersDialogProps) {
const [servers, setServers] = useState([]);
const [loading, setLoading] = useState(false);
@@ -214,7 +217,12 @@ export function ChatMcpServersDialog({
useEffect(() => {
if (!open) return;
refresh();
- }, [open, refresh]);
+ // Land on the create form when opened via "Add custom MCP".
+ if (openToCreate) {
+ setView({ kind: "create" });
+ setForm(EMPTY_FORM);
+ }
+ }, [open, openToCreate, refresh]);
function startCreate() {
setView({ kind: "create" });
diff --git a/studio/frontend/src/features/chat/chat-settings-sheet.tsx b/studio/frontend/src/features/chat/chat-settings-sheet.tsx
index b19aa68551..a6e42d18fc 100644
--- a/studio/frontend/src/features/chat/chat-settings-sheet.tsx
+++ b/studio/frontend/src/features/chat/chat-settings-sheet.tsx
@@ -90,8 +90,6 @@ import {
providerSupportsFastMode,
} from "./provider-capabilities";
import { useChatRuntimeStore } from "./stores/chat-runtime-store";
-import { ChatMcpServersDialog } from "./chat-mcp-servers-dialog";
-import { listMcpServers } from "./api/mcp-servers-api";
import type { InferenceParams } from "./types/runtime";
export { defaultInferenceParams, type Preset } from "./presets/preset-policy";
@@ -1332,12 +1330,6 @@ export function ChatSettingsPanel({
) : null}
-
- {!isExternalModel ? (
-
-
-
- ) : null}