McpToolServerConfigurationService 클래스

MCP 도구 서버 구성 관리를 위한 서비스를 제공합니다.

이 서비스는 여러 원본에서 MCP(모델 컨텍스트 프로토콜) 도구 서버의 검색 및 구성을 처리합니다.

  • 개발: 로컬 ToolingManifest.json 파일
  • 프로덕션: 원격 도구 게이트웨이 엔드포인트

생성자

McpToolServerConfigurationService()

매개 변수

Name Description
logger
Default value: None

메서드

__init__

MCP 도구 서버 구성 서비스를 초기화합니다.

__new__
list_tool_servers

에이전트에 대해 구성된 MCP 서버 목록을 가져옵니다.

authorization모든 auth_handler_nameturn_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)

매개 변수

Name Description
logger

로깅 작업에 대한 로거 인스턴스입니다. None이면 새 로거를 만듭니다.

Default value: None

__new__

__new__(**kwargs)

list_tool_servers

에이전트에 대해 구성된 MCP 서버 목록을 가져옵니다.

authorization모든 auth_handler_nameturn_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]

매개 변수

Name Description
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

와 함께 authorization사용되는 선택적 TurnContext

Default value: None

반품

형식 Description

인증 컨텍스트가 제공될 때 각각 Authorization 헤더가 연결된 구성된 MCP 서버 목록을 반환합니다.

예외

형식 Description

필요한 매개 변수가 잘못되었거나 비어 있는 경우

도구 게이트웨이와 통신하는 동안 오류가 발생하거나 대상별 토큰 교환이 실패합니다.

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

매개 변수

Name Description
turn_context
필수

대화 정보를 포함하는 에이전트 SDK의 TurnContext입니다. conversation.id, activity.id 및 activity.text가 있는 유효한 활동이 있어야 합니다.

chat_history_messages
필수

채팅 기록을 나타내는 ChatHistoryMessage 개체 목록입니다. 비어 있을 수 있습니다. 빈 목록은 여전히 빈 채팅 기록이 있는 MCP 플랫폼에 요청을 보냅니다.

options

선택적 매개 변수를 포함하는 선택적 ToolOptions 인스턴스입니다.

Default value: None

반품

형식 Description
<xref:OperationResult>

성공 또는 실패를 나타내는 OperationResult입니다. 성공하면 OperationResult.success()를 반환합니다. 실패 시 오류 세부 정보가 포함된 OperationResult.failed()를 반환합니다.

예외

형식 Description

turn_context None이면 chat_history_messages 없음, turn_context.activity가 None이거나 필요한 필드(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")