CodeGraphContext/CodeGraphContext
An MCP server plus a CLI tool that indexes local code into a graph database to provide context to AI assistants.
CodeGraphContext (CGC)
무엇인가요
CodeGraphContext (CGC) 는 로컬 코드베이스를 그래프 데이터베이스 로 변환하는 Python 기반 도구입니다. 심볼, 호출, 임포트, 상속 및 기타 관계를 포함합니다. 이 그래프는 명령줄에서 쿼리하거나 MCP (Model-Control-Protocol) 를 통해 제공되어 AI 어시스턴트(예: 채팅 기반 코드 도우미)가 텍스트 검색이 아닌 정확한 심볼 수준의 컨텍스트를 얻을 수 있도록 합니다.
핵심 기능
| 기능 | 제공되는 기능 |
|---|---|
| 코드 인덱싱 | tree-sitter (옵션으로 SCIP 인덱서)로 소스 파일을 분석하고 지식 그래프를 구축합니다. |
| 다중 언어 지원 | 23개 언어를 기본 제공 (Python, JS/TS, Java, C/C++, Go, Rust, Solidity 등). |
| CLI 툴킷 | cgc index, cgc analyze callers <sym>, cgc watch, cgc list 등 로컬에서 인터랙티브 분석을 위한 명령어. |
| MCP 서버 모드 | FastAPI 기반 서버 (cgc mcp start) 를 실행하여 AI IDE 확장 프로그램의 자연어 쿼리에 응답합니다. |
| 데이터베이스 백엔드 | 내장형 FalkorDB Lite (Unix에서는 기본값), KuzuDB, LadybugDB, 또는 외부 Neo4j/Nornic – cgc config db 로 선택 가능. |
| 실시간 업데이트 | cgc watch 는 디렉터리를 모니터링하고 파일 변경 시 그래프를 자동으로 업데이트합니다. |
| 사전 인덱싱된 번들 | 인기 있는 리포지토리용 미리 준비된 .cgc 번들로 인덱싱 단계를 건너뛸 수 있습니다. |
| Docker 지원 | 공식 Docker 이미지와 컴포즈 프로파일로 언어에 구애받지 않고 빠르게 실행 가능. |
| 시각화 (프리미엄) | 웹 UI를 통해 코드베이스의 인터랙티브한 힘 기반 그래프를 렌더링합니다. |
작동 방식 (고수준 워크플로우)
- 분석 – Tree-sitter (옵션으로 SCIP)가 심볼, 호출, 임포트 등을 추출합니다.
- 그래프 구축 – 추출된 데이터를 노드/엣지로 변환하여 선택한 그래프 DB에 저장합니다.
- 쿼리 – CLI 또는 MCP 서버가 그래프에 Cypher 유사 쿼리를 실행합니다.
- 사용 – AI 에이전트나 개발자가 호출 체인, 클래스 계층, 미사용 코드 목록 등의 구조화된 응답을 받습니다.
일반적인 사용 사례
- 파일 및 패키지 간의 호출 체인 추적.
- 클래스 계층 및 모듈 경계 이해.
- 미사용 코드, 핫스팟, 예기치 않은 종속성 탐지.
- AI 어시스턴트에게 인간 유지보수자가 사용하는 구조적 컨텍스트를 제공.
- 프로젝트 문서화 또는 온보딩을 위한 시각적 그래프 생성.
시작하기 (빠른 시작)
# 패키지 설치
pip install codegraphcontext
# 현재 리포지토리 인덱싱
cgc index .
# 간단한 쿼리 실행 (예: 함수의 호출자 확인)
cgc analyze callers my_function
# AI IDE 통합을 위한 MCP 서버 실행
cgc mcp setup # 한 번만 설정
cgc mcp start # FastAPI 서버 시작
Docker 사용자용:
docker pull codegraphcontext/codegraphcontext:latest
docker run --rm -v "$(pwd):/workspace" codegraphcontext/codegraphcontext cgc index .
유지보수자
Shashank Shekhar Singh (MIT 라이선스)에 의해 개발 및 유지보수 중입니다. 프로젝트는 오픈소스이며, CI 배지, 디스코드 커뮤니티, 공개 웹사이트를 보유하고 있습니다.
위 정보는 리포지토리의 README에서 직접 가져왔으며, 외부 가정은 전혀 포함되어 있지 않습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트