{"record":{"id":"c679a33b0b6f0095","repo":"ruvnet/ruflo","slug":"mcp-no-mcp-servers-selected-after-merge-name-fil","errorCode":null,"errorMessage":"[mcp] no MCP servers selected after merge/name filter","messagePattern":"\\[mcp\\] no MCP servers selected after merge/name filter","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"ruflo/src/ruvocal/src/lib/server/textGeneration/mcp/runMcpFlow.ts","lineNumber":143,"sourceCode":"\t\t\t? reqMcp?.selectedServerNames\n\t\t\t: undefined;\n\t\tif (Array.isArray(names)) {\n\t\t\tconst before = servers.map((s) => s.name);\n\t\t\tservers = servers.filter((s) => names.includes(s.name));\n\t\t\ttry {\n\t\t\t\tlogger.debug(\n\t\t\t\t\t{ selectedNames: names, before, after: servers.map((s) => s.name) },\n\t\t\t\t\t\"[mcp] applied name selection\"\n\t\t\t\t);\n\t\t\t} catch {}\n\t\t}\n\t} catch {\n\t\t// ignore selection merge errors and proceed with env servers\n\t}\n\n\t// If selection/merge yielded no servers, bail early with clearer log\n\tif (servers.length === 0) {\n\t\tlogger.warn({}, \"[mcp] no MCP servers selected after merge/name filter\");\n\t\treturn \"not_applicable\";\n\t}\n\n\t// Enforce server-side safety (public HTTPS only, no private ranges)\n\t{\n\t\tconst before = servers.slice();\n\t\tservers = servers.filter((s) => {\n\t\t\ttry {\n\t\t\t\treturn isValidUrl(s.url);\n\t\t\t} catch {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\ttry {\n\t\t\tconst rejected = before.filter((b) => !servers.includes(b));\n\t\t\tif (rejected.length > 0) {\n\t\t\t\tlogger.warn(\n\t\t\t\t\t{ rejected: rejected.map((r) => ({ name: r.name, url: r.url })) },","sourceCodeStart":125,"sourceCodeEnd":161,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/ruflo/src/ruvocal/src/lib/server/textGeneration/mcp/runMcpFlow.ts#L125-L161","documentation":"Log warning in runMcpFlow: after merging request-selected servers with configured ones and applying name filtering, the server list is empty, so the MCP flow is not applicable and generation falls back to the normal path.","triggerScenarios":"Thrown at ruflo/src/ruvocal/src/lib/server/textGeneration/mcp/runMcpFlow.ts:143 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Select at least one MCP server or relax the name filter so servers survive the merge/filter step."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}