Compartilhar via


McpToolRegistrationService class

Descubra servidores MCP e ferramentas de lista formatadas para o LangChain Orchestrator. Usa listToolServers para buscar configurações de servidor e getTools para enumerar ferramentas.

Também fornece métodos para enviar o histórico de chat para a plataforma MCP para análise de RTP (proteção contra ameaças em tempo real).

Construtores

McpToolRegistrationService(IConfigurationProvider<LangChainToolingConfiguration>)

Construa um 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 os servidores de ferramentas MCP e atualiza as opções do agente com ferramentas descobertas e configurações de servidor. Chame isso para habilitar o acesso dinâmico à ferramenta LangChain com base no ambiente MCP atual.

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

Envia o histórico de chat de um LangGraph CompiledStateGraph para a plataforma MCP.

Esta é a API de nível mais alto e mais fácil de usar. Ele recupera o estado atual do grafo, extrai mensagens, as converte no formato ChatHistoryMessage e as envia para a plataforma MCP para proteção contra ameaças em tempo real.

Exemplo

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 mensagens de uma instância do BaseChatMessageHistory e as envia para a plataforma MCP.

Use essa API ao trabalhar com abstrações de memória de LangChain (por exemplo, InMemoryChatMessageHistory, RedisChatMessageHistory etc.).

Exemplo

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

Envia uma matriz de mensagens LangChain para a plataforma MCP para proteção contra ameaças em tempo real.

Esta é a API de nível mais baixo que aceita matrizes BaseMessage brutas. Use isso quando você já tiver extraído mensagens ou tiver uma fonte de mensagem personalizada não coberta pelas APIs de nível superior.

Esse método converte a matriz BaseMessage fornecida em formato ChatHistoryMessage e os envia para a plataforma MCP. Matrizes vazias são enviadas as-is para registrar a mensagem do usuário na plataforma.

Exemplo

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)

Extrai mensagens de um LangGraph StateSnapshot e as envia para a plataforma MCP.

Use essa API quando você já tiver um StateSnapshot (por exemplo, de uma chamada anterior graph.getState() ) e quiser evitar buscar o estado novamente.

Exemplo

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

Detalhes do construtor

McpToolRegistrationService(IConfigurationProvider<LangChainToolingConfiguration>)

Construa um McpToolRegistrationService.

new McpToolRegistrationService(configProvider?: IConfigurationProvider<LangChainToolingConfiguration>)

Parâmetros

configProvider

IConfigurationProvider<LangChainToolingConfiguration>

Provedor de configuração opcional. O padrão é defaultLangChainToolingConfigurationProvider se não for especificado.

Detalhes do 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 os servidores de ferramentas MCP e atualiza as opções do agente com ferramentas descobertas e configurações de servidor. Chame isso para habilitar o acesso dinâmico à ferramenta LangChain com base no ambiente MCP atual.

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)[]>>

A instância do LangChain Agent à qual os servidores MCP serão adicionados.

authorization
Authorization

Objeto de autorização para troca de token.

authHandlerName

string

O nome do manipulador de autenticação a ser usado para troca de tokens.

turnContext
TurnContext

O TurnContext da solicitação atual.

authToken

string

Token de portador opcional para acesso ao servidor MCP.

Retornos

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

A instância do Agente atualizada com servidores MCP registrados.

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

Envia o histórico de chat de um LangGraph CompiledStateGraph para a plataforma MCP.

Esta é a API de nível mais alto e mais fácil de usar. Ele recupera o estado atual do grafo, extrai mensagens, as converte no formato ChatHistoryMessage e as envia para a plataforma MCP para proteção contra ameaças em tempo real.

Exemplo

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

O contexto de turno que contém informações de conversa.

graph

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

A instância do LangGraph CompiledStateGraph. O estado do grafo deve conter uma matriz de 'mensagens'.

config

RunnableConfig<Record<string, any>>

O RunnableConfig que contém thread_id e outras configurações.

limit

number

Limite opcional no número de mensagens a serem enviadas.

toolOptions
ToolOptions

Opções de ferramenta opcionais para personalização.

Retornos

Promise<OperationResult>

Uma promessa de resolução para um OperationResult que indica êxito ou falha.

sendChatHistoryFromChatHistoryAsync(TurnContext, BaseChatMessageHistory, number, ToolOptions)

Recupera mensagens de uma instância do BaseChatMessageHistory e as envia para a plataforma MCP.

Use essa API ao trabalhar com abstrações de memória de LangChain (por exemplo, InMemoryChatMessageHistory, RedisChatMessageHistory etc.).

Exemplo

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

O contexto de turno que contém informações de conversa.

chatHistory

BaseChatMessageHistory

A instância BaseChatMessageHistory da qual recuperar mensagens.

limit

number

Limite opcional no número de mensagens a serem enviadas.

toolOptions
ToolOptions

Opções de ferramenta opcionais para personalização.

Retornos

Promise<OperationResult>

Uma promessa de resolução para um OperationResult que indica êxito ou falha.

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

Envia uma matriz de mensagens LangChain para a plataforma MCP para proteção contra ameaças em tempo real.

Esta é a API de nível mais baixo que aceita matrizes BaseMessage brutas. Use isso quando você já tiver extraído mensagens ou tiver uma fonte de mensagem personalizada não coberta pelas APIs de nível superior.

Esse método converte a matriz BaseMessage fornecida em formato ChatHistoryMessage e os envia para a plataforma MCP. Matrizes vazias são enviadas as-is para registrar a mensagem do usuário na plataforma.

Exemplo

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

O contexto de turno que contém informações de conversa.

messages

BaseMessage<MessageStructure<MessageToolSet>, MessageType>[]

Matriz de objetos LangChain BaseMessage a serem enviados.

limit

number

Limite opcional no número de mensagens a serem enviadas.

toolOptions
ToolOptions

Opções de ferramenta opcionais para personalização.

Retornos

Promise<OperationResult>

Uma promessa de resolução para um OperationResult que indica êxito ou falha.

sendChatHistoryFromStateAsync(TurnContext, StateSnapshot, number, ToolOptions)

Extrai mensagens de um LangGraph StateSnapshot e as envia para a plataforma MCP.

Use essa API quando você já tiver um StateSnapshot (por exemplo, de uma chamada anterior graph.getState() ) e quiser evitar buscar o estado novamente.

Exemplo

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

O contexto de turno que contém informações de conversa.

stateSnapshot

StateSnapshot

O LangGraph StateSnapshot que contém o estado da mensagem.

limit

number

Limite opcional no número de mensagens a serem enviadas.

toolOptions
ToolOptions

Opções de ferramenta opcionais para personalização.

Retornos

Promise<OperationResult>

Uma promessa de resolução para um OperationResult que indica êxito ou falha.