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 클라이언트와 서버는 표준 메시지 집합을 교환할 수 있습니다.
메시지 | 설명 |
---|---|
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에 대해 자세히 알아봅니다.
- Microsoft는 Anthropic과 협력하여 모델 컨텍스트 프로토콜용 공식 C# SDK를 만듭니다.
- C에서 MCP(모델 컨텍스트 프로토콜) 서버 빌드#
- MCP C# SDK 추가 정보
관련 콘텐츠
.NET