McpToolServerConfigurationService คลาส
ให้บริการสําหรับการจัดการการกําหนดค่าเซิร์ฟเวอร์เครื่องมือ MCP
บริการนี้จะจัดการการค้นพบและการกําหนดค่าของเซิร์ฟเวอร์เครื่องมือ MCP (Model Context Protocol) จากหลายแหล่งข้อมูล:
- การพัฒนา: ไฟล์ ToolingManifest.json ภายในเครื่อง
- การผลิต: จุดสิ้นสุดของเกตเวย์เครื่องมือระยะไกล
คอนสตรักเตอร์
McpToolServerConfigurationService()
พารามิเตอร์
| ชื่อ | คำอธิบาย |
|---|---|
|
logger
|
Default value: None
|
วิธีการ
| __init__ |
เตรียมใช้งานบริการการกําหนดค่าเซิร์ฟเวอร์เครื่องมือ MCP |
| __new__ | |
| list_tool_servers |
รับรายการเซิร์ฟเวอร์ MCP ที่กําหนดค่าสําหรับตัวแทน เมื่อ
|
| send_chat_history |
ส่งประวัติการแชทไปยังแพลตฟอร์ม MCP เพื่อการป้องกันภัยคุกคามแบบเรียลไทม์ Note แม้ว่า chat_history_messages จะว่างเปล่า แต่คําขอจะยังคงถูกส่งไปยัง แพลตฟอร์ม MCP ซึ่งทําให้แน่ใจว่าข้อความของผู้ใช้จาก turn_context.activity.text ลงทะเบียนอย่างถูกต้องสําหรับการป้องกันภัยคุกคามแบบเรียลไทม์ |
__init__
__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
จำเป็น
|
ID แอปตัวแทนสําหรับเจ้าหน้าที่ |
|
auth_token
|
โทเค็นการรับรองความถูกต้องที่ใช้สําหรับการค้นพบเกตเวย์ Default value: None
|
|
options
|
ตัวอย่าง ToolOptions ที่เป็นตัวเลือกที่มีพารามิเตอร์เสริม Default value: None
|
|
authorization
|
บริบทการรับรองความถูกต้องทางเลือกสําหรับการแลกเปลี่ยนโทเค็นต่อผู้ชม Default value: None
|
|
auth_handler_name
|
ชื่อตัวจัดการการรับรองความถูกต้องที่เลือกได้ที่ใช้กับ Default value: None
|
|
turn_context
|
TurnContext ทางเลือกที่ใช้กับ Default value: None
|
การส่งคืน
| พิมพ์ | คำอธิบาย |
|---|---|
|
แสดงรายการของเซิร์ฟเวอร์ MCP ที่มีการกําหนดค่าแต่ละรายการด้วยส่วนหัวที่ |
ข้อยกเว้น
| พิมพ์ | คำอธิบาย |
|---|---|
|
ถ้าพารามิเตอร์ที่จําเป็นไม่ถูกต้องหรือว่างเปล่า |
|
|
ถ้ามีข้อผิดพลาดในการสื่อสารกับเกตเวย์เครื่องมือหรือการแลกเปลี่ยนโทเค็นต่อผู้ชมล้มเหลว |
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")