McpToolServerConfigurationService Clase

Proporciona servicios para la administración de la configuración del servidor de herramientas MCP.

Este servicio controla la detección y configuración de servidores de herramientas mcP (protocolo de contexto de modelo) de varios orígenes:

  • Desarrollo: archivos de ToolingManifest.json locales
  • Producción: puntos de conexión de puerta de enlace de herramientas remotas

Constructor

McpToolServerConfigurationService()

Parámetros

Nombre Description
logger
Valor predeterminado: None

Métodos

__init__

Inicialice el servicio de configuración del servidor de herramientas de MCP.

__new__
list_tool_servers

Obtiene la lista de servidores MCP configurados para el agente.

Cuando authorizationse proporcionan , auth_handler_namey turn_context , todos los tokens de OAuth por audiencia se adquieren para cada servidor después de la detección:

  • Los servidores V1 (sin audience campo) comparten el token de ATG compartido (un intercambio).
  • Cada uno de los servidores V2 recibe un token con ámbito de su propio GUID de audiencia.
send_chat_history

Envía el historial de chat a la plataforma MCP para la protección contra amenazas en tiempo real.

Nota:

Incluso si chat_history_messages está vacío, la solicitud se seguirá enviando a

la plataforma MCP. Esto garantiza que el mensaje de usuario de turn_context.activity.text

se registra correctamente para la protección contra amenazas en tiempo real.

__init__

Inicialice el servicio de configuración del servidor de herramientas de MCP.

__init__(logger: Logger | None = None)

Parámetros

Nombre Description
logger

Instancia del registrador para las operaciones de registro. Si no, crea un nuevo registrador.

Valor predeterminado: None

__new__

__new__(**kwargs)

list_tool_servers

Obtiene la lista de servidores MCP configurados para el agente.

Cuando authorizationse proporcionan , auth_handler_namey turn_context , todos los tokens de OAuth por audiencia se adquieren para cada servidor después de la detección:

  • Los servidores V1 (sin audience campo) comparten el token de ATG compartido (un intercambio).
  • Cada uno de los servidores V2 recibe un token con ámbito de su propio GUID de audiencia.
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

Nombre Description
agentic_app_id
Requerido
str

Id. de aplicación agente para el agente.

auth_token
str | None

Token de autenticación usado para la detección de puerta de enlace.

Valor predeterminado: None
options

Instancia opcional de ToolOptions que contiene parámetros opcionales.

Valor predeterminado: None
authorization

Contexto de autorización opcional para el intercambio de tokens por audiencia.

Valor predeterminado: None
auth_handler_name
str | None

Nombre de controlador de autenticación opcional usado con authorization.

Valor predeterminado: None
turn_context

TurnContext opcional usado con authorization.

Valor predeterminado: None

Devoluciones

Tipo Description

Devuelve la lista de servidores MCP configurados, cada uno con un Authorization encabezado adjunto cuando se proporciona el contexto de autenticación.

Excepciones

Tipo Description

Si los parámetros necesarios no son válidos o están vacíos.

Si se produce un error al comunicarse con la puerta de enlace de herramientas o se produce un error en el intercambio de tokens por audiencia.

send_chat_history

Envía el historial de chat a la plataforma MCP para la protección contra amenazas en tiempo real.

Nota:

Incluso si chat_history_messages está vacío, la solicitud se seguirá enviando a

la plataforma MCP. Esto garantiza que el mensaje de usuario de turn_context.activity.text

se registra correctamente para la protección contra amenazas en tiempo real.

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

Parámetros

Nombre Description
turn_context
Requerido

TurnContext del SDK de agentes que contiene información de conversación. Debe tener una actividad válida con conversation.id, activity.id y activity.text.

chat_history_messages
Requerido

Lista de objetos ChatHistoryMessage que representan el historial de chats. Puede estar vacía: una lista vacía seguirá enviando una solicitud a la plataforma MCP con historial de chat vacío.

options

Instancia opcional de ToolOptions que contiene parámetros opcionales.

Valor predeterminado: None

Devoluciones

Tipo Description
<xref:OperationResult>

OperationResult que indica si se ha realizado correctamente o no. Si se ejecuta correctamente, devuelve OperationResult.success(). En caso de error, devuelve OperationResult.failed() con detalles de error.

Excepciones

Tipo Description

Si turn_context es Ninguno, chat_history_messages es Ninguno, turn_context.activity es Ninguno o ninguno de los campos necesarios (conversation.id, activity.id, activity.text) faltan o están vacíos.

Ejemplos


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