.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에서의 도구 가시성 증대