[AI | MCP] Day 2. .NET Framework 환경에서 MCP Server 구축하기

2025. 4. 8. 17:38·🧙🏻‍♀️🌌 고독한 개발자의 삶/한국에서C#개발자로살아남기

[출처] Creating an MCP Server and Client with .NET: A Step-by-Step Guide

 

아무래도 간단한 테스트 버전이라도 구현해보고
직접 굴려봐야 내부 동작 이해가 가능할 것 같았다...

(오늘의 좌우명 : 막히면 일단 박치기 !)

Visual Studio 2022 에서 MCP Server와 Client, 각각의 콘솔 앱을 세팅하는 과정을 정리해보았다.

 

 

1. 프로젝트 초기 환경 세팅

1. [새 프로젝트 만들기] - 콘솔 앱 (.NET Framework) 선택 - 새 프로젝트 구성  (아래 사진 참고)


* 참고 영상 내용 =>
콘솔 앱 (기본) 선택 - 프레임워크 .NET 9.0 버전 선택

저는 .NET Framework 4.8.1 로 선택했어요

 

 

2. [도구] - Nuget 패키지 관리자 - 솔루션용 Nuget 패키지 관리

- ModelContextProtocol (version=0.1.0-preview.4)

- Microsoft.Extensions.Hosting

(Serilog 패키지는 생략)

ModelContextProtocol  설치 화면

 

 

* 왜 Nuget 패키지 관리자에서 "ModelContextProtocol" 패키지가 안보이는가 * 에 대한 해결방법...

짜잔~ ;;;

 

콘솔 앱 .NET 8.0/9.0 의 경우, PowerShell 로 패키지 추가하는 방법
PS C:\Users\user\source\repos> cd .\MCP_Test\
PS C:\Users\user\source\repos\MCP_Test> cd .\McpServer\
PS C:\Users\user\source\repos\MCP_Test\McpServer> dotnet add package ModelContextProtocol --version 0.1.0-preview.4
  	복원할 프로젝트를 확인하는 중...
  	...
    log  : C:\Users\user\source\repos\MCP_Test\McpServer\McpServer.csproj을(를) 1.11 sec 동안 복원했습니다.

PS C:\Users\user\source\repos\MCP_Test\McpServer> dotnet add package Microsoft.Extensions.Hosting
    복원할 프로젝트를 확인하는 중...
    ...
    log  : C:\Users\user\source\repos\MCP_Test\McpServer\McpServer.csproj을(를) 3.14 sec 동안 복원했습니다.

 

* 콘솔 앱 ( .NET Framework ) 은  dotnet add package ... 명령이 안되어요... (미래의 나~ 해결해줘~)

PS C:\Users\user\source\repos\MCP_Test\McpServer> dotnet add package ModelContextProtocol --version 0.1.0-preview.4
  복원할 프로젝트를 확인하는 중...
  Writing C:\Users\user\AppData\Local\Temp\tmpchmzoc.tmp
info : X.509 certificate chain validation will use the default trust store selected by .NET for code signing.
info : X.509 certificate chain validation will use the default trust store selected by .NET for timestamping.
info : 'C:\Users\user\source\repos\MCP_Test\McpServer\McpServer.csproj' 프로젝트에 'ModelContextProtocol' 패키지에 대한 PackageReference 를 추가하는 중입니다.
error: 패키지 'ModelContextProtocol'을(를) 프로젝트  'C:\Users\user\source\repos\MCP_Test\McpServer\McpServer.csproj'(으)로 추가하는 중 오류가 발생했습니다. add package 명령을 통한 패키지 참조 추가는 프로젝트에서 지원되지 않습니다.

Usage: NuGet.CommandLine.XPlat.dll package add [options]

Options:
  -h|--help               Show help information
  --force-english-output  고정 영어 기반 문화권을 사용하여 애플리케이션을 강제로 실행합니다.
  --package               추가할 패키지의 ID입니다.
  --version               추가할 패키지의 버전입니다.
  -d|--dg-file            미리 보기 복원 및 호환성 검사에 사용할 종속성 그래프 파일의 경로입니다.
  -f|--framework          패키지 참조를 추가할 프레임워크입니다.
  -s|--source             복원 중 사용할 NuGet 패키지 원본을 지정합니다.
  --interactive           명령이 인증 같은 작업에 대해 수동 작업을 차단하고 요구하도록 허용합니다.
  --prerelease            시험판 패키지를 설치할 수 있습니다.

 

2. 서버 구현

1. Program.cs 코드 수정

