McpToolServerConfigurationService Klasse

Stellt Dienste für die Konfiguration von MCP-Toolservern bereit.

Dieser Dienst behandelt die Ermittlung und Konfiguration von MCP-Toolservern (Model Context Protocol) aus mehreren Quellen:

  • Entwicklung: Lokale ToolingManifest.json-Dateien
  • Produktion: Remotetoolgateway-Endpunkte

Konstruktor

McpToolServerConfigurationService()

Parameter

Name Beschreibung
logger
Standardwert: None

Methoden

__init__

Initialisieren Sie den MCP-Toolserver-Konfigurationsdienst.

__new__
list_tool_servers

Ruft die Liste der MCP-Server ab, die für den Agent konfiguriert sind.

Wenn authorization, auth_handler_nameund turn_context alle bereitgestellt werden, werden OAuth-Token pro Zielgruppe für jeden Server nach der Ermittlung erworben:

  • V1-Server (kein audience Feld) teilen das freigegebene ATG-Token (ein Austausch).
  • V2-Server erhalten jeweils ein Token, das auf ihre eigene Zielgruppen-GUID ausgelegt ist.
send_chat_history

Sendet den Chatverlauf für den Echtzeit-Bedrohungsschutz an die MCP-Plattform.

Note

Auch wenn chat_history_messages leer ist, wird die Anforderung weiterhin an

die MCP-Plattform. Dadurch wird sichergestellt, dass die Benutzernachricht von turn_context.activity.text

wird ordnungsgemäß für den Echtzeit-Bedrohungsschutz registriert.

__init__

Initialisieren Sie den MCP-Toolserver-Konfigurationsdienst.

__init__(logger: Logger | None = None)

Parameter

Name Beschreibung
logger

Loggerinstanz für Protokollierungsvorgänge. Wenn keines vorhanden ist, wird ein neuer Logger erstellt.

Standardwert: None

__new__

__new__(**kwargs)

list_tool_servers

Ruft die Liste der MCP-Server ab, die für den Agent konfiguriert sind.

Wenn authorization, auth_handler_nameund turn_context alle bereitgestellt werden, werden OAuth-Token pro Zielgruppe für jeden Server nach der Ermittlung erworben:

  • V1-Server (kein audience Feld) teilen das freigegebene ATG-Token (ein Austausch).
  • V2-Server erhalten jeweils ein Token, das auf ihre eigene Zielgruppen-GUID ausgelegt ist.
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]

Parameter

Name Beschreibung
agentic_app_id
Erforderlich
str

Agentic App ID für den Agent.

auth_token
str | None

Authentifizierungstoken, das für die Gatewayermittlung verwendet wird.

Standardwert: None
options

Optionale ToolOptions-Instanz mit optionalen Parametern.

Standardwert: None
authorization

Optionaler Autorisierungskontext für den Austausch von Token pro Zielgruppe.

Standardwert: None
auth_handler_name
str | None

Optionaler Authentifizierungshandlername, der mit authorization.

Standardwert: None
turn_context

Optionaler TurnContext, der mit authorization.

Standardwert: None

Gibt zurück

Typ Beschreibung

Gibt die Liste der konfigurierten MCP-Server zurück, die jeweils mit einem Authorization Header verbunden sind, wenn der Authentifizierungskontext bereitgestellt wird.

Ausnahmen

Typ Beschreibung

Wenn erforderliche Parameter ungültig oder leer sind.

Wenn beim Kommunizieren mit dem Toolgateway oder bei einem Tokenaustausch pro Zielgruppe ein Fehler auftritt.

send_chat_history

Sendet den Chatverlauf für den Echtzeit-Bedrohungsschutz an die MCP-Plattform.

Note

Auch wenn chat_history_messages leer ist, wird die Anforderung weiterhin an

die MCP-Plattform. Dadurch wird sichergestellt, dass die Benutzernachricht von turn_context.activity.text

wird ordnungsgemäß für den Echtzeit-Bedrohungsschutz registriert.

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

Parameter

Name Beschreibung
turn_context
Erforderlich

TurnContext aus dem Agents SDK mit Unterhaltungsinformationen. Muss über eine gültige Aktivität mit conversation.id, activity.id und activity.text verfügen.

chat_history_messages
Erforderlich

Liste der ChatHistoryMessage-Objekte, die den Chatverlauf darstellen. Kann leer sein – eine leere Liste sendet weiterhin eine Anforderung an die MCP-Plattform mit leerem Chatverlauf.

options

Optionale ToolOptions-Instanz mit optionalen Parametern.

Standardwert: None

Gibt zurück

Typ Beschreibung
<xref:OperationResult>

Ein OperationResult, das Erfolg oder Fehler angibt. Bei Erfolg gibt OperationResult.success() zurück. Gibt "OperationResult.failed()" mit Fehlerdetails zurück.

Ausnahmen

Typ Beschreibung

Wenn turn_context "Keine" ist, ist chat_history_messages "Keine", "turn_context.activity" "None" oder eines der erforderlichen Felder (conversation.id, activity.id, Activity.text) fehlt oder leer.

Beispiele


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