mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 10:02:05 +00:00
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in> Co-authored-by: JP van Oosten <jp@n8n.io>
33 lines
984 B
TypeScript
33 lines
984 B
TypeScript
import {
|
|
type ILoadOptionsFunctions,
|
|
type INodePropertyOptions,
|
|
NodeOperationError,
|
|
} from 'n8n-workflow';
|
|
|
|
import type { McpAuthenticationOption } from './types';
|
|
import { connectMcpClient, getAllTools, getAuthHeaders } from './utils';
|
|
|
|
export async function getTools(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]> {
|
|
const authentication = this.getNodeParameter('authentication') as McpAuthenticationOption;
|
|
const sseEndpoint = this.getNodeParameter('sseEndpoint') as string;
|
|
const node = this.getNode();
|
|
const { headers } = await getAuthHeaders(this, authentication);
|
|
const client = await connectMcpClient({
|
|
sseEndpoint,
|
|
headers,
|
|
name: node.type,
|
|
version: node.typeVersion,
|
|
});
|
|
|
|
if (!client.ok) {
|
|
throw new NodeOperationError(this.getNode(), 'Could not connect to your MCP server');
|
|
}
|
|
|
|
const tools = await getAllTools(client.result);
|
|
return tools.map((tool) => ({
|
|
name: tool.name,
|
|
value: tool.name,
|
|
description: tool.description,
|
|
}));
|
|
}
|