facts
Litenova Solutions가 C# 코드베이스를 대상으로 하는 오픈소스 MCP(Model Context Protocol) 및 CLI 도구인 'Fuse'를 공개했다. Fuse는 AI 코딩 에이전트가 대규모 .NET 솔루션을 탐색할 때 발생하는 반복적인 파일 읽기와 텍스트 검색 비용을 줄이기 위해 설계된 로컬 도구다. 라이선스는 Apache 2.0을 따른다.
이 도구의 핵심은 MSBuild와 Roslyn을 통해 솔루션을 인덱싱하고, 그 결과를 `.fuse/fuse.db` 파일에 영구적인 시맨틱 인덱스로 저장하는 것이다. 에이전트는 매 턴마다 프로젝트 구조를 다시 발견하는 대신 이 인덱스를 재사용한다. MCP 서버가 시작되면 공유 로컬 데몬이 백그라운드에서 `.fuse/fuse.db`를 워밍업하며, 사용자가 동기식 전체 인덱싱을 원할 경우 `fuse index` 명령어를 실행할 수 있다. 또한 `fuse mcp install --rules` 명령을 통해 프로젝트 범위의 `.gitignore`에 `.fuse/` 경로를 자동으로 추가한다.
분석 작업은 모두 로컬에서 수행되며 오프라인 상태에서도 작동한다. 모델 연결 없이도 작동하며, 선택적으로 NuGet과 통신하여 업데이트를 확인하거나 저장소에 설정된 패키지 피드를 통해 빌드 등급 작업을 수행한다. .NET 외의 언어에 대해서는 컴파일러 기반의 와이어링 분석 대신 구문 수준(Syntax-level)의 검색과 축소 기능만 제공한다.
how-it-works
Fuse는 단순한 텍스트 검색이 아니라 DI(의존성 주입) 등록, 핸들러, 라우트, 호출자(Caller)로 구성된 '타입 그래프(Typed Graph)'를 추적한다. 프로젝트가 시맨틱하게 로드되면 그래프는 요청 핸들러와 옵션 바인딩, 호출 엣지를 기록한다. 만약 시맨틱 로드가 불가능한 프로젝트라면 구문 수준 인덱싱으로 전환하고 해당 모드를 보고한다.
에이전트가 제안한 코드의 정확성을 판단하기 위해 Fuse는 '검증 등급(Verification Grade)'이라는 개념을 도입했다. 모든 응답에는 해당 결과가 어떻게 도출되었는지 명시된다.
1. **오라클 등급(Oracle grade)**: 실제 빌드에서 캡처된 컴파일 결과와 대조하여 검증한다.
2. **빌드 등급(Build grade)**: 범위가 지정된 `dotnet build`를 실행하여 검증한다.
3. **기권(Abstain)**: 위 두 가지 컴파일러 경로로 답을 낼 수 없는 경우, 추측하는 대신 누락된 전제 조건을 명시하고 답변을 거부한다.
성능 측정 결과, NodaTime 실행 환경에서 상주 워크스페이스(Resident workspace)를 통한 반복적인 `fuse_check` 호출의 중앙값 지연시간은 31.2ms로 기록되었다. 이는 추측성 검증을 위해 전체 빌드를 수행하는 것보다 빠른 경로를 제공한다. 다만 이는 일반적인 머지 전 빌드나 테스트를 대체하는 것이 아니라, 에이전트의 빠른 피드백 루프를 위한 최적화 수치다.
implementation-impact
개발자와 실무자가 Fuse를 도입할 때 가장 주의 깊게 봐야 할 점은 '쓰기 제어권'과 '컨텍스트 축소' 방식이다. 기존의 코딩 에이전트는 파일 읽기, grep, 정규표현식에 의존하여 대규모 솔루션의 심볼과 참조를 반복적으로 재발견해야 했다. Fuse는 이를 Roslyn 기반의 증분 인덱싱으로 대체하여 에이전트에게 전달되는 소스 코드의 범위를 필요한 부분으로만 축소(Reduced source)해 전달한다.
특히 작업 트리(Working tree)에 대한 쓰기 작업은 엄격히 제한된다. 읽기, 체크, 영향 분석, 리팩토링, 리뷰 작업은 작업 트리를 수정하지 않는다. 오직 `fuse_workspace`에서 `action=apply` 옵션을 사용했을 때만 쓰기 경로가 활성화되며, 이마저도 `write=true` 설정이 없으면 기본적으로 드라이 런(Dry run)으로 동작한다. 이는 AI 에이전트가 예기치 않게 코드를 덮어쓰는 리스크를 방지하는 안전장치로 작동한다.
기존의 CodeGraphContext(다국어 그래프), Serena(언어 서버 기반 심볼 도구), Sourcegraph(다중 저장소 검색)와 비교했을 때, Fuse는 로컬 .NET 환경의 '프레임워크 와이어링'과 '컴파일러 기반 제안 파일 검증'에 특화되어 있다. 따라서 .NET 환경에서 AI 에이전트를 활용해 PR 범위를 결정하거나 변경 영향도를 분석하려는 팀은 일반적인 코드 인텔리전스 도구와 Fuse를 병행 운용함으로써 제어권을 높일 수 있다.


