AZURE MCP Server를 HTTPS를 통해 자체 호스팅 원격 서버로 배포합니다. Microsoft Foundry 및 Microsoft Copilot Studio의 에이전트는 배포된 Azure MCP Server를 사용하여 MCP 도구에 안전하게 연결하고 호출하여 Azure 작업을 실행할 수 있습니다. 이 문서에서는 Microsoft Foundry 연결 시나리오에 중점을 둡니다.
필수 조건
- 소유자 또는 사용자 액세스 관리자 액세스 권한이 있는 Azure 구독
- Azure Developer CLI(azd)
- 사용하도록 설정하려는 Azure MCP Server 도구 영역(네임스페이스) 목록입니다( azmcp-commands.md 참조). 이 문서의 참조 템플릿은 네임스페이스를
storage사용합니다. - Azure Storage 계정
- Microsoft Foundry 프로젝트
Azure MCP Server 템플릿
Azure Storage에 안전하게 액세스하기 위해 스토리지 도구 및 Managed Identity를 사용하여 Managed Identity가 포함된 Azure MCP Server - ACAazd 템플릿을 사용하여 Azure Container Apps에 Azure MCP Server를 배포하십시오. Azure 개발자 CLI(azd)는 Azure 리소스 프로비저닝 및 배포를 간소화하고 개발 워크플로의 주요 단계에 매핑되는 간결한 명령(azd deploy, azd provision)을 제공하는 오픈 소스 도구입니다.
Azure MCP 서버 배포
Azure Container Apps에 Azure MCP 서버를 배포합니다.
azmcp-foundry-aca-mi템플릿을 복제하고azd init명령으로 초기화합니다.azd init -t azmcp-foundry-aca-mi메시지가 표시되면 환경 이름을 입력합니다.
명령을 사용하여 템플릿을 실행합니다
azd up.azd upazd에서는 다음을 입력하라는 메시지를 표시합니다.- 구독: 프로비전된 리소스에 대한 구독을 선택합니다(아래 나열됨).
- 프로젝트 리소스 ID: 에이전트 통합에 사용되는 Microsoft Foundry 프로젝트의 Azure 리소스 ID입니다.
- 스토리지 계정 리소스 ID: MCP 서버가 액세스하는 스토리지 계정의 Azure 리소스 ID입니다.
- 리소스 그룹: 프로비전 리소스를 저장할 리소스 그룹을 만들거나 선택합니다.
azd 템플릿 파일을 사용하여 다음 리소스 및 구성을 프로비전합니다.
- Azure Container App: Azure MCP 서버를 실행하고 스토리지 네임스페이스를 제공합니다.
-
Microsoft Entra ID 역할 할당: 스토리지 리소스 ID를 사용하여 지정한 스토리지 계정에 아웃바운드 인증을 위해 Azure Container Apps 관리 ID에 역할을 할당합니다.
- 읽기 권한자: 스토리지 계정 속성에 대한 읽기 전용 액세스입니다.
- Storage Blob 데이터 판독기: Blob 데이터에 대한 읽기 전용 액세스입니다.
-
Entra 앱 등록: 역할이 있는 에이전트와 같은 클라이언트에 대해 OAuth 2.0 인증을
Mcp.Tools.ReadWrite.All제공합니다. 템플릿은 지정한 Microsoft Foundry 프로젝트의 관리 ID에 이 역할을 할당합니다. - Application Insights: 원격 분석 및 모니터링을 제공합니다.
배포 출력
배포가 완료되면
azd프로젝트의 환경 변수를azd env get-values명령을 사용하여 검색합니다.azd env get-values예제 출력:
CONTAINER_APP_URL="https://azure-mcp-storage-server.<your-container-app-name>.eastus2.azurecontainerapps.io" ENTRA_APP_CLIENT_ID="<your-app-client-id>" ENTRA_APP_IDENTIFIER_URI="api://<your-app-client-id>" ENTRA_APP_OBJECT_ID="<your-app-object-id>" ENTRA_APP_ROLE_ID="<your-app-role-id>" ENTRA_APP_SERVICE_PRINCIPAL_ID="<your-app-service-principal-id>"CONTAINER_APP_URL다음 섹션에서 사용할 값과ENTRA_APP_CLIENT_ID값을 복사하거나 참조를 위해 터미널을 열어 둡니다.
AI Foundry 에이전트에서 Azure MCP 서버 사용
배포 후 AI Foundry 에이전트를 Azure Container Apps에서 실행되는 Azure MCP Server에 연결합니다. 에이전트는 관리 ID를 사용하여 인증하여 구성된 Azure Storage 도구에 액세스합니다.
Foundry 프로젝트 https://ai.azure.com/nextgen로 이동하세요.
빌드 → 에이전트 만들기를 선택합니다.
도구 섹션에서 +추가 를 선택합니다.
사용자 지정 탭을 선택합니다.
모델 컨텍스트 프로토콜을 선택한 다음 만들기를 선택합니다.
MCP 연결 값을 구성합니다.
- 이름: 도구의 이름을 입력합니다.
-
원격 MCP 서버:
azd출력에서 도구 엔드포인트의CONTAINER_APP_URL값을 입력하세요. - 인증: Microsoft Entra → 프로젝트 관리 ID를 선택합니다.
- 형식: 프로젝트 관리 ID를 선택합니다.
-
대상:
azd출력의ENTRA_APP_CLIENT_ID값을 입력하세요.
Connect을 선택하여 에이전트와 연결을 설정합니다.
에이전트가 도움을 줄 준비가 완료되었습니다. 질문에 답변하고 Azure MCP Server의 도구를 사용하여 Azure 작업을 수행합니다.
자원을 정리하세요
실행 azd down 하여 Azure 리소스를 삭제합니다.
azd down
Bicep 모듈 살펴보기
azd 템플릿에는 다음 Bicep 모듈이 포함됩니다.
- main.bicep 은 모든 리소스의 배포를 오케스트레이션합니다.
- aca-infrastructure.bicep 은 Azure MCP Server를 호스팅하는 컨테이너 앱을 배포합니다.
- aca-role-assignment-resource-storage.bicep 은 입력 스토리지 계정 리소스 ID로 지정된 스토리지 계정의 컨테이너 앱 관리 ID에 Azure Storage RBAC 역할을 할당합니다.
- entra-app.bicep 은 OAuth 2.0 인증에 대한 Entra 앱 등록 및 사용자 지정 앱 역할을 만듭니다.
- aif-role-assignment-entraapp.bicep 은 Azure MCP Server 액세스를 위해 입력 AI Foundry 리소스 ID로 지정된 AI Foundry 프로젝트의 관리 ID에 Entra 앱 역할을 할당합니다.
- application-insights.bicep 은 사용하도록 설정된 경우 원격 분석 및 모니터링을 위해 Application Insights를 배포합니다.