Skip to main content
Glama

넷컨텍스트서버

🔍 심층적인 .NET 코드베이스 이해를 통해 AI 코딩 어시스턴트를 강화하세요

라이센스: MIT .NET으로 구축됨 MCP 호환 .NET 빌드 및 테스트

NetContextServer는 VS Code와 같은 AI 코딩 어시스턴트가 모델 컨텍스트 프로토콜(MCP) 을 통해 .NET 코드베이스를 심층적으로 이해할 수 있도록 지원합니다. 이를 통해 더욱 정확한 코드 제안, 질문에 대한 더 나은 답변, 그리고 더욱 생산적인 코딩 경험을 제공할 수 있습니다.

VS Code를 사용한 NetContextServer 데모

✨ 주요 특징

  • 🧠 의미 코드 검색 : 자연어로 찾고 있는 내용을 설명하여 코드를 찾습니다.

  • 🔍 지능형 탐색 : AI 도구가 프로젝트 구조와 종속성을 이해하도록 돕습니다.

  • 🛡️ 내장 보안 기능 : 민감한 데이터를 자동으로 보호하여 안전한 파일 접근 가능

  • 🚀 VS Code 통합 : 향상된 코딩 지원을 위한 VS Code와의 원활한 설정

  • 📦 패키지 분석 : 종속성을 이해하고 업데이트 권장 사항을 받으세요

    • 🔍 심층 종속성 시각화 : 대화형 색상으로 구분된 그래프를 통해 전이적 종속성을 확인하세요.

    • 🧩 스마트 그룹화 : 더 쉬운 탐색을 위해 관련 패키지를 시각적으로 그룹화합니다.

    • 📊 업데이트 권장 사항 : 오래된 패키지 및 보안 문제 식별

  • 📊 테스트 커버리지 분석 : 테스트 커버리지에 대한 심층적인 통찰력

    • 🎯 다중 형식 지원 : Coverlet, LCOV 및 Cobertura XML에서 커버리지 데이터 구문 분석

    • 📈 상세 보고서 : 파일 수준 적용 범위 백분율 및 적용되지 않은 라인 추적

    • 🔄 지점 커버리지 : 사용 가능한 경우 메서드 수준 지점 커버리지를 추적합니다.

    • 💡 스마트 추천 : 테스트 커버리지 개선을 위한 제안을 받으세요

  • 빠르고 효율적 : 대규모 코드베이스에 대한 빠른 인덱싱 및 응답 시간

Related MCP server: SQL Server MCP

🚀 빠른 시작

  1. 복제 및 빌드 :

지엑스피1

  1. 설정 (선택 사항, 의미 검색의 경우):

# Set Azure OpenAI credentials in environment: AZURE_OPENAI_ENDPOINT=your_endpoint AZURE_OPENAI_API_KEY=your_key
  1. 사용 시작 :

# Point to your project dotnet run --project src/NetContextClient/NetContextClient.csproj -- set-base-dir --directory "path/to/your/project" # Try semantic search dotnet run --project src/NetContextClient/NetContextClient.csproj -- semantic-search --query "find authentication logic"

👉 자세한 설정 지침과 모범 사례는 시작 가이드를 읽어보세요 .

🔌 VS Code와의 통합

  1. Visual Studio Code 열기

  2. Ctrl + Shift + P (macOS에서는 Cmd + Shift + P )를 누르세요.

  3. "MCP 서버 구성"을 입력하세요.

  4. 입력하다:

{ "command": "dotnet", "args": ["run", "--project", "path/to/NetContextServer/src/NetContextServer/NetContextServer.csproj"] }

