McpToolServerConfigurationService Classe
Fornece serviços para o gerenciamento de configuração do servidor de ferramentas MCP.
Esse serviço lida com a descoberta e a configuração de servidores de ferramenta MCP (Protocolo de Contexto de Modelo) de várias fontes:
- Desenvolvimento: Arquivos de ToolingManifest.json locais
- Produção: pontos de extremidade de gateway de ferramentas remotas
Construtor
McpToolServerConfigurationService()
Parâmetros
| Nome | Description |
|---|---|
|
logger
|
Valor padrão: None
|
Métodos
| __init__ |
Inicialize o Serviço de Configuração do Servidor de Ferramentas do MCP. |
| __new__ | |
| list_tool_servers |
Obtém a lista de servidores MCP configurados para o agente. Quando
|
| send_chat_history |
Envia o histórico de chat para a plataforma MCP para proteção contra ameaças em tempo real. Note Mesmo que chat_history_messages esteja vazio, a solicitação ainda será enviada para a plataforma MCP. Isso garante que a mensagem do usuário de turn_context.activity.text é registrado corretamente para proteção contra ameaças em tempo real. |
__init__
__new__
__new__(**kwargs)
list_tool_servers
Obtém a lista de servidores MCP configurados para o agente.
Quando authorization, auth_handler_namee turn_context todos são fornecidos, os tokens OAuth por público-alvo são adquiridos para cada servidor após a descoberta:
- Servidores V1 (sem
audiencecampo) compartilham o token ATG compartilhado (uma troca). - Cada um dos servidores V2 recebe um token com escopo para seu próprio GUID de audiência.
async list_tool_servers(agentic_app_id: str, auth_token: str | None = None, options: ToolOptions | None = None, authorization: Authorization | None = None, auth_handler_name: str | None = None, turn_context: TurnContext | None = None) -> List[MCPServerConfig]
Parâmetros
| Nome | Description |
|---|---|
|
agentic_app_id
Obrigatório
|
ID do aplicativo agentic para o agente. |
|
auth_token
|
Token de autenticação usado para descoberta de gateway. Valor padrão: None
|
|
options
|
Instância de ToolOptions opcional que contém parâmetros opcionais. Valor padrão: None
|
|
authorization
|
Contexto de autorização opcional para troca de token por público-alvo. Valor padrão: None
|
|
auth_handler_name
|
Nome opcional do manipulador de autenticação usado com Valor padrão: None
|
|
turn_context
|
TurnContext opcional usado com Valor padrão: None
|
Retornos
| Tipo | Description |
|---|---|
|
Retorna a lista de servidores MCP configurados, cada um com um |
Exceções
| Tipo | Description |
|---|---|
|
Se os parâmetros necessários forem inválidos ou vazios. |
|
|
Se houver um erro de comunicação com o gateway de ferramentas ou uma troca de tokens por público-alvo falhar. |
send_chat_history
Envia o histórico de chat para a plataforma MCP para proteção contra ameaças em tempo real.
Note
Mesmo que chat_history_messages esteja vazio, a solicitação ainda será enviada para
a plataforma MCP. Isso garante que a mensagem do usuário de turn_context.activity.text
é registrado corretamente para proteção contra ameaças em tempo real.
async send_chat_history(turn_context: TurnContext, chat_history_messages: List[ChatHistoryMessage], options: ToolOptions | None = None) -> OperationResult
Parâmetros
| Nome | Description |
|---|---|
|
turn_context
Obrigatório
|
TurnContext do SDK de Agentes que contém informações de conversa. Deve ter uma atividade válida com conversation.id, activity.id e activity.text. |
|
chat_history_messages
Obrigatório
|
Lista de objetos ChatHistoryMessage que representam o histórico de chat. Pode estar vazia – uma lista vazia ainda enviará uma solicitação para a plataforma MCP com histórico de chat vazio. |
|
options
|
Instância de ToolOptions opcional que contém parâmetros opcionais. Valor padrão: None
|
Retornos
| Tipo | Description |
|---|---|
|
<xref:OperationResult>
|
Um OperationResult que indica êxito ou falha. Com êxito, retorna OperationResult.success(). Em caso de falha, retorna OperationResult.failed() com detalhes de erro. |
Exceções
| Tipo | Description |
|---|---|
|
Se turn_context for None, chat_history_messages for None, turn_context.activity for None ou qualquer um dos campos necessários (conversation.id, activity.id, activity.text) estarão ausentes ou vazios. |
Exemplos
>>> from datetime import datetime, timezone
>>> from microsoft_agents_a365.tooling.models import ChatHistoryMessage
>>>
>>> history = [
... ChatHistoryMessage("msg-1", "user", "Hello", datetime.now(timezone.utc)),
... ChatHistoryMessage("msg-2", "assistant", "Hi!", datetime.now(timezone.utc))
... ]
>>>
>>> service = McpToolServerConfigurationService()
>>> result = await service.send_chat_history(turn_context, history)
>>> if result.succeeded:
... print("Chat history sent successfully")