McpToolServerConfigurationService 类

提供 MCP 工具服务器配置管理的服务。

此服务处理来自多个源的 MCP(模型上下文协议)工具服务器的发现和配置:

  • 开发:本地 ToolingManifest.json 文件
  • 生产:远程工具网关终结点

构造函数

McpToolServerConfigurationService()

参数

名称 说明
logger
默认值: None

方法

__init__

初始化 MCP 工具服务器配置服务。

__new__
list_tool_servers

获取为代理配置的 MCP 服务器的列表。

auth_handler_name发现后,会为每个服务器获取每个受众 OAuth 令牌,authorization并且turn_context全部提供:

  • V1 服务器(无 audience 字段)共享共享共享 ATG 令牌(一个交换)。
  • V2 服务器每个服务器都接收一个令牌,其范围限定为自己的受众 GUID。
send_chat_history

将聊天历史记录发送到 MCP 平台进行实时威胁防护。

注释

即使chat_history_messages为空,请求仍将发送到

MCP 平台。 这可确保来自 turn_context.activity.text 的用户消息

为实时威胁防护正确注册。

__init__

初始化 MCP 工具服务器配置服务。

__init__(logger: Logger | None = None)

参数

名称 说明
logger

日志记录作的记录器实例。 如果为 None,则创建新的记录器。

默认值: None

__new__

__new__(**kwargs)

list_tool_servers

获取为代理配置的 MCP 服务器的列表。

auth_handler_name发现后,会为每个服务器获取每个受众 OAuth 令牌,authorization并且turn_context全部提供:

  • V1 服务器(无 audience 字段)共享共享共享 ATG 令牌(一个交换)。
  • V2 服务器每个服务器都接收一个令牌,其范围限定为自己的受众 GUID。
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]

参数

名称 说明
agentic_app_id
必需
str

代理的代理应用 ID。

auth_token
str | None

用于网关发现的身份验证令牌。

默认值: None
options

包含可选参数的可选 ToolOptions 实例。

默认值: None
authorization

每个受众令牌交换的可选授权上下文。

默认值: None
auth_handler_name
str | None

用于 authorization. 的可选身份验证处理程序名称。

默认值: None
turn_context

与 . 一起使用 authorization的可选 TurnContext 。

默认值: None

返回

类型 说明

返回配置的 MCP 服务器列表,其中每个服务器都 Authorization 附加了身份验证上下文时附加的标头。

例外

类型 说明

如果需要的参数无效或为空。

如果与工具网关通信时出错,或者每个受众令牌交换失败。

send_chat_history

将聊天历史记录发送到 MCP 平台进行实时威胁防护。

注释

即使chat_history_messages为空,请求仍将发送到

MCP 平台。 这可确保来自 turn_context.activity.text 的用户消息

为实时威胁防护正确注册。

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

参数

名称 说明
turn_context
必需

来自包含聊天信息的代理 SDK 的 TurnContext。 必须具有具有 conversation.id、activity.id 和 activity.text 的有效活动。

chat_history_messages
必需

表示聊天历史记录的 ChatHistoryMessage 对象列表。 可能为空 - 空列表仍将向具有空聊天历史记录的 MCP 平台发送请求。

options

包含可选参数的可选 ToolOptions 实例。

默认值: None

返回

类型 说明
<xref:OperationResult>

指示成功或失败的 OperationResult。 成功时,返回 OperationResult.success()。 失败时,返回 OperationResult.failed(),并返回错误详细信息。

例外

类型 说明

如果turn_context为 None,则chat_history_messages为 None、turn_context.activity 为 None 或任何必填字段(conversation.id、activity.id、activity.text)缺失或为空。

示例


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