이제 VS Code가 여러분의 코드베이스를 이해할 수 있습니다! 다음과 같은 질문을 해보세요.

  • "이 프로젝트 디렉토리에 있는 모든 .NET 소스 파일을 나열하세요"

  • "코드 파일에서 정확한 텍스트 일치 항목 검색"

  • "모든 프로젝트의 NuGet 패키지 분석"

  • "무시 패턴의 현재 목록을 가져옵니다"

  • "다음 무시 패턴을 추가하세요: .generated.cs, bin/ "

  • "이 디렉토리에 있는 모든 .csproj 파일을 나열합니다"

  • "이 파일의 내용을 보여주세요"

  • "파일 작업을 위한 현재 기본 디렉토리는 무엇입니까?"

  • "인증 시스템 설계를 생각해 보세요"

  • "이 아키텍처 결정에 대한 추론을 문서화하세요"

  • "MyService.cs에 대한 테스트 커버리지 분석"

  • "인증 모듈에서 가려지지 않은 줄을 보여주세요"

  • "전체 테스트 적용 범위 비율은 얼마입니까?"

  • "어떤 파일의 테스트 범위가 가장 낮나요?"

📚 문서

특징

  • 📁 프로젝트 및 파일 목록 : 솔루션의 모든 프로젝트 및 소스 파일을 나열합니다.

  • 🔍 코드 검색 : 코드베이스에서 특정 패턴이나 텍스트를 검색합니다.

  • 🧠 의미 검색 : 정확한 텍스트 일치뿐만 아니라 의미에 따라 코드를 찾습니다.

  • 📖 파일 콘텐츠 액세스 : 안전 검사 및 크기 제한을 적용하여 소스 파일을 읽습니다.

  • 🛡️ 보안 : 중요한 파일 및 디렉토리 액세스를 위한 내장형 보호 장치

  • 🎯 패턴 관리 : 파일 액세스를 제어하기 위한 유연한 무시 패턴

  • 📊 커버리지 분석 : 테스트 커버리지 데이터 구문 분석 및 분석

    • 📈 커버리지 보고서 : Coverlet JSON, LCOV 및 Cobertura XML 형식 지원

    • 🎯 라인 커버리지 : 테스트로 커버되는 라인을 추적합니다.

    • 🌳 브랜치 커버리지 : 메서드 수준 브랜치 커버리지 모니터링

    • 💡 권장 사항 : 적용 범위를 개선하기 위한 실행 가능한 제안을 받으세요

  • 💭 구조적 사고 : 복잡한 작업에 대한 추론을 문서화하고 검증합니다.

    • 🧩 AI 최적화 추론 : LLM 문제 해결 개선에 대한 Anthropic의 연구 기반

    • 📋 작업 계획 : 복잡한 문제를 관리 가능한 단계로 분해

    • 정책 준수 : 프로젝트 지침에 따라 솔루션 확인

    • 🔄 도구 출력 분석 : 다음 작업을 수행하기 전에 다른 도구의 결과를 처리합니다.

    • 📝 의사결정 문서화 : 아키텍처 선택에 대한 감사 추적을 유지합니다.

소스에서 빌드

  1. 저장소를 복제합니다.

git clone https://github.com/willibrandon/NetContextServer.git cd NetContextServer
  1. 솔루션 구축:

dotnet build
  1. 테스트 실행(선택 사항):

dotnet test

명령 실행

클라이언트를 사용하여 코드베이스와 상호 작용하세요.

dotnet run --project src/NetContextClient/NetContextClient.csproj -- <command> [options]

환경 설정

의미 검색 기능을 사용하려면 다음 환경 변수를 설정해야 합니다.

  • AZURE_OPENAI_ENDPOINT : Azure OpenAI 엔드포인트 URL

  • AZURE_OPENAI_API_KEY : Azure OpenAI API 키

용법

기본 명령

  1. 기본 디렉토리 설정 :

dotnet run --project src/NetContextClient/NetContextClient.csproj -- set-base-dir --directory "D:\YourProject"
  1. 기본 디렉토리 가져오기 :

dotnet run --project src/NetContextClient/NetContextClient.csproj -- get-base-dir
  1. 버전 정보 가져오기 :

