McpToolServerConfigurationService الفصل

يوفر خدمات لإدارة تكوين خادم أداة MCP.

تعالج هذه الخدمة اكتشاف وتكوين خوادم أدوات MCP (بروتوكول سياق النموذج) من مصادر متعددة:

  • التطوير: ملفات ToolingManifest.json المحلية
  • الإنتاج: نقاط نهاية بوابة الأدوات البعيدة

الدالمنشئ

McpToolServerConfigurationService()

المعلمات

الاسم الوصف
logger
القيمة الافتراضية: None

الأساليب

__init__

تهيئة خدمة تكوين خادم أداة MCP.

__new__
list_tool_servers

يحصل على قائمة خوادم MCP التي تم تكوينها للعامل.

عند authorizationتوفير auth_handler_nameو و turn_context ، يتم الحصول على رموز OAuth المميزة لكل جمهور لكل خادم بعد الاكتشاف:

  • تشترك خوادم 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

__new__

__new__(**kwargs)

list_tool_servers

يحصل على قائمة خوادم MCP التي تم تكوينها للعامل.

عند authorizationتوفير auth_handler_nameو و turn_context ، يتم الحصول على رموز OAuth المميزة لكل جمهور لكل خادم بعد الاكتشاف:

  • تشترك خوادم 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

معرف تطبيق Agentic للعامل.

auth_token
str | None

رمز المصادقة المميز المستخدم لاكتشاف البوابة.

القيمة الافتراضية: None
options

مثيل ToolOptions الاختياري الذي يحتوي على معلمات اختيارية.

القيمة الافتراضية: None
authorization

سياق التخويل الاختياري لتبادل الرمز المميز لكل جمهور.

القيمة الافتراضية: None
auth_handler_name
str | None

اسم معالج المصادقة الاختياري المستخدم مع authorization.

القيمة الافتراضية: None
turn_context

اختياري TurnContext المستخدم مع authorization.

القيمة الافتراضية: 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
مطلوب

TurnContext من Agents SDK التي تحتوي على معلومات المحادثة. يجب أن يكون لديك نشاط صالح مع conversation.id activity.id و activity.text.

chat_history_messages
مطلوب

قائمة كائنات ChatHistoryMessage التي تمثل محفوظات الدردشة. قد تكون فارغة - ستظل القائمة الفارغة ترسل طلبا إلى النظام الأساسي ل MCP مع محفوظات دردشة فارغة.

options

مثيل ToolOptions الاختياري الذي يحتوي على معلمات اختيارية.

القيمة الافتراضية: None

المرتجعات

النوع الوصف
<xref:OperationResult>

OperationResult يشير إلى النجاح أو الفشل. عند النجاح، ترجع OperationResult.success(). عند الفشل، ترجع OperationResult.failed() مع تفاصيل الخطأ.

استثناءات

النوع الوصف

إذا كان turn_context هو بلا، chat_history_messages هو بلا، turn_context.activity هو بلا، أو أي من الحقول المطلوبة (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")