포스트

C# LSP vs JetBrains MCP — 토큰 효율성 분석 리포트

C# LSP vs JetBrains MCP — 토큰 효율성 분석 리포트
TL;DR — 핵심 요약
  • LSP는 MCP보다 평균 3.1배 적은 토큰을 소비하면서 더 높은 정보 품질을 제공한다
  • LSP와 MCP의 기능은 하나도 겹치지 않는다 — 경쟁이 아닌 보완 관계이므로 둘 다 쓰는 것이 최적 전략이다
  • 하이브리드 전략(LSP 우선 + MCP 보조)으로 세션당 약 60% 이상의 토큰을 절약할 수 있다
Visitors

日本語バージョンはこちらへ csharp-lsp と Rider MCP 比較分析

Project: psv-client (Unity 2022.3.31) Target File: Assets/App/Editor/EditorStartup.cs Date: 2026-03-10 Tool Versions: csharp-lsp (Claude Code built-in) / JetBrains Rider MCP


요약(핵심 요약)

MetricValue
Average Token Savings3.1x (LSP가 MCP 대비)
LSP 정보 품질A+ (Semantic + XML Docs)
MCP 고유 기능3개 (Diagnostics / Refactoring / Formatting)
최적 전략Hybrid (LSP-first, MCP for IDE tasks)

핵심 결론

  • 일반적인 코드 탐색/분석: csharp-lsp가 토큰 2~5배 효율적이고 정보 품질도 높음
  • Rider 인스펙션 (에러 진단) & 리팩토링: MCP만 가능
  • 최적 접근법: 둘을 용도에 맞게 하이브리드로 혼용

테스트 방법론(측정 방법)

동일한 파일(EditorStartup.cs, 56줄)에 대해 양쪽 도구로 동일한 작업을 수행하고 응답 크기를 측정했다. 토큰 추정 기준: ~4자 = 1 토큰 (영문/코드 혼합 콘텐츠 기준)

Test IDTaskLSP OperationMCP Operation
T1Symbol Info (EditorStartup class)hoverget_symbol_info
T2File-scope Search (“SessionState”)Grep (LSP native)search_in_files_by_text
T3Project-wide Reference Search (“EditorStartup”)findReferencessearch_in_files_by_text
T4File Symbol StructuredocumentSymbolN/A
T5External Type Info (Canvas API)hoverget_symbol_info
T6Go To Definition (Shader.Find)goToDefinitionget_symbol_info
T7Error DiagnosticsN/Aget_file_problems

측정 결과(원시 데이터)

TestLSP (chars)LSP (tokens)MCP (chars)MCP (tokens)RatioWinnerNotes
T1: Symbol Hover280702260.08xLSPMCP는 빈 docs 반환, LSP는 full signature + XML docs
T2: File Search180454481122.5xLSP동일 4건 결과. MCP는 JSON 오버헤드 + || 마커
T3: Project Search110285201304.7xLSPLSP: 시맨틱 참조 2건, MCP: 문자열 포함 5건
T4: Doc Symbols28070---LSP OnlyMCP에 해당 기능 없음
T5: External Type120302260.18xLSPMCP 다시 빈 값. LSP는 Material 시그니처 + docs
T6: Go To Def12531226-Draw둘 다 외부 Unity API (decompiled)에서 실패
T7: Diagnostics--5514-MCP OnlyLSP 플러그인에 진단 기능 없음

T1, T5 주의: MCP 응답이 더 작지만 {"documentation":""}유용한 정보가 0이다. 단순 크기 비교는 오해를 부른다.


시각적 비교

1. 응답 크기 비교(문자 수)

Response Size Comparison

T2 File Search에서 2.5배, T3 Project Search에서 4.7배 LSP가 더 작은 응답을 반환한다.


2. 추정 토큰 소비량

Estimated Token Consumption

동일 작업 수행 시 LSP가 평균 3.1배 적은 토큰을 소비한다.


3. 정보 품질 점수(레이더 차트)

Information Quality Radar