dotnet run --project src/NetContextClient/NetContextClient.csproj -- version
  1. 프로젝트 목록 :

dotnet run --project src/NetContextClient/NetContextClient.csproj -- list-projects-in-dir --directory "D:\YourProject\src"
  1. 소스 파일 목록 :

dotnet run --project src/NetContextClient/NetContextClient.csproj -- list-source-files --project-dir "D:\YourProject\src\YourProject"
  1. 패키지 분석 :

# Set your base directory first dotnet run --project src/NetContextClient/NetContextClient.csproj -- set-base-dir --directory "path/to/your/project" # Run the package analysis dotnet run --project src/NetContextClient/NetContextClient.csproj -- analyze-packages

출력 예:

Project: MyProject.csproj Found 2 package(s): - ✅ Newtonsoft.Json (13.0.1) Used in 5 location(s) Dependencies: └─ Newtonsoft.Json └─ System.* └─ System.ComponentModel - 🔄 Microsoft.Extensions.DependencyInjection (5.0.2 → 6.0.1) Update available: 6.0.1 Dependencies: └─ Microsoft.Extensions.DependencyInjection └─ Microsoft.* └─ Microsoft.Extensions.DependencyInjection.Abstractions
  1. 테스트 커버리지 분석 :

# Set your base directory first dotnet run --project src/NetContextClient/NetContextClient.csproj -- set-base-dir --directory "path/to/your/project" # Analyze coverage from a Coverlet JSON report dotnet run --project src/NetContextClient/NetContextClient.csproj -- coverage-analysis --report-path "TestResults/coverage.json" # Get a coverage summary dotnet run --project src/NetContextClient/NetContextClient.csproj -- coverage-summary --report-path "TestResults/coverage.json"

커버리지 분석 출력 예시:

[{ "filePath": "src/MyProject/Services/UserService.cs", "coveragePercentage": 85.3, "uncoveredLines": [42, 43, 88], "branchCoverage": { "ValidateUser()": 75.0, "GetUserById()": 100.0 }, "recommendation": "Consider adding tests for the user validation error paths" } ]

검색 명령

  1. 텍스트 검색 :

dotnet run --project src/NetContextClient/NetContextClient.csproj -- search-code --text "authentication"
  1. 의미 검색 :

# Search with default number of results (5) dotnet run --project src/NetContextClient/NetContextClient.csproj -- semantic-search --query "handle user authentication" # Search with custom number of results dotnet run --project src/NetContextClient/NetContextClient.csproj -- semantic-search --query "database connection string" --top 10

의미 검색 기능:

  • 의미에 따라 코드를 찾기 위해 임베딩을 사용합니다.

  • 관련성별로 순위가 매겨진 반환 코드 조각

  • 줄 번호와 유사도 점수를 표시합니다.

  • 첫 번째 검색 시 자동으로 코드를 인덱싱합니다.

패턴 관리

  1. 무시 패턴 추가 :

dotnet run --project src/NetContextClient/NetContextClient.csproj -- add-ignore-patterns --patterns "*.txt" "*.log"
  1. 현재 패턴 보기 :

dotnet run --project src/NetContextClient/NetContextClient.csproj -- get-ignore-patterns
  1. 특정 패턴 제거 :

dotnet run --project src/NetContextClient/NetContextClient.csproj -- remove-ignore-patterns --patterns "*.txt"
  1. 명확한 사용자 패턴 :

dotnet run --project src/NetContextClient/NetContextClient.csproj -- clear-ignore-patterns
  1. 보기 상태 파일 위치 :

dotnet run --project src/NetContextClient/NetContextClient.csproj -- get-state-file-location

기본 무시 패턴

민감한 정보를 보호하기 위해 다음 패턴은 기본적으로 무시됩니다.

  • *.env - 환경 파일

  • appsettings.*.json - 애플리케이션 설정

  • *.pfx - 인증서 파일

  • *.key - 키 파일

  • *.pem - PEM 파일

  • *password* - 이름에 "password"가 포함된 파일

  • *secret* - 이름에 "secret"이 포함된 파일

