McpToolServerConfigurationService คลาส

ให้บริการสําหรับการจัดการการกําหนดค่าเซิร์ฟเวอร์เครื่องมือ MCP

บริการนี้จะจัดการการค้นพบและการกําหนดค่าของเซิร์ฟเวอร์เครื่องมือ MCP (Model Context Protocol) จากหลายแหล่งข้อมูล:

  • การพัฒนา: ไฟล์ ToolingManifest.json ภายในเครื่อง
  • การผลิต: จุดสิ้นสุดของเกตเวย์เครื่องมือระยะไกล

คอนสตรักเตอร์

McpToolServerConfigurationService()

พารามิเตอร์

ชื่อ คำอธิบาย
logger
Default value: None

วิธีการ

__init__

เตรียมใช้งานบริการการกําหนดค่าเซิร์ฟเวอร์เครื่องมือ MCP

__new__
list_tool_servers

รับรายการเซิร์ฟเวอร์ MCP ที่กําหนดค่าสําหรับตัวแทน

เมื่อ authorization, auth_handler_nameและ turn_context ทั้งหมดมีให้ ได้รับโทเค็น OAuth ต่อผู้ชมสําหรับแต่ละเซิร์ฟเวอร์หลังจากการค้นพบ:

  • เซิร์ฟเวอร์ V1 (ไม่มี audience เขตข้อมูล) แชร์โทเค็น ATG ที่ใช้ร่วมกัน (การแลกเปลี่ยนหนึ่งรายการ)
  • เซิร์ฟเวอร์ V2 แต่ละรายการได้รับโทเค็นที่ครอบคลุม GUID สําหรับผู้ชมของตนเอง
send_chat_history

ส่งประวัติการแชทไปยังแพลตฟอร์ม MCP เพื่อการป้องกันภัยคุกคามแบบเรียลไทม์

Note

แม้ว่า chat_history_messages จะว่างเปล่า แต่คําขอจะยังคงถูกส่งไปยัง

แพลตฟอร์ม MCP ซึ่งทําให้แน่ใจว่าข้อความของผู้ใช้จาก turn_context.activity.text

ลงทะเบียนอย่างถูกต้องสําหรับการป้องกันภัยคุกคามแบบเรียลไทม์

__init__

เตรียมใช้งานบริการการกําหนดค่าเซิร์ฟเวอร์เครื่องมือ MCP

__init__(logger: Logger | None = None)

พารามิเตอร์

ชื่อ คำอธิบาย
logger

อินสแตนซ์ตัวบันทึกสําหรับการดําเนินการบันทึก หากไม่มี ให้สร้างตัวบันทึกใหม่

Default value: 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

ID แอปตัวแทนสําหรับเจ้าหน้าที่

auth_token
str | None

โทเค็นการรับรองความถูกต้องที่ใช้สําหรับการค้นพบเกตเวย์

Default value: None
options

ตัวอย่าง ToolOptions ที่เป็นตัวเลือกที่มีพารามิเตอร์เสริม

Default value: None
authorization

บริบทการรับรองความถูกต้องทางเลือกสําหรับการแลกเปลี่ยนโทเค็นต่อผู้ชม

Default value: None
auth_handler_name
str | None

ชื่อตัวจัดการการรับรองความถูกต้องที่เลือกได้ที่ใช้กับauthorization

Default value: None
turn_context

TurnContext ทางเลือกที่ใช้กับauthorization

Default value: 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
จำเป็น

TurnContext จาก SDK ตัวแทนที่ประกอบด้วยข้อมูลการสนทนา ต้องมีกิจกรรมที่ถูกต้องพร้อมด้วย conversation.id activity.id และ activity.text

chat_history_messages
จำเป็น

รายการของวัตถุ ChatHistoryMessage ที่แสดงประวัติการแชท อาจว่างเปล่า - รายการที่ว่างเปล่าจะยังคงส่งคําขอไปยังแพลตฟอร์ม MCP ที่มีประวัติการแชทที่ว่างเปล่า

options

ตัวอย่าง ToolOptions ที่เป็นตัวเลือกที่มีพารามิเตอร์เสริม

Default value: None

การส่งคืน

พิมพ์ คำอธิบาย
<xref:OperationResult>

OperationResult ที่ระบุความสําเร็จหรือความล้มเหลว เมื่อประสบความสําเร็จ ส่งกลับ OperationResult.success() เมื่อล้มเหลว ส่งกลับ OperationResult.failed() ที่มีรายละเอียดข้อผิดพลาด

ข้อยกเว้น

พิมพ์ คำอธิบาย

ถ้า turn_context คือ ไม่มี chat_history_messages คือ ไม่มี turn_context.กิจกรรมคือ ไม่มี หรือเขตข้อมูลที่จําเป็นใดๆ (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")