MCPcopy Create free account
hub / github.com/codeaashu/claude-code / McpSettings

Function McpSettings

web/components/settings/McpSettings.tsx:129–256  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

127}
128
129export function McpSettings() {
130 const { settings, updateSettings } = useChatStore();
131 const [showAddForm, setShowAddForm] = useState(false);
132 const [newServer, setNewServer] = useState<Omit<MCPServerConfig, "id">>({
133 name: "",
134 command: "",
135 args: [],
136 env: {},
137 enabled: true,
138 });
139
140 function updateServer(id: string, updated: MCPServerConfig) {
141 updateSettings({
142 mcpServers: settings.mcpServers.map((s) => (s.id === id ? updated : s)),
143 });
144 }
145
146 function deleteServer(id: string) {
147 updateSettings({
148 mcpServers: settings.mcpServers.filter((s) => s.id !== id),
149 });
150 }
151
152 function addServer() {
153 if (!newServer.name.trim() || !newServer.command.trim()) return;
154 updateSettings({
155 mcpServers: [...settings.mcpServers, { ...newServer, id: nanoid() }],
156 });
157 setNewServer({ name: "", command: "", args: [], env: {}, enabled: true });
158 setShowAddForm(false);
159 }
160
161 return (
162 <div>
163 <SectionHeader title="MCP Servers" />
164
165 <p className="text-xs text-surface-400 mb-4">
166 Model Context Protocol servers extend Claude with external tools and data sources.
167 </p>
168
169 <div className="space-y-2 mb-4">
170 {settings.mcpServers.length === 0 ? (
171 <div className="text-center py-8 text-surface-500 text-sm">
172 No MCP servers configured
173 </div>
174 ) : (
175 settings.mcpServers.map((server) => (
176 <ServerRow
177 key={server.id}
178 server={server}
179 onUpdate={(updated) => updateServer(server.id, updated)}
180 onDelete={() => deleteServer(server.id)}
181 />
182 ))
183 )}
184 </div>
185
186 {showAddForm ? (

Callers

nothing calls this directly

Calls 3

cnFunction · 0.90
updateServerFunction · 0.85
deleteServerFunction · 0.85

Tested by

no test coverage detected