프로젝트 소개
Scantool은 AI 코딩 에이전트(Claude Code, Cursor, VS Code Copilot 등)가 코드베이스를 효율적으로 이해하도록 돕는 코드 구조 분석 도구입니다. 에이전트는 함수나 클래스를 찾기 위해 전체 파일을 읽는 대신, 한 번의 호출로 모든 클래스, 함수, 호출자, 헤딩과 줄 번호를 포함한 구조적 맵을 얻습니다.
이 도구는 MCP(Model Context Protocol) 서버와 셸 명령어(`sct`)로 모두 작동하므로, 에이전트는 두 인터페이스 중 하나를 통해 사용할 수 있습니다. tree-sitter 파서를 기반으로 20개 이상의 언어를 지원하며, 인덱스, API 키, 설정 없이 단일 명령만으로 사용 가능합니다.
주요 기능으로는: 포함 컨텍스트와 호출자 힌트가 있는 구조 검색; 디렉터리에서 진입점, 핫 함수, 중심 파일 스캔; 단일 함수나 헤딩에 대한 원문 코드와 한 단계 개요에 집중; git refs 간 구조적 차이 계산; 함수의 실제 호출 사이트 찾기; 브랜치 중복 및 병합 충돌 감지; 공개 API 표면 변경 확인; 형제 호출 패턴에서 벗어난 함수 식별; git refs 간 주소 해석 등이 있습니다.
소스 코드 외에도 Scantool은 문서—Markdown 헤딩, SQL 테이블 및 뷰, YAML/TOML/JSON 키, CSS 선택자 등—을 줄 범위가 있는 주소 지정 가능한 구조로 처리합니다.
이 도구는 요청 시 파일을 파싱하고 git blob ID로 캐시하므로, ref, stdin, 또는 다음 프로세스에서 동일한 바이트를 두 번 파싱하지 않습니다. 함수는 제어 흐름, 호출, 반환을 유지하고 사소한 문장을 접은 압축된 스켈레톤으로 표시됩니다. 모든 응답에는 본 파일 수, 표시된 구조, 제외된 항목을 세는 커버리지 줄이 포함됩니다.
실제 에이전트 세션에서 측정한 결과, Scantool은 대상 검색에서 토큰 사용을 25배 줄였고(378 토큰 대 grep의 9,370), 집중 읽기에서 75% 줄였습니다(13,523 대 54,337 토큰) 동일한 사실 커버리지에서. 22개 세션에서 Scantool 에이전트는 88%의 사실 커버리지를 달성했으며, grep 전용 에이전트는 73%였습니다. grep은 여전히 단순 리터럴 검색과 최상위 개요에서 각각 1.4배와 1.6배 우위를 보입니다.
지원 언어는 Python, JavaScript, TypeScript, Rust, Go, C, C++, Java, PHP, C#, Ruby, Zig, Swift, SQL, HTML, CSS, SCSS, YAML, Markdown, Jupyter 노트북, 일반 텍스트, JSON, TOML, 이미지입니다. 손상된 파일은 정규식 추출로 대체됩니다.
다른 코드 탐색 MCP 서버와 비교: Repomix은 전체 저장소를 하나의 파일로 패킹하고, Serena는 언어 서버를 기호별로 사용하며 코드를 편집할 수 있고, claude-context는 벡터 데이터베이스가 있는 임베딩 인덱스를 사용하며 API 키가 필요합니다. Scantool의 접근 방식—인덱스 없이 요청 시 파싱—은 이러한 비용을 피하면서 다른 도구가 다루지 않는 문서 구조도 추출합니다.
설치는 uv가 필요하며, MCP 서버를 등록하는 단일 명령으로 완료됩니다. 이 도구는 MIT 라이선스이며 FastMCP, tree-sitter, uv로 구축되었습니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.