C# SDK 개념 문서

C# SDK 개념 문서

MCP C# SDK가 프로토콜을 어떻게 구현하는지 고수준에서 이해하게 도와주는 개념 문서예요. 첫 클라이언트/서버부터 배포, 기본 프로토콜, 클라이언트·서버 기능까지 SDK의 주요 지점을 안내합니다.

출처: Conceptual documentation - MCP C# SDK

아래는 개념 문서의 목차예요. 각 문서는 한 가지 주제를 깊게 다룹니다.

시작하기

SDK를 설치하고 첫 MCP 클라이언트와 서버를 만들려면 Getting started를 보세요.

배포 (Deployment)

제목 설명
Docker 배포 Streamable HTTP 트랜스포트를 사용해 ASP.NET Core MCP 서버를 Docker 컨테이너로 패키징하고 실행하는 방법

기본 프로토콜

제목 설명
역량 (Capabilities) 프로토콜 버전 협상을 포함해 초기화 중에 클라이언트·서버 역량이 어떻게 협상되는지
트랜스포트 (Transports) 클라이언트-서버 통신을 위해 stdio, Streamable HTTP, SSE 트랜스포트를 구성하는 방법
무상태 vs 상태 유지 HTTP 서버에서 무상태/상태 유지 모드 언제 쓸지와 세션 구성 방법
Ping ping 메커니즘으로 연결 상태 확인하는 방법
진행 추적 (Progress) 알림 메시지를 통해 장기 실행 작업의 진행도를 추적하는 방법
취소 (Cancellation) 취소 토큰과 알림으로 진행 중인 MCP 요청을 취소하는 방법
MRTR (Multi Round-Trip Requests) input-required 결과와 재시도를 이용해 도구 실행 중 서버가 클라이언트 입력을 요청하는 방법

클라이언트 기능

제목 설명
샘플링 (Sampling) 샘플링 기능으로 서버가 클라이언트에 LLM 완성을 요청하는 방법
루트 (Roots) 컨텍스트 인식 작업을 위해 클라이언트가 서버에 파일시스템 루트를 제공하는 방법
일렉시테이션 (Elicitation) 상호작용 중 사용자에게 추가 정보를 요청하는 방법

서버 기능

제목 설명
도구 (Tools) 텍스트·이미지·오디오·임베디드 리소스를 반환하는 도구를 구현하고 소비하는 방법
리소스 (Resources) 템플릿과 구독을 포함해 MCP 리소스로 데이터를 노출·소비하는 방법
프롬프트 (Prompts) 풍부한 콘텐츠 타입의 재사용 가능한 프롬프트 템플릿을 구현하고 소비하는 방법
완성 (Completions) 프롬프트와 리소스 템플릿에 대한 인자 자동완성을 구현하는 방법
로깅 (Logging) MCP 서버에서 로깅을 구현하고 클라이언트가 로그 메시지를 소비하는 방법
페이지네이션 (Pagination) 도구·프롬프트·리소스를 나열할 때 커서 기반 페이지네이션 사용 방법
HTTP 컨텍스트 요청의 기본 HttpContext에 접근하는 방법
핸들러 필터 핸들러 파이프라인에 필터를 추가하는 방법. 필터로 원래 핸들러를 추가 기능으로 감쌀 수 있어요

확장 (Extensions)

제목 설명
MCP Apps MCP 서버에서 인터랙티브 UI를 전달하는 MCP Apps 확장 사용 방법
작업 (Tasks) 상태와 결과를 폴링할 수 있는 장기 실행 작업에 작업 기반 실행을 사용하는 방법
식별자와 역할 (Identity and Roles) MCP 도구·프롬프트·리소스 핸들러에서 호출자 식별자와 역할에 접근하는 방법

더 알아보기 (Learn more)