Skip to content

Commit 2408187

Browse files
authored
Merge branch 'main' into main
2 parents 0182f8a + c7b73cb commit 2408187

2 files changed

Lines changed: 43 additions & 4 deletions

File tree

nodes/McpClient/McpClient.node.ts

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,18 @@ export class McpClient implements INodeType {
9393
default: 'cmd',
9494
description: 'Choose the transport type to connect to MCP server',
9595
},
96+
{
97+
displayName: 'Uri Override',
98+
name: 'uriOverride',
99+
type: 'string',
100+
displayOptions: {
101+
show: {
102+
connectionType: ['sse', 'http'],
103+
},
104+
},
105+
default: '',
106+
description: 'Override the URL from credentials with a custom URL',
107+
},
96108
{
97109
displayName: 'Operation',
98110
name: 'operation',
@@ -297,7 +309,21 @@ export class McpClient implements INodeType {
297309
// Dynamically import the HTTP client
298310
const { StreamableHTTPClientTransport } = await import('@modelcontextprotocol/sdk/client/streamableHttp.js');
299311

300-
const httpStreamUrl = httpCredentials.httpStreamUrl as string;
312+
// Get URI override or use credentials URL
313+
const uriOverride = this.getNodeParameter('uriOverride', 0) as string;
314+
let httpStreamUrl: string;
315+
316+
if (uriOverride && uriOverride.trim()) {
317+
try {
318+
// Validate URL format
319+
new URL(uriOverride.trim());
320+
httpStreamUrl = uriOverride.trim();
321+
} catch (error) {
322+
throw new NodeOperationError(this.getNode(), `Invalid URI override format: ${uriOverride}`);
323+
}
324+
} else {
325+
httpStreamUrl = httpCredentials.httpStreamUrl as string;
326+
}
301327
const messagesPostEndpoint = (httpCredentials.messagesPostEndpoint as string) || '';
302328
timeout = httpCredentials.httpTimeout as number || 60000;
303329

@@ -335,7 +361,20 @@ export class McpClient implements INodeType {
335361
// Dynamically import the SSE client to avoid TypeScript errors
336362
const { SSEClientTransport } = await import('@modelcontextprotocol/sdk/client/sse.js');
337363

338-
const sseUrl = sseCredentials.sseUrl as string;
364+
// Get URI override or use credentials URL
365+
const uriOverride = this.getNodeParameter('uriOverride', 0) as string;
366+
let sseUrl: string;
367+
if (uriOverride && uriOverride.trim()) {
368+
try {
369+
// Validate URL format
370+
new URL(uriOverride.trim());
371+
sseUrl = uriOverride.trim();
372+
} catch (error) {
373+
throw new NodeOperationError(this.getNode(), `Invalid URI override format: ${uriOverride}`);
374+
}
375+
} else {
376+
sseUrl = sseCredentials.sseUrl as string;
377+
}
339378
const messagesPostEndpoint = (sseCredentials.messagesPostEndpoint as string) || '';
340379
timeout = sseCredentials.sseTimeout as number || 60000;
341380

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"name": "n8n-nodes-mcp-batch",
3-
"version": "0.1.7",
2+
"name": "n8n-nodes-mcp",
3+
"version": "0.1.30",
44
"description": "MCP nodes for n8n ",
55
"keywords": [
66
"n8n-community-node-package",

0 commit comments

Comments
 (0)