McpToolRegistrationService class

Descubra los servidores MCP y las herramientas de lista con formato para LangChain Orchestrator. Usa listToolServers para capturar configuraciones de servidor y getTools para enumerar herramientas.

También proporciona métodos para enviar el historial de chat a la plataforma MCP para el análisis de protección contra amenazas en tiempo real (RTP).

Constructores

McpToolRegistrationService(IConfigurationProvider<LangChainToolingConfiguration>)

Construya un McpToolRegistrationService.

Métodos

addToolServersToAgent(ReactAgent<AgentTypeConfig<Record<string, any>, undefined, AnyAnnotationRoot, readonly AgentMiddleware<any, any, any, readonly (ClientTool | ServerTool)[]>[], readonly (ClientTool | ServerTool)[]>>, Authorization, string, TurnContext, string)

Registra los servidores de herramientas mcP y actualiza las opciones del agente con las herramientas detectadas y las configuraciones del servidor. Llame a esta opción para habilitar el acceso dinámico a la herramienta LangChain en función del entorno de MCP actual.

sendChatHistoryAsync(TurnContext, CompiledStateGraph<unknown, unknown, string, StateDefinition, StateDefinition, StateDefinition, unknown, unknown, unknown>, RunnableConfig<Record<string, any>>, number, ToolOptions)

Envía el historial de chat de un LangGraph CompiledStateGraph a la plataforma MCP.

Esta es la API de nivel más alto y más fácil de usar. Recupera el estado actual del gráfico, extrae mensajes, los convierte en formato ChatHistoryMessage y los envía a la plataforma MCP para la protección contra amenazas en tiempo real.

Ejemplo

const config = { configurable: { thread_id: '1' } };
const result = await service.sendChatHistoryAsync(turnContext, graph, config);
if (result.succeeded) {
  console.log('Chat history sent successfully');
}
sendChatHistoryFromChatHistoryAsync(TurnContext, BaseChatMessageHistory, number, ToolOptions)

Recupera mensajes de una instancia de BaseChatMessageHistory y los envía a la plataforma MCP.

Use esta API al trabajar con abstracciones de memoria de LangChain (por ejemplo, InMemoryChatMessageHistory, RedisChatMessageHistory, etc.).

Ejemplo

const chatHistory = new InMemoryChatMessageHistory();
// ... add messages to history ...
const result = await service.sendChatHistoryFromChatHistoryAsync(turnContext, chatHistory);
sendChatHistoryFromMessagesAsync(TurnContext, BaseMessage<MessageStructure<MessageToolSet>, MessageType>[], number, ToolOptions)

Envía una matriz de mensajes LangChain a la plataforma MCP para la protección contra amenazas en tiempo real.

Esta es la API de nivel más bajo que acepta matrices BaseMessage sin procesar. Úselo cuando ya haya extraído mensajes o tenga un origen de mensajes personalizado no cubierto por las API de nivel superior.

Este método convierte la matriz BaseMessage proporcionada en formato ChatHistoryMessage y las envía a la plataforma MCP. Las matrices vacías se envían as-is para registrar el mensaje de usuario con la plataforma.

Ejemplo

const messages = await messageHistory.getMessages();
const result = await service.sendChatHistoryFromMessagesAsync(turnContext, messages, 50);
if (result.succeeded) {
  console.log('Chat history sent successfully');
} else {
  console.error('Failed to send chat history:', result.errors);
}
sendChatHistoryFromStateAsync(TurnContext, StateSnapshot, number, ToolOptions)

Extrae mensajes de un objeto StateSnapshot de LangGraph y los envía a la plataforma MCP.

Use esta API cuando ya tenga stateSnapshot (por ejemplo, desde una llamada anterior graph.getState() ) y quiera evitar volver a capturar el estado.

Ejemplo

const config = { configurable: { thread_id: '1' } };
const stateSnapshot = await graph.getState(config);
const result = await service.sendChatHistoryFromStateAsync(turnContext, stateSnapshot);

Detalles del constructor

McpToolRegistrationService(IConfigurationProvider<LangChainToolingConfiguration>)

Construya un McpToolRegistrationService.

new McpToolRegistrationService(configProvider?: IConfigurationProvider<LangChainToolingConfiguration>)

Parámetros

configProvider

