MCP(원격 모델 컨텍스트 프로토콜) 서버(사용자 고유의 MCP 서버 엔드포인트 가져오기)에서 호스트되는 도구에 연결하여 Foundry 에이전트의 기능을 확장할 수 있습니다. 개발자와 조직은 이러한 서버를 유지 관리합니다. 서버는 Foundry 에이전트 서비스와 같은 MCP 호환 클라이언트가 액세스할 수 있는 도구를 노출합니다.
MCP는 애플리케이션이 LLM(대규모 언어 모델)에 도구 및 컨텍스트 데이터를 제공하는 방법을 정의하는 개방형 표준입니다. 이를 통해 일관되고 확장 가능한 외부 도구를 모델 워크플로에 통합할 수 있습니다.
비 Microsoft 서비스 및 서버 사용에 대한 고려 사항
연결된 비 Microsoft 서비스의 사용은 사용자와 서비스 공급자 간의 조건에 따라 다릅니다. Microsoft가 아닌 서비스에 연결하면 일부 데이터(예: 프롬프트 콘텐츠)가 비 Microsoft 서비스에 전달되거나 애플리케이션이 비 Microsoft 서비스에서 데이터를 받을 수 있습니다. Microsoft가 아닌 서비스 및 데이터의 사용과 해당 사용과 관련된 모든 요금에 대한 책임은 귀하에게 있습니다.
이 문서에 설명된 MCP 도구와 함께 사용하기로 결정한 원격 MCP 서버는 Microsoft가 아닌 타사에서 만들었습니다. Microsoft는 이러한 서버를 테스트하거나 확인하지 않았습니다. Microsoft는 원격 MCP 서버 사용과 관련하여 귀하 또는 다른 사람에게 책임을지지 않습니다.
Foundry 에이전트 서비스에 추가하는 MCP 서버를 신중하게 검토하고 추적하는 것이 좋습니다. 또한 프록시가 아닌 신뢰할 수 있는 서비스 공급자가 호스트하는 서버에 의존하는 것이 좋습니다.
MCP 도구를 사용하면 원격 MCP 서버에 필요할 수 있는 인증 키 또는 스키마와 같은 사용자 지정 헤더를 전달할 수 있습니다. 원격 MCP 서버와 공유되고 감사 목적으로 데이터를 기록하는 모든 데이터를 검토하는 것이 좋습니다. 데이터의 보존 및 위치에 대한 비 Microsoft 사례를 인식해야 합니다.
작동 방식
원격 MCP 서버(기존 MCP 서버 엔드포인트)를 Foundry 에이전트 서비스로 가져와야 합니다. 여러 원격 MCP 서버를 도구로 추가하여 가져올 수 있습니다. 각 도구에 대해 동일한 에이전트 내에서 고유한 server_label 값과 server_url 원격 MCP 서버를 가리키는 값을 제공해야 합니다. Foundry 에이전트 서비스에 추가하는 MCP 서버를 신중하게 검토해야 합니다.
MCP 도구는 사용자 지정 헤더를 지원하므로 필요한 인증 스키마를 사용하거나 MCP 서버에 필요한 다른 헤더를 전달하여 MCP 서버에 연결할 수 있습니다. 각 실행 시 tool_resources에 포함하여야만 헤더를 지정할 수 있습니다. 이러한 방식으로 API 키, OAuth 액세스 토큰 또는 기타 자격 증명을 요청에 직접 넣을 수 있습니다.
가장 일반적으로 사용되는 헤더는 권한 부여 헤더입니다. 전달한 헤더는 현재 실행에만 사용할 수 있으며 유지되지 않습니다.
MCP 사용에 대한 자세한 내용은 다음을 참조하세요.
- 모델 컨텍스트 프로토콜 웹 사이트의 보안 모범 사례입니다.
- Microsoft 보안 커뮤니티 블로그의 MCP 구현에서 보안 위험을 이해하고 완화합니다.
사용량 지원
| Azure AI 파운드리 지원 | Python SDK | C# SDK | JavaScript SDK | REST API | 기본 에이전트 설정 | 표준 에이전트 설정 |
|---|---|---|---|---|---|---|
| - | ✔️ | - | - | ✔️ | ✔️ | ✔️ |
설치 프로그램
빠른 시작의 단계에 따라 Foundry 에이전트를 만듭니다.
연결하려는 원격 MCP 서버(예: GitHub MCP 서버)를 찾습니다.
mcp도구를 사용하여 Foundry 에이전트를 생성하거나 업데이트합니다. 다음 정보를 참조하십시오.-
server_url: MCP 서버의 URL입니다. 예를 들면 다음과 같습니다https://api.githubcopilot.com/mcp/. -
server_label: 에이전트에 대한 이 MCP 서버의 고유 식별자입니다. 예를 들면 다음과 같습니다github. -
allowed_tools: 이 에이전트가 액세스하고 사용할 수 있는 도구의 선택적 목록입니다.
-
실행을 만들고
mcp도구에 대한 추가 정보를tool_resources안에서 헤더를 사용하여 전달합니다.-
tool_label: 에이전트를 만들 때 제공한 식별자를 사용합니다. -
headers: MCP 서버에 필요한 헤더 집합을 전달합니다. -
require_approval: 필요에 따라 승인이 필요한지 여부를 결정합니다. 지원되는 값은 다음과 같습니다.-
always: 개발자는 모든 호출에 대한 승인을 제공해야 합니다. 값을 제공하지 않으면 이 값이 기본값입니다. -
never: 승인이 필요하지 않습니다. -
{"never":[<tool_name_1>, <tool_name_2>]}: 승인이 필요하지 않은 도구 목록을 제공합니다. -
{"always":[<tool_name_1>, <tool_name_2>]}: 승인이 필요한 도구 목록을 제공합니다.
-
-
모델이 승인이 필요한 MCP 서버에서 도구를 호출하려고 하면 실행 상태가
requires_action됩니다. 이 필드에서 MCP 서버에서requires_action호출되는 도구, 전달할 인수 및call_id값에 대한 자세한 내용을 확인할 수 있습니다. 도구와 주장을 검토하여 승인 여부에 대한 정보에 입각한 결정을 내리십시오.call_id를approve로 설정하여true를 사용하여 에이전트에게 승인을 제출합니다.
로컬 MCP 서버 호스트
에이전트 서비스 런타임은 원격 MCP 서버 엔드포인트만 허용합니다. 로컬 MCP 서버에서 도구를 추가하려면 Azure Container Apps 또는 Azure Functions 에서 도구를 자체 호스팅하여 원격 MCP 서버 엔드포인트를 가져와야 합니다. 클라우드에서 로컬 MCP 서버를 호스트하려고 할 때 다음 사항을 고려해야 합니다.
| 로컬 MCP 서버 설정 | Azure Container Apps에서 호스팅 | Azure Functions에서 호스팅 |
|---|---|---|
| 수송 | HTTP POST/GET 엔드포인트가 필요합니다. | HTTP 스트리밍 가능이 필요합니다. |
| 코드 변경 내용 | 컨테이너 재구성이 필요합니다. | 루트 디렉터리에 필요한 Azure Functions 관련 구성 파일입니다. |
| 인증 | 사용자 지정 인증 구현이 필요합니다. | 키 기반 전용입니다. OAuth에는 API Management가 필요합니다. |
| Language | Linux 컨테이너에서 실행되는 모든 언어(Python, Node.js, .NET, TypeScript, Go). | Python, Node.js, Java, .NET만 해당합니다. |
| 컨테이너 요구 사항 | Linux(linux/amd64)만 해당합니다. 권한 있는 컨테이너가 없습니다. | 컨테이너화된 서버는 지원되지 않습니다. |
| 종속성 | 모든 종속성은 컨테이너 이미지에 있어야 합니다. | OS 수준 종속성(예: Playwright)은 지원되지 않습니다. |
| 시스템 상태 | 상태 비저장에만 해당. | 상태 비저장에만 해당. |
| UVX/NPX | 지원됨. | 지원되지 않습니다.
npx 시작 명령은 지원되지 않습니다. |