McpToolServerConfigurationService Classe

Fornisce servizi per la gestione della configurazione del server degli strumenti MCP.

Questo servizio gestisce l'individuazione e la configurazione dei server degli strumenti MCP (Model Context Protocol) da più origini:

  • Sviluppo: file ToolingManifest.json locali
  • Produzione: endpoint gateway di strumenti remoti

Costruttore

McpToolServerConfigurationService()

Parametri

Nome Descrizione
logger
Valore predefinito: None

Metodi

__init__

Inizializzare il servizio di configurazione del server degli strumenti MCP.

__new__
list_tool_servers

Ottiene l'elenco dei server MCP configurati per l'agente.

Quando authorization, auth_handler_namee turn_context vengono forniti tutti, i token OAuth per gruppo di destinatari vengono acquisiti per ogni server dopo l'individuazione:

  • I server V1 (nessun audience campo) condividono il token ATG condiviso (uno scambio).
  • I server V2 ricevono ogni token con ambito relativo al proprio GUID del gruppo di destinatari.
send_chat_history

Invia la cronologia delle chat alla piattaforma MCP per la protezione dalle minacce in tempo reale.

Note

Anche se chat_history_messages è vuoto, la richiesta verrà comunque inviata a

la piattaforma MCP. In questo modo si garantisce che il messaggio dell'utente da turn_context.activity.text

viene registrato correttamente per la protezione dalle minacce in tempo reale.

__init__

Inizializzare il servizio di configurazione del server degli strumenti MCP.

__init__(logger: Logger | None = None)

Parametri

Nome Descrizione
logger

Istanza del logger per le operazioni di registrazione. Se Nessuno crea un nuovo logger.

Valore predefinito: None

__new__

__new__(**kwargs)

list_tool_servers

Ottiene l'elenco dei server MCP configurati per l'agente.

Quando authorization, auth_handler_namee turn_context vengono forniti tutti, i token OAuth per gruppo di destinatari vengono acquisiti per ogni server dopo l'individuazione:

  • I server V1 (nessun audience campo) condividono il token ATG condiviso (uno scambio).
  • I server V2 ricevono ogni token con ambito relativo al proprio GUID del gruppo di destinatari.
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]

Parametri

Nome Descrizione
agentic_app_id
Necessario
str

ID app agentic per l'agente.

auth_token
str | None

Token di autenticazione usato per l'individuazione del gateway.

Valore predefinito: None
options

Istanza facoltativa di ToolOptions contenente parametri facoltativi.

Valore predefinito: None
authorization

Contesto di autorizzazione facoltativo per lo scambio di token per gruppo di destinatari.

Valore predefinito: None
auth_handler_name
str | None

Nome del gestore di autenticazione facoltativo usato con authorization.

Valore predefinito: None
turn_context

TurnContext facoltativo usato con authorization.

Valore predefinito: None

Valori restituiti

Tipo Descrizione

Restituisce l'elenco dei server MCP configurati, ognuno con un'intestazione collegata quando viene fornito il Authorization contesto di autenticazione.

Eccezioni

Tipo Descrizione

Se i parametri obbligatori non sono validi o vuoti.

Se si verifica un errore durante la comunicazione con il gateway di strumenti o uno scambio di token per gruppo di destinatari non riesce.

send_chat_history

Invia la cronologia delle chat alla piattaforma MCP per la protezione dalle minacce in tempo reale.

Note

Anche se chat_history_messages è vuoto, la richiesta verrà comunque inviata a

la piattaforma MCP. In questo modo si garantisce che il messaggio dell'utente da turn_context.activity.text

viene registrato correttamente per la protezione dalle minacce in tempo reale.

async send_chat_history(turn_context: TurnContext, chat_history_messages: List[ChatHistoryMessage], options: ToolOptions | None = None) -> OperationResult

Parametri

Nome Descrizione
turn_context
Necessario

TurnContext da Agents SDK contenente informazioni sulla conversazione. Deve avere un'attività valida con conversation.id, activity.id e activity.text.

chat_history_messages
Necessario

Elenco di oggetti ChatHistoryMessage che rappresentano la cronologia delle chat. Può essere vuoto: un elenco vuoto invierà comunque una richiesta alla piattaforma MCP con cronologia chat vuota.

options

Istanza facoltativa di ToolOptions contenente parametri facoltativi.

Valore predefinito: None

Valori restituiti

Tipo Descrizione
<xref:OperationResult>

OperationResult che indica l'esito positivo o negativo. In caso di esito positivo, restituisce OperationResult.success(). In caso di errore, restituisce OperationResult.failed() con i dettagli dell'errore.

Eccezioni

Tipo Descrizione

Se turn_context è Nessuno, chat_history_messages è Nessuno, turn_context.activity è Nessuno o uno dei campi obbligatori (conversation.id, activity.id, activity.text) è mancante o vuoto.

Esempio


>>> 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")