IConfigurationProvider<LangChainToolingConfiguration>

Proveedor de configuración opcional. El valor predeterminado es defaultLangChainToolingConfigurationProvider si no se especifica.

Detalles del método

addToolServersToAgent(ReactAgent<AgentTypeConfig<Record<string, any>, undefined, AnyAnnotationRoot, readonly AgentMiddleware<any, any, any, readonly (ClientTool | ServerTool)[]>[], readonly (ClientTool | ServerTool)[]>>, Authorization, string, TurnContext, string)

Registra los servidores de herramientas mcP y actualiza las opciones del agente con las herramientas detectadas y las configuraciones del servidor. Llame a esta opción para habilitar el acceso dinámico a la herramienta LangChain en función del entorno de MCP actual.

function addToolServersToAgent(agent: ReactAgent<AgentTypeConfig<Record<string, any>, undefined, AnyAnnotationRoot, readonly AgentMiddleware<any, any, any, readonly (ClientTool | ServerTool)[]>[], readonly (ClientTool | ServerTool)[]>>, authorization: Authorization, authHandlerName: string, turnContext: TurnContext, authToken: string): Promise<ReactAgent<AgentTypeConfig<Record<string, any>, undefined, AnyAnnotationRoot, readonly AgentMiddleware<any, any, any, readonly (ClientTool | ServerTool)[]>[], readonly (ClientTool | ServerTool)[]>>>

Parámetros

agent

ReactAgent<AgentTypeConfig<Record<string, any>, undefined, AnyAnnotationRoot, readonly AgentMiddleware<any, any, any, readonly (ClientTool | ServerTool)[]>[], readonly (ClientTool | ServerTool)[]>>

Instancia del agente LangChain a la que se agregarán los servidores MCP.

authorization
Authorization

Objeto de autorización para el intercambio de tokens.

authHandlerName

string

Nombre del controlador de autenticación que se va a usar para el intercambio de tokens.

turnContext
TurnContext

TurnContext de la solicitud actual.

authToken

string

Token de portador opcional para el acceso al servidor MCP.

Devoluciones

Promise<ReactAgent<AgentTypeConfig<Record<string, any>, undefined, AnyAnnotationRoot, readonly AgentMiddleware<any, any, any, readonly (ClientTool | ServerTool)[]>[], readonly (ClientTool | ServerTool)[]>>>

Instancia del agente actualizada con servidores MCP registrados.

sendChatHistoryAsync(TurnContext, CompiledStateGraph<unknown, unknown, string, StateDefinition, StateDefinition, StateDefinition, unknown, unknown, unknown>, RunnableConfig<Record<string, any>>, number, ToolOptions)

Envía el historial de chat de un LangGraph CompiledStateGraph a la plataforma MCP.

Esta es la API de nivel más alto y más fácil de usar. Recupera el estado actual del gráfico, extrae mensajes, los convierte en formato ChatHistoryMessage y los envía a la plataforma MCP para la protección contra amenazas en tiempo real.

Ejemplo

const config = { configurable: { thread_id: '1' } };
const result = await service.sendChatHistoryAsync(turnContext, graph, config);
if (result.succeeded) {
  console.log('Chat history sent successfully');
}
function sendChatHistoryAsync(turnContext: TurnContext, graph: CompiledStateGraph<unknown, unknown, string, StateDefinition, StateDefinition, StateDefinition, unknown, unknown, unknown>, config: RunnableConfig<Record<string, any>>, limit?: number, toolOptions?: ToolOptions): Promise<OperationResult>

Parámetros

turnContext
TurnContext

Contexto de turno que contiene información de conversación.

graph

CompiledStateGraph<unknown, unknown, string, StateDefinition, StateDefinition, StateDefinition, unknown, unknown, unknown>

La instancia de LangGraph CompiledStateGraph. El estado del grafo debe contener una matriz "messages".

config

RunnableConfig<Record<string, any>>

RunnableConfig que contiene thread_id y otra configuración.

limit

number

Límite opcional en el número de mensajes que se van a enviar.

toolOptions
ToolOptions

Opciones de herramientas opcionales para la personalización.

Devoluciones

Promise<OperationResult>

Una promesa que se resuelve en un OperationResult que indica que se ha realizado correctamente o no.

