{"record":{"id":"95cfde1233ae65d5","repo":"n8n-io/n8n","slug":"mcp-server-config-name-provide-either-url","errorCode":null,"errorMessage":"MCP server \"${config.name}\": provide either \"url\" or \"command\"","messagePattern":"MCP server \"(.+?)\": provide either \"url\" or \"command\"","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/@n8n/agents/src/runtime/mcp/mcp-connection.ts","lineNumber":281,"sourceCode":"\t\t\tconst url = new URL(config.url);\n\t\t\tconst requestInit: RequestInit | undefined = config.headers\n\t\t\t\t? { headers: config.headers }\n\t\t\t\t: undefined;\n\n\t\t\tif (config.transport === 'streamableHttp') {\n\t\t\t\treturn new sdk.StreamableHTTPClientTransport(url, {\n\t\t\t\t\trequestInit,\n\t\t\t\t\tfetch: config.fetch,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn new sdk.SSEClientTransport(url, {\n\t\t\t\trequestInit,\n\t\t\t\tfetch: config.fetch,\n\t\t\t\teventSourceInit: config.fetch ? { fetch: config.fetch } : undefined,\n\t\t\t});\n\t\t}\n\t\tthrow new Error(`MCP server \"${config.name}\": provide either \"url\" or \"command\"`);\n\t}\n}\n","sourceCodeStart":263,"sourceCodeEnd":284,"githubUrl":"https://github.com/n8n-io/n8n/blob/5ac6606e81f67bb9534255570cd4e86fd8101eee/packages/@n8n/agents/src/runtime/mcp/mcp-connection.ts#L263-L284","documentation":"Thrown by the Set node validator (v3.3+) when an assignment object has id/name/type but assignment.value is undefined. value is required even when empty — pass an explicit empty string or null rather than omitting it.","triggerScenarios":"assignment.value === undefined for a record assignment that otherwise passed the id/name/type checks. Reported at parameterPath parameters.assignments.assignments[index].value.","commonSituations":"Building assignments dynamically where a value resolved to undefined; an AI builder treats value as optional; a refactor that drops the value key.","solutions":["Always set an explicit value, even if it is '' or null.","If computing the value from upstream data, default it (e.g. value: upstream ?? '').","Remove the assignment entirely if it has no value to set."],"exampleFix":"// before — value omitted\nassignments: { assignments: [{ id: '1', name: 'note', type: 'string' }] }\n\n// after\nassignments: {\n  assignments: [{ id: '1', name: 'note', value: '', type: 'string' }],\n}","handlingStrategy":"validation","validationCode":"function hasValue(a: Record<string, unknown>): boolean {\n  return 'value' in a && a.value !== undefined;\n}\n\nif (!hasValue(assignment)) throw new Error('Assignment is missing the value field');","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Default value to '' or null rather than omitting it.","Coerce undefined from upstream with ?? '' before assigning.","Drop the assignment entirely when there is nothing to set."],"tags":["set-node","assignments","parameters","node-version"],"backgroundTag":null,"analyzedSha":"5ac6606e81f67bb9534255570cd4e86fd8101eee","analyzedAt":"2026-08-12T05:26:35.080Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}