McpToolServerConfigurationService 类
提供 MCP 工具服务器配置管理的服务。
此服务处理来自多个源的 MCP(模型上下文协议)工具服务器的发现和配置:
- 开发:本地 ToolingManifest.json 文件
- 生产:远程工具网关终结点
构造函数
McpToolServerConfigurationService()
参数
| 名称 | 说明 |
|---|---|
|
logger
|
默认值: None
|
方法
| __init__ |
初始化 MCP 工具服务器配置服务。 |
| __new__ | |
| list_tool_servers |
获取为代理配置的 MCP 服务器的列表。
|
| send_chat_history |
将聊天历史记录发送到 MCP 平台进行实时威胁防护。 注释 即使chat_history_messages为空,请求仍将发送到 MCP 平台。 这可确保来自 turn_context.activity.text 的用户消息 为实时威胁防护正确注册。 |
__init__
__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
必需
|
代理的代理应用 ID。 |
|
auth_token
|
用于网关发现的身份验证令牌。 默认值: None
|
|
options
|
包含可选参数的可选 ToolOptions 实例。 默认值: None
|
|
authorization
|
每个受众令牌交换的可选授权上下文。 默认值: None
|
|
auth_handler_name
|
用于 默认值: None
|
|
turn_context
|
与 . 一起使用 默认值: None
|
返回
| 类型 | 说明 |
|---|---|
|
返回配置的 MCP 服务器列表,其中每个服务器都 |
例外
| 类型 | 说明 |
|---|---|
|
如果需要的参数无效或为空。 |
|
|
如果与工具网关通信时出错,或者每个受众令牌交换失败。 |
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")