sendChatHistoryFromChatHistoryAsync(TurnContext, BaseChatMessageHistory, number, ToolOptions)

Recupera mensajes de una instancia de BaseChatMessageHistory y los envía a la plataforma MCP.

Use esta API al trabajar con abstracciones de memoria de LangChain (por ejemplo, InMemoryChatMessageHistory, RedisChatMessageHistory, etc.).

Ejemplo

const chatHistory = new InMemoryChatMessageHistory();
// ... add messages to history ...
const result = await service.sendChatHistoryFromChatHistoryAsync(turnContext, chatHistory);
function sendChatHistoryFromChatHistoryAsync(turnContext: TurnContext, chatHistory: BaseChatMessageHistory, limit?: number, toolOptions?: ToolOptions): Promise<OperationResult>

Parámetros

turnContext
TurnContext

Contexto de turno que contiene información de conversación.

chatHistory

BaseChatMessageHistory

Instancia de BaseChatMessageHistory de la que se van a recuperar mensajes.

limit

number

Límite opcional en el número de mensajes que se van a enviar.

toolOptions
ToolOptions

Opciones de herramientas opcionales para la personalización.

Devoluciones

Promise<OperationResult>

Una promesa que se resuelve en un OperationResult que indica que se ha realizado correctamente o no.

sendChatHistoryFromMessagesAsync(TurnContext, BaseMessage<MessageStructure<MessageToolSet>, MessageType>[], number, ToolOptions)

Envía una matriz de mensajes LangChain a la plataforma MCP para la protección contra amenazas en tiempo real.

Esta es la API de nivel más bajo que acepta matrices BaseMessage sin procesar. Úselo cuando ya haya extraído mensajes o tenga un origen de mensajes personalizado no cubierto por las API de nivel superior.

Este método convierte la matriz BaseMessage proporcionada en formato ChatHistoryMessage y las envía a la plataforma MCP. Las matrices vacías se envían as-is para registrar el mensaje de usuario con la plataforma.

Ejemplo

const messages = await messageHistory.getMessages();
const result = await service.sendChatHistoryFromMessagesAsync(turnContext, messages, 50);
if (result.succeeded) {
  console.log('Chat history sent successfully');
} else {
  console.error('Failed to send chat history:', result.errors);
}
function sendChatHistoryFromMessagesAsync(turnContext: TurnContext, messages: BaseMessage<MessageStructure<MessageToolSet>, MessageType>[], limit?: number, toolOptions?: ToolOptions): Promise<OperationResult>

Parámetros

turnContext
TurnContext

Contexto de turno que contiene información de conversación.

messages

BaseMessage<MessageStructure<MessageToolSet>, MessageType>[]

Matriz de objetos BaseMessage de LangChain que se van a enviar.

limit

number

Límite opcional en el número de mensajes que se van a enviar.

toolOptions
ToolOptions

Opciones de herramientas opcionales para la personalización.

Devoluciones

Promise<OperationResult>

Una promesa que se resuelve en un OperationResult que indica que se ha realizado correctamente o no.

sendChatHistoryFromStateAsync(TurnContext, StateSnapshot, number, ToolOptions)

Extrae mensajes de un objeto StateSnapshot de LangGraph y los envía a la plataforma MCP.

Use esta API cuando ya tenga stateSnapshot (por ejemplo, desde una llamada anterior graph.getState() ) y quiera evitar volver a capturar el estado.

Ejemplo

const config = { configurable: { thread_id: '1' } };
const stateSnapshot = await graph.getState(config);
const result = await service.sendChatHistoryFromStateAsync(turnContext, stateSnapshot);
function sendChatHistoryFromStateAsync(turnContext: TurnContext, stateSnapshot: StateSnapshot, limit?: number, toolOptions?: ToolOptions): Promise<OperationResult>

Parámetros

turnContext
TurnContext

Contexto de turno que contiene información de conversación.

stateSnapshot

StateSnapshot

LangGraph StateSnapshot que contiene el estado del mensaje.

limit

number

Límite opcional en el número de mensajes que se van a enviar.

toolOptions
ToolOptions

Opciones de herramientas opcionales para la personalización.

Devoluciones

Promise<OperationResult>

Una promesa que se resuelve en un OperationResult que indica que se ha realizado correctamente o no.