McpToolRegistrationService クラス

エージェントの MCP ツールとサーバーを管理するためのサービス

コンストラクター

McpToolRegistrationService()

パラメーター

名前 説明
logger
規定値: None

メソッド

__init__

OpenAI の MCP ツール登録サービスを初期化します。

__new__
add_tool_servers_to_agent

新しいエージェント インスタンスを作成して、新しい MCP サーバーをエージェントに追加します。

注: OpenAI Agents SDK の制限により、エージェントの作成時に MCP サーバーを設定する必要があります。 新しいサーバーが見つかった場合、このメソッドは、すべての MCP サーバー (既存の + 新規) が適切に初期化された新しいエージェント インスタンスを作成します。

cleanup_all_servers

接続されているすべての MCP サーバーをクリーンアップする

send_chat_history

OpenAI セッションからチャット履歴を抽出し、MCP プラットフォームに送信します。

このメソッドは、get_items() を使用して OpenAI セッション オブジェクトからメッセージを抽出し、リアルタイムの脅威保護のために MCP プラットフォームに送信します。

send_chat_history_messages

脅威を保護するために、OpenAI チャット履歴メッセージを MCP プラットフォームに送信します。

このメソッドは、OpenAI TResponseInputItem メッセージの一覧を受け入れ、それらを ChatHistoryMessage 形式に変換して、MCP プラットフォームに送信します。

メッセージが空の場合や、変換中にすべてのメッセージがフィルター処理された場合でも、

要求は引き続き MCP プラットフォームに送信されます。 これにより、ユーザーは

turn_context.activity.text からのメッセージが正しく登録されている

リアルタイムの脅威保護。

__init__

OpenAI の MCP ツール登録サービスを初期化します。

__init__(logger: Logger | None = None)

パラメーター

名前 説明
logger

ログ記録操作のロガー インスタンス。

規定値: None

__new__

__new__(**kwargs)

add_tool_servers_to_agent

新しいエージェント インスタンスを作成して、新しい MCP サーバーをエージェントに追加します。

注: OpenAI Agents SDK の制限により、エージェントの作成時に MCP サーバーを設定する必要があります。 新しいサーバーが見つかった場合、このメソッドは、すべての MCP サーバー (既存の + 新規) が適切に初期化された新しいエージェント インスタンスを作成します。

async add_tool_servers_to_agent(agent: Agent, auth: Authorization, auth_handler_name: str, context: TurnContext, auth_token: str | None = None) -> Agent

パラメーター

名前 説明
agent
必須
<xref:agents.agent.Agent>

サーバーを追加する既存のエージェント

auth
必須

トークン交換の承認ハンドラー。

auth_handler_name
必須
str

承認ハンドラーの名前。

context
必須

現在の操作のコンテキストを有効にします。

auth_token
str | None

MCP サーバーにアクセスするための認証トークン。

規定値: None

返品

説明
<xref:agents.agent.Agent>

すべての MCP サーバーを含む新しいエージェント インスタンス、または新しいサーバーがない場合は元のエージェント

cleanup_all_servers

接続されているすべての MCP サーバーをクリーンアップする

async cleanup_all_servers() -> None

返品

説明

send_chat_history

OpenAI セッションからチャット履歴を抽出し、MCP プラットフォームに送信します。

このメソッドは、get_items() を使用して OpenAI セッション オブジェクトからメッセージを抽出し、リアルタイムの脅威保護のために MCP プラットフォームに送信します。

async send_chat_history(turn_context: TurnContext, session: Session, limit: int | None = None, options: ToolOptions | None = None) -> OperationResult

パラメーター

名前 説明
turn_context
必須

会話情報を含む Agents SDK の TurnContext。 conversation.id、activity.id、activity.text を含む有効なアクティビティが必要です。

session
必須
<xref:agents.memory.session.Session>

メッセージを抽出する OpenAI セッション インスタンス。 TResponseInputItem のリストを返す get_items() メソッドをサポートする必要があります。

limit
int | None

セッションから取得する項目のオプションの最大数。 [なし] の場合は、すべての項目を取得します。

規定値: None
options

カスタマイズ用の省略可能な ToolOptions。 指定しない場合は、orchestrator_name="OpenAI" で既定のオプションを使用します。

規定値: None

返品

説明

成功または失敗を示す OperationResult。 成功した場合は、OperationResult.success() を返します。 失敗した場合は、エラーの詳細を含む OperationResult.failed() を返します。

例外

説明

turn_contextが None の場合、またはセッションが None の場合。


>>> from agents import Agent, Runner
>>> from microsoft_agents_a365.tooling.extensions.openai import (
...     McpToolRegistrationService
... )
>>>
>>> service = McpToolRegistrationService()
>>> agent = Agent(name="my-agent", model="gpt-4")
>>>
>>> # In your agent handler:
>>> async with Runner.run(agent, messages) as result:
...     session = result.session
...     op_result = await service.send_chat_history(
...         turn_context, session
...     )
...     if op_result.succeeded:
...         print("Chat history sent successfully")

send_chat_history_messages

脅威を保護するために、OpenAI チャット履歴メッセージを MCP プラットフォームに送信します。

