코드베이스 메모리 MCP: Claude Code를 위한 그래프 기반 코드 탐색

한 개발자가 Claude Code의 일반적인 문제인 코드베이스 구조 탐색 시 비효율적인 토큰 사용을 해결하는 codebase-memory-mcp라는 MCP 서버를 만들었습니다. "이 함수를 호출하는 것은 무엇인가?"나 "데드 코드 찾기"와 같은 질문에 대해 Claude가 파일을 하나씩 grep하는 대신, 이 도구는 코드베이스의 지속적인 지식 그래프를 구축합니다.
작동 방식
서버는 Tree-sitter를 사용하여 64개 언어(Python, Go, JavaScript, TypeScript, Rust, Java, C++ 포함)를 SQLite 기반 그래프로 파싱하여 함수, 클래스, 호출 체인, HTTP 경로, 크로스 서비스 링크를 캡처합니다. Claude Code가 구조적 질문을 하면 파일을 개별적으로 스캔하는 대신 이 그래프를 쿼리합니다.
성능 향상
한 비교에서, 5개의 구조적 질문이 기존의 파일별 탐색을 통해 약 412,000개의 토큰을 소비한 반면, 그래프 쿼리를 통해서는 약 3,400개의 토큰만 사용했습니다. 이는 120배 감소한 수치입니다. 개발자는 일반 사용에서 평균 약 20배 적은 토큰 절감과 상당한 시간 절약을 보고했습니다.
주요 기능
- Tree-sitter 파싱을 통한 64개 언어 지원
- 호출 그래프 추적: "ProcessOrder를 호출하는 것은 무엇인가?"가 100ms 미만으로 전체 체인 반환
- 스마트 진입점 필터링을 통한 데드 코드 감지
- 크로스 서비스 HTTP 링크(서비스 간 REST 호출 찾기)
- 임시 탐색을 위한 Cypher와 유사한 쿼리 언어
- Louvain 커뮤니티 감지를 통한 아키텍처 개요
- 세션 간 지속되는 아키텍처 결정 기록
- 14개의 MCP 도구(Codex CLI, Cursor, Windsurf 및 기타 통합에서도 작동)
- MCP 클라이언트 없이 직접 터미널 사용을 위한 CLI 모드
설정 및 사용
이 도구는 Docker, 외부 데이터베이스 또는 API 키가 필요 없는 단일 Go 바이너리입니다. Claude Code를 자동 구성하는 codebase-memory-mcp install을 통해 설치합니다. 사용자는 "이 프로젝트 인덱싱"이라고 말하기만 하면 시작할 수 있으며, 파일이 편집될 때 그래프가 자동 동기화되어 최신 상태를 유지합니다.
벤치마크 및 라이선스
개발자는 Linux 커널을 포함하여 78개에서 49,000개 노드에 이르는 35개의 실제 오픈소스 저장소에서 벤치마크를 수행했습니다. 이 프로젝트는 MIT 라이선스 하에 오픈소스입니다.
📖 전체 소스 읽기: r/ClaudeAI
👀 See Also

OpenClaw 메모 플러그인, AI 코딩 에이전트의 메모리 핸드오프 문제 해결
한 레딧 사용자가 Claude 코드 유출 사건이 AI 코딩 에이전트의 메모리 핸드오프 문제를 부각시켰다고 공유했습니다. 이는 부풀려진 대화 기록이 모델 전환 시 문제를 일으키는 상황입니다. 이들은 OpenClaw에 메모스 플러그인을 도입하여 선택적 회상 전략으로 최근 작업을 압축하고 오래된 도구 호출을 제거했습니다.

Skillware는 Claude API 에이전트 루프에서 결정론적 토큰 압축을 위해 prompt_rewriter를 추가합니다.
Skillware는 Claude API로 보내기 전에 프롬프트를 50-80% 압축하는 새로운 prompt_rewriter 스킬을 통합하여, 에이전트 루프에서 비용을 줄이면서 결정론적 압축을 통해 안정적인 동작을 유지합니다.

onWatch: SQLite 저장소를 사용한 오픈소스 로컬 API 할당량 추적기
onWatch는 모든 데이터를 로컬 SQLite 데이터베이스에 저장하며 클라우드 서비스, 원격 측정 또는 계정 생성이 필요 없는 로컬 퍼스트 API 할당량 추적기입니다. ~13MB 크기의 단일 바이너리로, 백그라운드 데몬으로 실행되며 <50MB의 RAM을 사용하고 localhost에 대시보드를 제공합니다.

다중 모드 에이전트 지연 시간을 스크린샷 기록 생략으로 줄이기
개발자가 다중 모달 에이전트 요청에서 이전 스크린샷을 생략하고 base64 이미지 데이터를 '[image omitted]' 문자열로 대체하면 성능을 유지하면서 지연 시간을 크게 줄일 수 있다는 사실을 발견했습니다. 이 실험은 Claude를 사용하여 진행되었으며 GitHub에 문서화되었습니다.