C# SDK 개념 문서
C# SDK 개념 문서
MCP C# SDK가 프로토콜을 어떻게 구현하는지 고수준에서 이해하게 도와주는 개념 문서예요. 첫 클라이언트/서버부터 배포, 기본 프로토콜, 클라이언트·서버 기능까지 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)
- MCP C# SDK API 문서 — API 레퍼런스
- 공식 MCP 문서 — 프로토콜 스펙