このメソッドは、OpenAI TResponseInputItem メッセージの一覧を受け入れ、それらを ChatHistoryMessage 形式に変換して、MCP プラットフォームに送信します。

メッセージが空の場合や、変換中にすべてのメッセージがフィルター処理された場合でも、

要求は引き続き MCP プラットフォームに送信されます。 これにより、ユーザーは

turn_context.activity.text からのメッセージが正しく登録されている

リアルタイムの脅威保護。

async send_chat_history_messages(turn_context: TurnContext, messages: List[EasyInputMessageParam | Message | ResponseOutputMessageParam | ResponseFileSearchToolCallParam | ResponseComputerToolCallParam | ComputerCallOutput | ResponseFunctionWebSearchParam | ResponseFunctionToolCallParam | FunctionCallOutput | ToolSearchCall | ResponseToolSearchOutputItemParamParam | ResponseReasoningItemParam | ResponseCompactionItemParamParam | ImageGenerationCall | ResponseCodeInterpreterToolCallParam | LocalShellCall | LocalShellCallOutput | ShellCall | ShellCallOutput | ApplyPatchCall | ApplyPatchCallOutput | McpListTools | McpApprovalRequest | McpApprovalResponse | McpCall | ResponseCustomToolCallOutputParam | ResponseCustomToolCallParam | ItemReference], options: ToolOptions | None = None) -> OperationResult

パラメーター

名前 説明
turn_context
必須

会話情報を含む Agents SDK の TurnContext。 conversation.id、activity.id、activity.text を含む有効なアクティビティが必要です。

messages
必須
List[<xref:openai.types.responses.easy_input_message_param.EasyInputMessageParam> | <xref:openai.types.responses.response_input_item_param.Message> | <xref:openai.types.responses.response_output_message_param.ResponseOutputMessageParam> | <xref:openai.types.responses.response_file_search_tool_call_param.ResponseFileSearchToolCallParam> | <xref:openai.types.responses.response_computer_tool_call_param.ResponseComputerToolCallParam> | <xref:openai.types.responses.response_input_item_param.ComputerCallOutput> | <xref:openai.types.responses.response_function_web_search_param.ResponseFunctionWebSearchParam> | <xref:openai.types.responses.response_function_tool_call_param.ResponseFunctionToolCallParam> | <xref:openai.types.responses.response_input_item_param.FunctionCallOutput> | <xref:openai.types.responses.response_input_item_param.ToolSearchCall> | <xref:openai.types.responses.response_tool_search_output_item_param_param.ResponseToolSearchOutputItemParamParam> | <xref:openai.types.responses.response_reasoning_item_param.ResponseReasoningItemParam> | <xref:openai.types.responses.response_compaction_item_param_param.ResponseCompactionItemParamParam> | <xref:openai.types.responses.response_input_item_param.ImageGenerationCall> | <xref:openai.types.responses.response_code_interpreter_tool_call_param.ResponseCodeInterpreterToolCallParam> | <xref:openai.types.responses.response_input_item_param.LocalShellCall> | <xref:openai.types.responses.response_input_item_param.LocalShellCallOutput> | <xref:openai.types.responses.response_input_item_param.ShellCall> | <xref:openai.types.responses.response_input_item_param.ShellCallOutput> | <xref:openai.types.responses.response_input_item_param.ApplyPatchCall> | <xref:openai.types.responses.response_input_item_param.ApplyPatchCallOutput> | <xref:openai.types.responses.response_input_item_param.McpListTools> | <xref:openai.types.responses.response_input_item_param.McpApprovalRequest> | <xref:openai.types.responses.response_input_item_param.McpApprovalResponse> | <xref:openai.types.responses.response_input_item_param.McpCall> | <xref:openai.types.responses.response_custom_tool_call_output_param.ResponseCustomToolCallOutputParam> | <xref:openai.types.responses.response_custom_tool_call_param.ResponseCustomToolCallParam> | <xref:openai.types.responses.response_input_item_param.ItemReference>]

送信する OpenAI TResponseInputItem メッセージの一覧。 UserMessage、AssistantMessage、SystemMessage、およびその他の OpenAI メッセージの種類をサポートします。 空にすることができます。要求は引き続き送信され、turn_context.activity.text からユーザー メッセージを登録します。

options

カスタマイズ用の省略可能な ToolOptions。 指定しない場合は、orchestrator_name="OpenAI" で既定のオプションを使用します。

規定値: None

返品

説明

成功または失敗を示す OperationResult。 成功した場合は、OperationResult.success() を返します。 失敗した場合は、エラーの詳細を含む OperationResult.failed() を返します。

例外

説明

turn_contextが None の場合、またはメッセージが None の場合。


>>> from microsoft_agents_a365.tooling.extensions.openai import (
...     McpToolRegistrationService
... )
>>>
>>> service = McpToolRegistrationService()
>>> messages = [
...     {"role": "user", "content": "Hello"},
...     {"role": "assistant", "content": "Hi there!"},
... ]
>>>
>>> result = await service.send_chat_history_messages(
...     turn_context, messages
... )
>>> if result.succeeded:
...     print("Chat history sent successfully")