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
|
| 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__
__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
audiencecampo) 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
|
Id. de aplicación agente para el agente. |
|
auth_token
|
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
|
Nombre de controlador de autenticación opcional usado con Valor predeterminado: None
|
|
turn_context
|
TurnContext opcional usado con Valor predeterminado: None
|
Devoluciones
| Tipo | Description |
|---|---|
|
Devuelve la lista de servidores MCP configurados, cada uno con un |
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")