McpToolServerConfigurationService クラス

MCP ツール サーバー構成管理のサービスを提供します。

このサービスは、複数のソースからの MCP (モデル コンテキスト プロトコル) ツール サーバーの検出と構成を処理します。

  • 開発: ローカル ToolingManifest.json ファイル
  • 運用: リモート ツール ゲートウェイ エンドポイント

コンストラクター

McpToolServerConfigurationService()

パラメーター

名前 説明
logger
規定値: None

メソッド

__init__

MCP ツール サーバー構成サービスを初期化します。

__new__
list_tool_servers

エージェント用に構成されている MCP サーバーの一覧を取得します。

authorizationauth_handler_name、およびturn_contextがすべて提供されると、検出後に各サーバーの対象ユーザーごとの OAuth トークンが取得されます。

  • V1 サーバー ( audience フィールドなし) は、共有 ATG トークン (1 つの交換) を共有します。
  • V2 サーバーはそれぞれ、独自の対象ユーザー GUID をスコープとしたトークンを受け取ります。
send_chat_history

リアルタイムの脅威保護のために、チャット履歴を MCP プラットフォームに送信します。

Note

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 サーバーの一覧を取得します。

authorizationauth_handler_name、およびturn_contextがすべて提供されると、検出後に各サーバーの対象ユーザーごとの OAuth トークンが取得されます。

  • V1 サーバー ( audience フィールドなし) は、共有 ATG トークン (1 つの交換) を共有します。
  • 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 プラットフォームに送信します。

Note

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
必須

会話情報を含む Agents 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")