From 12099b4f8cd10002810438bd309e208169960107 Mon Sep 17 00:00:00 2001
From: Clawd <ai@clawd.bot>
Date: Sun, 1 Mar 2026 08:45:09 -0800
Subject: feat(settings): add MCP server configuration

- Add McpSettings component with add/edit/delete server UI
- Support stdio (command + args + env) and sse/http (url + headers) transports
- Array builder for args, key-value builder for env vars and headers
- Pass mcpServers config to SDK query() calls
- Store config as JSON in settings table
---
 renderer/src/components/SettingsPage.tsx | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

(limited to 'renderer/src/components/SettingsPage.tsx')

diff --git a/renderer/src/components/SettingsPage.tsx b/renderer/src/components/SettingsPage.tsx
index d3ff4bf..7d06547 100644
--- a/renderer/src/components/SettingsPage.tsx
+++ b/renderer/src/components/SettingsPage.tsx
@@ -2,8 +2,9 @@ import React, { useState } from "react";
 import { SystemPromptsSettings } from "./settings/SystemPromptsSettings";
 import { GitSettings } from "./settings/GitSettings";
 import { ModelSettings } from "./settings/ModelSettings";
+import { McpSettings } from "./settings/McpSettings";
 
-type SettingsSection = "model" | "system-prompts" | "git";
+type SettingsSection = "model" | "mcp" | "system-prompts" | "git";
 
 interface SettingsPageProps {
   onClose: () => void;
@@ -40,6 +41,14 @@ export function SettingsPage({ onClose }: SettingsPageProps) {
           >
             Model
           </button>
+          <button
+            className={`settings-nav-item${
+              activeSection === "mcp" ? " active" : ""
+            }`}
+            onClick={() => setActiveSection("mcp")}
+          >
+            MCP Servers
+          </button>
           <button
             className={`settings-nav-item${
               activeSection === "system-prompts" ? " active" : ""
@@ -61,6 +70,7 @@ export function SettingsPage({ onClose }: SettingsPageProps) {
         {/* Content */}
         <div className="settings-content">
           {activeSection === "model" && <ModelSettings />}
+          {activeSection === "mcp" && <McpSettings />}
           {activeSection === "system-prompts" && <SystemPromptsSettings />}
           {activeSection === "git" && <GitSettings />}
         </div>
-- 
cgit v1.2.3