LSP와 MCP의 강점 영역이 완전히 상보적이다.

  • LSP: Symbol Hover, Search, Symbols에서 만점
  • MCP: Diagnostics, Refactoring에서 만점

4. 테스트 승자 분포

Test Winner Distribution

7개 테스트 중:

  • LSP 승리: 4건 (57%)
  • LSP Only: 1건 (14%)
  • MCP Only: 1건 (14%)
  • 무승부: 1건 (14%)

5. 기능/역량 매트릭스

Feature Capability Matrix

두 도구의 기능이 겹치지 않고 상호 보완된다.

  • LSP Domain (상단 7개): 시맨틱 분석 전담
  • MCP Domain (하단 8개): IDE 기능 전담

6. 세션 토큰 절감량

Token Savings

하이브리드 접근법을 사용하면 세션당 약 61~63% 토큰 절약이 가능하다.


7. 시맨틱 검색 vs 텍스트 검색

Semantic vs Textual Search

"EditorStartup" 검색 시:

  • LSP findReferences: 2건 (class 선언 + 생성자) — 실제 심볼 참조만
  • MCP search_in_files_by_text: 5건 (2건 실제 + 3건 문자열/로그 매칭) — false positive 포함

문자열 내 "EditorStartup.Reloading"과 로그 메시지 [EditorStartup]까지 매칭되어 AI에게 오해를 유발할 수 있다.


8. 품질 보정 토큰 효율

Quality-Adjusted Efficiency

품질 대비 토큰 효율(Quality per Token)을 계산하면 LSP의 우위가 더욱 뚜렷해진다. T1(Symbol Hover)과 T5(External Type)에서 MCP는 응답이 작지만 정보량이 0이므로 실질 효율도 0이다.


정보 품질 분석

품질 보정 토큰 효율 표

TestLSP Info QualityMCP Info QualityLSP Useful TokensMCP Useful TokensEffective Ratio
T1: Symbol Hover10 (signature + docs)0 (empty)700LSP infinitely better
T2: File Search9 (clean format)8 (same data, noisy)45112LSP 2.5x better
T3: Project Search10 (semantic only)6 (includes false positives)28130LSP 7.7x better
T5: External Type10 (return type + docs)0 (empty)300LSP infinitely better
T7: DiagnosticsN/A10 (Rider inspections)-14MCP exclusive

핵심 인사이트: 시맨틱 vs 텍스트 검색

T3 "EditorStartup" 검색이 근본적 차이를 보여준다:

ToolResultsType
LSP findReferences2건시맨틱 — class 선언 + 생성자 (실제 참조만)
MCP search_in_files5건텍스트 — 2건 실제 + 3건 문자열 리터럴/로그 (false positive)

LSP는 심볼 수준에서 분석하므로 문자열 안의 "EditorStartup.Reloading"은 무시한다. MCP는 단순 텍스트 매칭이므로 false positive가 포함되어 컨텍스트를 낭비하고 AI를 오도할 수 있다.


기능/역량 매트릭스

Capabilitycsharp-lspJetBrains MCPNotes
Hover / Type InfoO (rich)△ (often empty)LSP는 XML docs 반환, MCP는 Unity API에서 자주 빈 값
Go To DefinitionOXMCP에 직접 대응 기능 없음
Find References (Semantic)OXMCP는 텍스트 검색만 가능
Document SymbolsOX파일 구조를 한 눈에 파악
Call HierarchyOX호출 관계 추적 (incoming/outgoing)
Go To ImplementationOX인터페이스 → 구현 클래스
Workspace Symbol SearchOX프로젝트 전체에서 클래스/메서드 검색
Text Search (in files)XOGrep도 대안으로 사용 가능
Regex Search (in files)XO패턴 매칭
Error/Warning DiagnosticsXORider 인스펙션 (에러/경고/코드 스멜)
Rename RefactoringXO크로스 프로젝트 안전 리네이밍
Code FormattingXORider 코드 스타일 적용
File Read/WriteXORead/Edit 도구도 대안
Directory BrowseXOlist_directory_tree
Run ConfigurationsXOIDE 빌드/테스트 실행
Score: LSP 7 capabilitiesMCP 8 capabilities겹침: 0개 (완전히 상호 보완)

