mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-02-10 06:45:28 -05:00
fix(frontend/mcp): Ensure MCP block title persists across save/refresh
When the MCP server returns a null server_name, fall back to the URL hostname so customized_name is always set in metadata. This prevents the title from degrading to "MCP:" after save and reload.
This commit is contained in:
@@ -65,18 +65,28 @@ export const Block: BlockComponent = ({
|
||||
|
||||
const handleMCPToolConfirm = useCallback(
|
||||
(result: MCPToolDialogResult) => {
|
||||
// Derive a display label: prefer server name, fall back to URL hostname.
|
||||
let serverLabel = result.serverName;
|
||||
if (!serverLabel) {
|
||||
try {
|
||||
serverLabel = new URL(result.serverUrl).hostname;
|
||||
} catch {
|
||||
serverLabel = "MCP";
|
||||
}
|
||||
}
|
||||
|
||||
const customNode = addBlockAndCenter(blockData, {
|
||||
server_url: result.serverUrl,
|
||||
server_name: result.serverName,
|
||||
server_name: serverLabel,
|
||||
selected_tool: result.selectedTool,
|
||||
tool_input_schema: result.toolInputSchema,
|
||||
available_tools: result.availableTools,
|
||||
credentials: result.credentials ?? undefined,
|
||||
});
|
||||
// Persist the MCP title as customized_name in metadata so it survives
|
||||
// save/load even if server_name is stripped from input_default.
|
||||
if (customNode && result.serverName && result.selectedTool) {
|
||||
const title = `${result.serverName}: ${beautifyString(result.selectedTool)}`;
|
||||
// save/load even if server_name is pruned from input_default.
|
||||
if (customNode && result.selectedTool) {
|
||||
const title = `${serverLabel}: ${beautifyString(result.selectedTool)}`;
|
||||
updateNodeData(customNode.id, {
|
||||
metadata: {
|
||||
...customNode.data.metadata,
|
||||
|
||||
@@ -49,8 +49,7 @@ export function CredentialsSelect({
|
||||
// When credentials exist and nothing is explicitly selected,
|
||||
// default to the first credential instead of "None"
|
||||
const effectiveCredential =
|
||||
selectedCredential ??
|
||||
(credentials.length > 0 ? credentials[0] : null);
|
||||
selectedCredential ?? (credentials.length > 0 ? credentials[0] : null);
|
||||
|
||||
const displayCredential = effectiveCredential
|
||||
? {
|
||||
|
||||
Reference in New Issue
Block a user