다음을 통해 공유


.NET AI 및 모델 컨텍스트 프로토콜 시작

MCP(모델 컨텍스트 프로토콜)는 AI 앱과 외부 도구 및 데이터 원본 간의 통합을 표준화하도록 설계된 개방형 프로토콜입니다. 개발자는 MCP를 사용하여 AI 모델의 기능을 향상시켜 보다 정확하고 관련성이 높으며 컨텍스트 인식 응답을 생성할 수 있습니다.

예를 들어 MCP를 사용하여 LLM을 다음과 같은 리소스에 연결할 수 있습니다.

  • 데이터베이스 또는 스토리지 서비스를 문서화합니다.
  • 비즈니스 데이터 또는 논리를 노출하는 웹 API입니다.
  • 파일을 관리하거나 사용자의 디바이스에서 로컬 작업을 수행하는 도구입니다.

많은 Microsoft 제품은 다음을 포함하여 MCP를 이미 지원합니다.

MCP C# SDK를 사용하여 사용자 고유의 MCP 통합을 빠르게 만들고 중요한 코드 변경 없이 다양한 AI 모델 간에 전환할 수 있습니다.

MCP 클라이언트 서버 아키텍처

MCP는 AI 기반 앱(호스트)이 MCP 클라이언트를 통해 여러 MCP 서버에 연결할 수 있도록 하는 클라이언트 서버 아키텍처를 사용합니다.

  • MCP 호스트: MCP를 통해 컨텍스트 리소스를 사용하여 AI 모델을 향상시키는 AI 도구, 코드 편집기 또는 기타 소프트웨어. 예를 들어 Visual Studio Code의 GitHub Copilot는 MCP 호스트 역할을 하고 MCP 클라이언트 및 서버를 사용하여 기능을 확장할 수 있습니다.
  • MCP 클라이언트: 호스트 애플리케이션에서 MCP 서버에 연결하여 컨텍스트 데이터를 검색하는 데 사용하는 클라이언트입니다.
  • MCP 서버: MCP를 통해 클라이언트에 기능을 노출하는 서비스입니다. 예를 들어 MCP 서버는 REST API 또는 로컬 데이터 원본을 통해 추상화하여 AI 모델에 비즈니스 데이터를 제공할 수 있습니다.

다음 다이어그램에서는 이 아키텍처를 보여 줍니다.

호스트, 클라이언트 및 서버를 포함하여 MCP의 아키텍처 패턴을 보여 주는 다이어그램입니다.

MCP 클라이언트와 서버는 표준 메시지 집합을 교환할 수 있습니다.

메시지 설명
InitializeRequest 이 요청은 클라이언트가 처음 연결할 때 서버로 전송되어 초기화를 시작하도록 요청합니다.
ListToolsRequest 서버가 가지고 있는 도구 목록을 요청하기 위해 클라이언트에서 보냅니다.
CallToolRequest 클라이언트에서 서버에서 제공하는 도구를 호출하는 데 사용됩니다.
ListResourcesRequest 사용 가능한 서버 리소스 목록을 요청하기 위해 클라이언트에서 보냅니다.
ReadResourceRequest 클라이언트에서 서버로 전송하여 특정 리소스 URI를 읽습니다.
ListPromptsRequest 서버에서 사용 가능한 프롬프트 및 프롬프트 템플릿 목록을 요청하기 위해 클라이언트에서 보냅니다.
GetPromptRequest 클라이언트에서 서버에서 제공하는 프롬프트를 가져오는 데 사용됩니다.
PingRequest 서버 또는 클라이언트에서 발급한 ping은 상대방이 아직 활성 상태인지 확인합니다.
CreateMessageRequest 클라이언트를 통해 LLM을 샘플링하기 위한 서버의 요청입니다. 클라이언트는 선택할 모델을 완전히 재량합니다. 또한 클라이언트는 샘플링을 시작하기 전에 사용자에게 알려서 요청을 검사하고(루프의 사용자) 승인 여부를 결정할 수 있도록 해야 합니다.
SetLevelRequest 로깅을 사용하거나 조정하기 위한 클라이언트의 서버 요청입니다.

MCP C# SDK를 사용하여 개발

.NET 개발자는 MCP 클라이언트 및 서버를 만들어 사용자 지정 통합을 통해 앱을 향상시킬 수 있습니다. MCP는 AI 모델을 다양한 도구, 서비스 및 데이터 원본에 연결하는 데 관련된 복잡성을 줄입니다.

공식 MCP C# SDK 는 NuGet을 통해 사용할 수 있으며.NET 앱 및 라이브러리용 MCP 클라이언트 및 서버를 빌드할 수 있습니다. SDK는 Microsoft, Anthropic 및 MCP 개방형 프로토콜 조직 간의 협업을 통해 유지 관리됩니다.

시작하려면 MCP C# SDK를 프로젝트에 추가합니다.

dotnet add package ModelContextProtocol --prerelease

각 통합 지점에 대해 고유한 커넥터를 빌드하는 대신 GitHub 및 Docker와 같은 다양한 공급자에서 미리 빌드된 통합을 활용하거나 참조할 수 있습니다.

Microsoft.Extensions.AI 통합

MCP C# SDK는 다양한 AI 상호 작용 및 작업을 처리하기 위해 Microsoft.Extensions.AI 라이브러리 에 따라 달라집니다. 이러한 확장 라이브러리는 AI 서비스 작업을 위한 핵심 유형 및 추상화 기능을 제공하므로 개발자는 특정 플랫폼 또는 공급자 구현보다는 개념적 AI 기능에 대한 코딩에 집중할 수 있습니다.

NuGet 패키지 페이지에서 MCP C# SDK 종속성을 봅니다.

더 많은 .NET MCP 개발 리소스

MCP 클라이언트 및 서버를 빌드하거나 기존 MCP 서버와 통합하는 데 도움이 되는 다양한 도구, 서비스 및 학습 리소스를 .NET 및 Azure 에코시스템에서 사용할 수 있습니다.

다음 개발 도구를 사용하여 시작하세요.

  • 의미 체계 커널 을 사용하면 MCP 서버에 대한 플러그 인을 추가할 수 있습니다. 의미 체계 커널은 표준 I/O를 통해 로컬 MCP 서버와 HTTPS를 통해 SSE를 통해 연결하는 원격 서버를 모두 지원합니다.
  • Azure Functions 원격 MCP 서버 는 MCP 표준을 Azure Functions의 유연한 아키텍처와 결합합니다. 코드 예제를 보려면 원격 MCP 함수 샘플 리포지토리 를 방문하세요.
  • Azure MCP Server 는 AI 에이전트를 Azure Storage, Cosmos DB 등의 주요 Azure 서비스와 원활하게 연결하는 MCP 사양을 구현합니다.

다음 리소스를 사용하여 .NET 및 MCP에 대해 자세히 알아봅니다.