/**
 * MCP Server Trigger Node - Version 2.1
 * Expose n8n tools as an MCP Server endpoint
 */


export interface LcMcpTriggerV21Params {
/**
 * The way to authenticate
 * @builderHint Default to 'none'. n8n exposes inbound trigger URLs publicly by design. Only select an authentication method when the user explicitly asks to authenticate inbound traffic.
 * @default none
 */
    authentication?: 'none' | 'n8nOAuth2' | 'bearerAuth' | 'headerAuth' | Expression<string>;
/**
 * Whether the triggering user must also have permission to execute the workflow in the project it belongs to
 * @displayOptions.show { authentication: ["n8nOAuth2"] }
 * @default true
 */
    requireExecuteAccess?: boolean | Expression<boolean>;
/**
 * Whether to include the calling user's ID, email and name in the trigger output and in the request the connected tools receive
 * @displayOptions.show { authentication: ["n8nOAuth2"] }
 * @default true
 */
    includeUserInOutput?: boolean | Expression<boolean>;
/**
 * The base path for this MCP server
 */
    path: string | Expression<string>;
/**
 * Sent to MCP clients when they connect. Clients that support server instructions typically add them to the model's system prompt — use for guidance that spans multiple tools, such as tool-choice rules or multi-step workflows.
 */
    instructions?: string | Expression<string>;
}

export interface LcMcpTriggerV21SubnodeConfig {
  tools?: ToolInstance[];
}

export interface LcMcpTriggerV21Credentials {
  httpBearerAuth: CredentialReference;
  httpHeaderAuth: CredentialReference;
}

interface LcMcpTriggerV21NodeBase {
  type: '@n8n/n8n-nodes-langchain.mcpTrigger';
  version: 2.1;
}

export type LcMcpTriggerV21ParamsNode = LcMcpTriggerV21NodeBase & {
  config: NodeConfig<LcMcpTriggerV21Params> & { credentials?: LcMcpTriggerV21Credentials } & { subnodes?: LcMcpTriggerV21SubnodeConfig };
};

export type LcMcpTriggerV21Node = LcMcpTriggerV21ParamsNode;