보안 기능

  1. 경로 안전 : 파일은 지정된 기본 디렉토리 내에서만 액세스할 수 있습니다.

  2. 패턴 검증 : 무시 패턴은 적절한 구문을 위해 검증됩니다.

  3. 크기 제한 : 메모리 문제를 방지하기 위해 큰 파일 내용이 잘립니다.

  4. 민감한 파일 보호 : 내장된 패턴으로 일반적인 민감한 파일을 보호합니다.

워크플로 예시

  1. 프로젝트의 기본 디렉토리를 설정하세요.

dotnet run --project src/NetContextClient/NetContextClient.csproj -- set-base-dir --directory "D:\Projects\MyApp"
  1. 서버 버전 및 구성을 확인하세요.

dotnet run --project src/NetContextClient/NetContextClient.csproj -- version
  1. 사용자 정의 무시 패턴 설정:

dotnet run --project src/NetContextClient/NetContextClient.csproj -- add-ignore-patterns --patterns "*.generated.cs" "*.designer.cs"
  1. 모든 프로젝트 나열:

dotnet run --project src/NetContextClient/NetContextClient.csproj -- list-projects-in-dir --directory "D:\Projects\MyApp\src"
  1. 프로젝트의 패키지 종속성을 분석합니다.

dotnet run --project src/NetContextClient/NetContextClient.csproj -- analyze-packages
  1. 인증 관련 코드 검색:

dotnet run --project src/NetContextClient/NetContextClient.csproj -- semantic-search --query "user authentication and authorization logic"

AI 코딩 도구와의 통합

NetContextServer는 MCP(모델 컨텍스트 프로토콜)를 구현하여 이 프로토콜을 지원하는 AI 코딩 어시스턴트(예: AI 코딩 어시스턴트)와의 원활한 통합을 허용합니다.

  • VS Code : 보다 정확한 코드 생성 및 지원을 위해 AI 어시스턴트에게 코드베이스의 전체 컨텍스트를 제공합니다.

  • 기타 MCP 호환 도구 : 모델 컨텍스트 프로토콜을 구현하는 모든 도구는 NetContextServer에 연결할 수 있습니다.

VS Code와 함께 사용하려면:

  1. VS Code를 구성하여 NetContextServer를 MCP 공급자로 사용합니다.

  2. 전체 코드베이스 컨텍스트를 통해 향상된 코드 지원을 즐겨보세요.

MCP 상호작용을 테스트하고 디버깅하려면 MCP 클라이언트와 서버 간의 통신을 검사하고 검증하는 데 도움이 되는 시각적 테스트 도구인 Model Context Protocol Inspector를 사용할 수 있습니다. Inspector의 기능과 성능에 대한 자세한 내용은 Inspector 설명서를 참조하세요.

NetContextServer를 사용하면 AI 협력자가 코드베이스에 대한 구체적인 정보를 요청할 수 있으며, 이를 통해 AI의 제안이 특정 프로젝트 구조와 코딩 패턴에 더욱 관련성 있고 정확해집니다.

오류 처리

서버는 일반적인 시나리오에 대해 명확한 오류 메시지를 제공합니다.

  • 디렉토리를 찾을 수 없습니다

  • 접근이 거부되었습니다(기본 디렉토리 외부)

  • 잘못된 패턴

  • 파일 크기 제한을 초과했습니다.

  • 제한된 파일 유형

  • 의미 검색을 위한 환경 변수가 누락되었습니다.

기여하다

  1. 저장소를 포크하세요

  2. 기능 브랜치 생성

  3. 변경 사항을 커밋하세요

  4. 지점으로 밀어 넣기

  5. 풀 리퀘스트 만들기

특허

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/willibrandon/NetContextServer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server