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
|
| 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__
__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
audienceFeld) 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
|
Agentic App ID für den Agent. |
|
auth_token
|
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
|
Optionaler Authentifizierungshandlername, der mit Standardwert: None
|
|
turn_context
|
Optionaler TurnContext, der mit Standardwert: None
|
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Gibt die Liste der konfigurierten MCP-Server zurück, die jeweils mit einem |
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")