일타 저스틴의 MCP 강의 04 C#으로 MCP 서버 만들기
뉴테크프라임 » 일타 저스틴의 MCP 강의 04-001. Model Context Protocol (MCP) C# SDK
가장 먼저 할 일은 프로젝트에 필요한 패키지를 추가하는 것입니다.
ModelContextProtocol
은 MCP 서버를 구현하는 데 핵심적인 패키지이고, Microsoft.Extensions.Hosting
은 .NET 애플리케이션의 호스팅 환경을 설정하는 데 사용됩니다.
다음으로, Program.cs
파일에서 MCP 서버 서비스를 구성해야 합니다.
1 2 3 4 5 6 7 8 9 10 |
var builder = Host.CreateEmptyApplicationBuilder(settings: null); builder.Services.AddMcpServer() .WithStdioServerTransport() .WithToolsFromAssembly(); var app = builder.Build(); await app.RunAsync(); |
Services.AddMcpServer()
: 이 메서드는 애플리케이션의 의존성 주입 컨테이너에 MCP 서버 서비스를 등록합니다. MCP 서버를 실행하는 데 필요한 구성 요소를 초기화하는 역할을 합니다..WithStdioServerTransport()
: 이 메서드는 표준 입출력(stdio)을 통신 전송 메커니즘으로 사용하도록 서버를 구성합니다. 다시 말해, 서버와 클라이언트가 앱의 표준 입력 및 출력 스트림을 통해 통신하게 만든다는 의미입니다. 특히 stdio를 통해 작동하는 도구나 환경과 통합할 때 유용하죠..WithToolsFromAssembly()
: 이 메서드는 현재 어셈블리에서[McpServerToolType]
이나[McpServerTool]
과 같은 특정 MCP 속성으로 장식된 클래스 및 메서드를 자동으로 스캔합니다. 그리고 이 메서드들을 MCP 서버가 클라이언트에 노출할 수 있는 ‘도구’로 등록합니다.
이제 MCP 서버가 제공할 실제 기능을 코드로 작성할 차례입니다.
[McpServerToolType]
클래스를 작성하고 [McpServerTool]
메소드를 작성합니다. [McpServerToolType]
은 이 클래스가 MCP 도구를 포함하고 있음을 나타내고, [McpServerTool]
은 특정 메서드가 MCP 서버를 통해 외부로 노출될 ‘도구’임을 명시합니다. Description
속성도 보이시죠? 이 도구가 어떤 기능을 하는지 설명해 주는 역할을 합니다.
이제 서버를 만들었으니, 이 서버를 MCP 호스트 앱에서 사용하도록 설정해야 합니다.
Claude 데스크탑 앱이라고 하면, 설정(Settings) -> 개발자(Developers) 탭으로 이동하여 ‘edit config’를 클릭하고, JSON 형식의 설정 파일을 수정합니다.