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

מזהה אפליקציה סוכן עבור הסוכן.

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 מ- 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")