아래 공식문서에서 "Getting Started (Server)" 코드를 확인할 수 있어요 !

 

[공식문서 - C# SDK 패키지]

https://github.com/modelcontextprotocol/csharp-sdk

 

GitHub - modelcontextprotocol/csharp-sdk: The official C# SDK for Model Context Protocol servers and clients. Maintained in coll

The official C# SDK for Model Context Protocol servers and clients. Maintained in collaboration with Microsoft. - modelcontextprotocol/csharp-sdk

github.com

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using ModelContextProtocol.Server;

namespace McpServer
{
    public static class Program
    {
        static async Task Main(string[] args)
        {
            var builder = Host.CreateApplicationBuilder(args);
            builder.Logging.AddConsole(consoleLogOptions =>
            {
                // Configure all logs to go to stderr
                consoleLogOptions.LogToStandardErrorThreshold = LogLevel.Trace;
            });
            builder.Services
                .AddMcpServer()
                .WithStdioServerTransport()
                .WithToolsFromAssembly();
            await builder.Build().RunAsync();


        }
        
        [McpServerToolType]
        public static class EchoTool
        {
            [McpServerTool, Description("Echoes the message back to the client.")]
            public static string Echo(string message) => $"hello {message}";
        }
    }
}

 

 

2. 서버 실행

디버깅 시작 F5

성공적

 

* 종료 방법 : Ctrl + C 를 눌러 셧다운~

 

MCP 서버는 구축 완료...!
체력 이슈로 클라이언트는 다음 화에 계속...

 

 


[mcp-c# 구축 영상]

https://www.youtube.com/watch?v=mhgcdMe7uhE

 

[powershell + c# 기반 자료]

https://dev.to/mehrandvd/create-an-mcp-server-with-net-and-c-251p

저작자표시 비영리 변경금지 (새창열림)

'🧙🏻‍♀️🌌 고독한 개발자의 삶 > 한국에서C#개발자로살아남기' 카테고리의 다른 글

[AI | MCP] Day 4. Anthropic.SDK 로 .NET MCP Client 구현  (1) 2025.04.14
[AI | MCP] Day 3. .NET Framework 환경에서 MCP Client 구축하기  (1) 2025.04.14
[AI | MCP] Day 1. "MCP가 뭐야?.... 대단한 분들이지~!"  (1) 2025.04.08
[AI | MCP] Day 0. "MCP, 너 뭐 돼?"  (1) 2025.04.08
'🧙🏻‍♀️🌌 고독한 개발자의 삶/한국에서C#개발자로살아남기' 카테고리의 다른 글
  • [AI | MCP] Day 4. Anthropic.SDK 로 .NET MCP Client 구현
  • [AI | MCP] Day 3. .NET Framework 환경에서 MCP Client 구축하기
  • [AI | MCP] Day 1. "MCP가 뭐야?.... 대단한 분들이지~!"
  • [AI | MCP] Day 0. "MCP, 너 뭐 돼?"
우주꺼까
우주꺼까
안녕하세요 - (벌름벌름) 이것저것 개발하고 있슴니다 (벌름벌름) 혼자노는 것도 잘해요
  • 우주꺼까
    SpaceQuokka
    우주꺼까
    • ................................
      • 🧙🏻‍♀️🌌 고독한 개발자의 삶
        • 🗿모AI연구소🗿
        • 한국에서C#개발자로살아남기
        • 뷔페 가서 허리띠를 Flutter
        • 실험개발실🧪✨
      • 🤸‍♀️🤸‍♂️ 혼자놀기의 달인
        • 자기계발에 미치는 방법 🤯
        • 다독다독 독서감상회 📚
        • 방구석 도시농부 🌾👨‍🌾
        • 생존 야매요리 🍙
      • 🐿️🧳 여행초짜의 성장기
      • 🐸🥝 기억의 습작
        • 감성 모르면 나가라👨‍🚀
        • 예술의 전당포🖼️
        • 인생 기록
  • 최근 글

  • 최근 댓글

  • 태그

    .net
    .net framework
    Agent
    Ai
    ai agent
    API
    api key
    authentication
    Automation
    BBC
    c#
    ChatGPT
    chatGPT API
    cursor
    LLM
    mcp
    mcpclient
    mcpserver
    n8n
    OpenAI
  • 블로그 메뉴

    • 홈
    • 방명록
  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.1
우주꺼까
[AI | MCP] Day 2. .NET Framework 환경에서 MCP Server 구축하기
상단으로

티스토리툴바