.NET MCP 서버를 NuGet에 게시 | ErikEJ


.NET MCP Server를 NuGet에 게시하는 방법

주요 개요

이 문서는 .NET CLI 도구를 ModelContextProtocol(MCP) 서버로 변환하고 NuGet.org에 게시하는 방법에 대한 가이드입니다. NuGet.org에서 새롭게 지원하는 MCP Server 패키지 타입을 활용하여 AI 클라이언트가 MCP 서버를 더 쉽게 발견할 수 있도록 하는 것이 핵심 목표입니다.

1. 배경 정보

MCP Server의 중요성

  • GitHub Copilot과 기타 AI 클라이언트와 함께 사용 가능
  • ModelContextProtocol (MCP) NuGet 패키지의 도움으로 .NET CLI 도구를 MCP 서버로 변환
  • NuGet.org의 특별한 MCP Server 패키지 타입 지원으로 검색 가능성 향상

2. 단계별 구현 가이드

단계 1: 필수 요구사항 설치

가장 중요한 첫 번째 단계

  • .NET 10 SDK 설치 필수 (MCP Server 패키지를 팩하기 위해 필요)

단계 2: server.json 파일 구성

파일 위치 및 구조

  • 프로젝트 내 .mcp 폴더에 server.json 파일 생성 (선택사항)
  • 사용자가 MCP 서버를 쉽게 사용하고 실행할 수 있도록 도움

server.json 파일 예제

{
  "$schema": "https://modelcontextprotocol.io/schemas/draft/2025-07-09/server.json",
  "description": "Find design problems and bad practices in a SQL Server CREATE script",
  "name": "io.github.ErikEJ/SqlServer.Rules",
  "packages": [
    {
      "registry_name": "nuget",
      "name": "ErikEJ.DacFX.TSQLAnalyzer.Cli",
      "version": "1.0",
      "package_arguments": [
        {
          "type": "positional",
          "value": "-mcp",
          "value_hint": "-mcp"
        }
      ],
      "environment_variables": []
    }
  ],
  "repository": {
    "url": "https://github.com/ErikEJ/SqlServer.Rules",
    "source": "github"
  },
  "version_detail": {
    "version": "1.0"
  }
}

주요 구성 요소 설명

  • name 속성의 특별한 구문 주목
  • -mcp 매개변수로 도구를 호출해야 하는 경우, package_arguments 배열에 추가
  • 현재 구문이 상당히 상세함

단계 3: .csproj 파일 수정

필수 속성 추가

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    ...
    <PackAsTool>true</PackAsTool>
    <PackageType>McpServer</PackageType>
    ...
  </PropertyGroup>

  <ItemGroup>
    <None Include="readme.md" Pack="true" PackagePath="/" />
    <None Include=".mcp/server.json" Pack="true" PackagePath="/.mcp/" />
  </ItemGroup>
  ...
</Project>

중요 사항

  • <PackageType>McpServer</PackageType> 속성 추가가 핵심
  • server.json 파일이 NuGet 패키지에 포함되도록 설정

3. 추가 기능 및 특징

.NET 10의 새로운 기능

mcp.json 스니펫에서 사용하는 새로운 원샷 도구 실행 기능

  • .NET 10 preview 6에서 추가됨
  • 단일 명령으로 .NET 도구를 설치(다운로드)하고 실행 가능

4. 실용적인 팁 및 주의사항

구현 시 주의할 점

  • ModelContextProtocol 패키지는 현재 초기 프리뷰 단계
  • 최소한의 코드로 기존 명령줄 도구에 MCP Server 기능 추가 가능

권장사항

  • 기존 CLI 도구에 MCP Server 기능을 추가하면 도구의 유용성 증가
  • 사용자 기반 확대 효과 기대
  • NuGet.org에 MCP Server로 게시하면 도구의 가시성 향상
  • 향후 AI 클라이언트에서 발견 가능하게 됨

5. 결론 및 향후 전망

주요 장점

  • MCP Server 기능은 매우 유용하며 구현이 간단함
  • 기존 명령줄 도구에 최소한의 코드 추가로 구현 가능
  • 도구의 활용도와 사용자 기반 확대에 기여

미래 전망

  • AI 클라이언트에서 MCP 서버의 발견 가능성 향상
  • NuGet.org에서의 도구 가시성 증대
1개의 좋아요