최적 전략: 하이브리드 접근

csharp-lsp 우선(기본) — 토큰 절약

코드 탐색/분석 작업은 기본적으로 LSP를 먼저 사용한다.

Operation용도
hover타입 정보, 문서, 시그니처 조회
findReferences시맨틱 심볼 참조 검색
documentSymbol파일 구조 파악
goToDefinition소스 코드로 이동
goToImplementation인터페이스 구현체 찾기
callHierarchy호출 체인 분석
workspaceSymbol프로젝트 전체 클래스/메서드 검색

평균 3.1배 적은 토큰 소비. 더 높은 정보 밀도.

JetBrains MCP(필요 시) — 고유 기능

LSP로 할 수 없는 작업에만 MCP를 사용한다.

Operation용도
get_file_problems코드 수정 후 에러/경고 검증
rename_refactoring심볼 리네이밍 (YAML, 문자열까지 안전)
reformat_fileRider 코드 스타일 포맷팅
search_in_files_by_text/regex로그 문자열, 주석 등 텍스트 검색
execute_terminal_command빌드/테스트 실행
execute_run_configurationIDE 실행 프로필

Diagnostics, Refactoring, IDE 통합은 MCP만 가능 — 대체 불가.


세션당 추정 토큰 절감량

ScenarioMCP Only (tokens)Hybrid (tokens)Savings
Light (10 lookups, 5 searches)~1,750~65063%
Medium (30 lookups, 15 searches, 3 refactors)~5,800~2,20062%
Heavy (80 lookups, 40 searches, 10 refactors)~15,200~5,90061%

Refactoring 작업은 항상 MCP를 사용. 절약분은 lookup과 reference search를 LSP로 라우팅한 결과.


CLAUDE.md 업데이트 권장안

기존 CLAUDE.md의 "ALWAYS use Rider MCP tools over generic alternatives" 를 아래로 교체 권장:

TaskPrimary ToolFallback
Type/Docs lookupLSP hoverMCP get_symbol_info
Semantic referencesLSP findReferencesMCP text search
File structureLSP documentSymbol(none)
Definition navigationLSP goToDefinition(none)
Call hierarchyLSP callHierarchy(none)
Implementation lookupLSP goToImplementation(none)
Text/Regex searchMCP search_in_filesGrep
Error diagnosticsMCP get_file_problems(none)
Rename symbolMCP rename_refactoring(none)
Code formattingMCP reformat_file(none)
File readRead / MCP get_file(either)
File editEdit / MCP replace(either)

빠른 참조 카드(요약 카드)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
┌─────────────────────────────────────────────────┐
│  작업별 최적 도구 선택 가이드                      │
├─────────────────────────────────────────────────┤
│                                                 │
│  🟢 csharp-lsp 사용 (토큰 절약)                  │
│  ├─ hover (타입/문서 조회)                       │
│  ├─ findReferences (시맨틱 참조 검색)             │
│  ├─ documentSymbol (파일 구조 파악)              │
│  ├─ goToDefinition / goToImplementation         │
│  └─ callHierarchy (호출 관계)                    │
│                                                 │
│  🔵 JetBrains MCP 사용 (고유 기능)               │
│  ├─ get_file_problems (에러/경고 진단)            │
│  ├─ rename_refactoring (안전한 리네이밍)          │
│  ├─ reformat_file (코드 포맷팅)                  │
│  └─ 텍스트 기반 검색 (로그 문자열 등)              │
│                                                 │
│  ⚪ 어느 쪽이든 OK                               │
│  ├─ 파일 읽기 (Read ≈ get_file_text_by_path)     │
│  └─ 파일 수정 (Edit ≈ replace_text_in_file)      │
│                                                 │
└─────────────────────────────────────────────────┘

Generated by Claude Code — psv-client C# LSP vs JetBrains MCP Analysis — 2026-03-10

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.