피드로 돌아가기
Dev.toInfrastructure
원문 읽기
.NET 10 기반 Streamable HTTP 전송을 통한 원격 MCP 서버 구축 및 Azure Container Apps 배포
Build and deploy an MCP server with .NET and Azure Container Apps
AI 요약
Context
기존 MCP 서버의 로컬 stdio 프로세스 의존성으로 인한 확장성 및 외부 접근성 제한 발생. 일반 HTTP 서비스처럼 독립적 스케일링과 원격 클라이언트 접속이 가능한 구조적 전환 필요.
Technical Solution
- Streamable HTTP transport 채택을 통한 표준 HTTP 서비스 기반의 원격 도구 인터페이스 구현
- ModelContextProtocol.AspNetCore 라이브러리를 활용한 ASP.NET Core 서비스 컬렉션 내 MCP 서버 통합
- WithToolsFromAssembly 메서드와 속성 기반 검색 기능을 통한 도구 등록 프로세스의 자동화 및 서버 코드 간소화
- 비즈니스 로직을 일반 C# 서비스로 분리하여 프로토콜 계층과 도메인 로직 간의 결합도 최소화
- Docker 컨테이너화를 통한 Azure Container Apps 배포로 인그레스 및 헬스 체크 기반의 인프라 관리 체계 구축
- Stateless 설정을 통한 서버리스 환경 최적화 및 수평적 확장성 확보
실천 포인트
- 정적 API Key 대신 강화된 Authentication 및 Authorization 모델 도입 검토 - OpenTelemetry 및 Aspire 대시보드를 통한 도구 호출 지연 시간 및 실패율 관측성 확보 - /mcp 엔드포인트와 헤더 설정을 검증하는 통합 테스트 케이스 작성 - 도구 명세의 모호함을 제거하기 위해 명시적인 파라미터 정의와 예측 가능한 에러 핸들링 설계