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
| Mcp |
Construa um McpToolRegistrationService. |
Métodos
| add |
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. |
| send |
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
|
| send |
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
|
| send |
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
|
| send |
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 Exemplo
|
Detalhes do construtor
McpToolRegistrationService(IConfigurationProvider<LangChainToolingConfiguration>)
Construa um McpToolRegistrationService.
new McpToolRegistrationService(configProvider?: IConfigurationProvider<LangChainToolingConfiguration>)
Parâmetros
- configProvider
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.