McpToolServerConfigurationService Classe

Fournit des services pour la gestion de la configuration du serveur d’outils MCP.

Ce service gère la découverte et la configuration des serveurs d’outils MCP (Model Context Protocol) à partir de plusieurs sources :

  • Développement : fichiers de ToolingManifest.json locaux
  • Production : points de terminaison de passerelle d’outils distants

Constructeur

McpToolServerConfigurationService()

Paramètres

Nom Description
logger
Valeur par défaut: None

Méthodes

__init__

Initialisez le service de configuration du serveur d’outils MCP.

__new__
list_tool_servers

Obtient la liste des serveurs MCP configurés pour l’agent.

Quand authorization, auth_handler_nameet turn_context sont tous fournis, les jetons OAuth par audience sont acquis pour chaque serveur après la découverte :

  • Les serveurs V1 (aucun audience champ) partagent le jeton ATG partagé (un échange).
  • Les serveurs V2 reçoivent chacun un jeton limité à leur propre GUID d’audience.
send_chat_history

Envoie l’historique des conversations à la plateforme MCP pour la protection contre les menaces en temps réel.

Note

Même si chat_history_messages est vide, la demande est toujours envoyée à

plateforme MCP. Cela garantit que le message utilisateur à partir de turn_context.activity.text

est inscrit correctement pour la protection contre les menaces en temps réel.

__init__

Initialisez le service de configuration du serveur d’outils MCP.

__init__(logger: Logger | None = None)

Paramètres

Nom Description
logger

Instance d’enregistreur d’événements pour les opérations de journalisation. Si aucun, crée un enregistreur d’événements.

Valeur par défaut: None

__new__

__new__(**kwargs)

list_tool_servers

Obtient la liste des serveurs MCP configurés pour l’agent.

Quand authorization, auth_handler_nameet turn_context sont tous fournis, les jetons OAuth par audience sont acquis pour chaque serveur après la découverte :

  • Les serveurs V1 (aucun audience champ) partagent le jeton ATG partagé (un échange).
  • Les serveurs V2 reçoivent chacun un jeton limité à leur propre GUID d’audience.
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]

Paramètres

Nom Description
agentic_app_id
Obligatoire
str

ID d’application agentique de l’agent.

auth_token
str | None

Jeton d’authentification utilisé pour la découverte de passerelle.

Valeur par défaut: None
options

Instance ToolOptions facultative contenant des paramètres facultatifs.

Valeur par défaut: None
authorization

Contexte d’autorisation facultatif pour l’échange de jetons par audience.

Valeur par défaut: None
auth_handler_name
str | None

Nom du gestionnaire d’authentification facultatif utilisé avec authorization.

Valeur par défaut: None
turn_context

TurnContext facultatif utilisé avec authorization.

Valeur par défaut: None

Retours

Type Description

Retourne la liste des serveurs MCP configurés, chacun avec un Authorization en-tête attaché lorsque le contexte d’authentification est fourni.

Exceptions

Type Description

Si les paramètres requis ne sont pas valides ou vides.

En cas d’erreur lors de la communication avec la passerelle d’outils ou d’un échange de jetons par audience échoue.

send_chat_history

Envoie l’historique des conversations à la plateforme MCP pour la protection contre les menaces en temps réel.

Note

Même si chat_history_messages est vide, la demande est toujours envoyée à

plateforme MCP. Cela garantit que le message utilisateur à partir de turn_context.activity.text

est inscrit correctement pour la protection contre les menaces en temps réel.

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

Paramètres

Nom Description
turn_context
Obligatoire

TurnContext à partir du Kit de développement logiciel (SDK) Agents contenant des informations de conversation. Doit avoir une activité valide avec conversation.id, activity.id et activity.text.

chat_history_messages
Obligatoire

Liste des objets ChatHistoryMessage représentant l’historique des conversations. Peut être vide : une liste vide envoie toujours une demande à la plateforme MCP avec l’historique des conversations vide.

options

Instance ToolOptions facultative contenant des paramètres facultatifs.

Valeur par défaut: None

Retours

Type Description
<xref:OperationResult>

OpérationResult indiquant la réussite ou l’échec. En cas de réussite, retourne OperationResult.success(). En cas d’échec, retourne OperationResult.failed() avec les détails de l’erreur.

Exceptions

Type Description

Si turn_context est None, chat_history_messages is None, turn_context.activity is None, or any of the required fields (conversation.id, activity.id, activity.text) are missing or empty.

Exemples


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