KotaDB
Claude에게 코드를 질문하세요. 즉각적인 답변을 받으세요.
KotaDB는 Claude Code가 사용자의 코드베이스를 이해할 수 있도록 강력한 기능을 제공합니다. 저장소(repository)를 한 번 인덱싱하면, *"이 파일을 변경하면 무엇이 깨지나요?"*와 같은 질문을 하고 정확하고 의존성을 고려한 답변을 받을 수 있습니다.
사용자용 (For Users)
KotaDB가 하는 일
KotaDB는 Claude Code가 코드베이스 구조를 이해하도록 돕는 로컬 코드 인텔리전스 도구입니다:
- 영향 분석 (Impact Analysis): 변경하는 내용에 어떤 파일들이 의존하고 있는지 정확히 파악할 수 있습니다.
- 코드 검색 (Code Search): 단순히 텍스트 일치 여부가 아닌, 의미로 코드를 찾을 수 있습니다.
- 의존성 그래프 (Dependency Graphs): 파일들이 서로 어떻게 연결되어 있는지 확인할 수 있습니다.
- 제로 클라우드 (Zero Cloud): 모든 것이 로컬에서 실행됩니다. 사용자의 코드는 절대 기기를 벗어나지 않습니다.
5분 설정 가이드
전제 조건: Bun v1.1 이상 (필수)
단계 1: Claude Code에 추가하기
다음 내용을 Claude Code MCP 설정 파일(~/.claude/mcp.json)에 추가하세요:
{
"mcpServers": {
"kotadb": {
...
단계 2: 질문하기 시작하기
그냥 질문만 하세요! KotaDB는 첫 사용 시 자동으로 인덱싱됩니다:
"src/index.ts에 의존하는 파일은 무엇인가요?"
KotaDB가 코드베이스를 자동으로 인덱싱하고 질문에 답변합니다. 수동 설정이 필요 없습니다.
인덱싱이 완료되면, Claude는 다음과 같은 질문에 답변할 수 있습니다:
- "어떤 파일들이 이 모듈을 가져오나요?(import)"
- "이 함수를 리팩토링하면 무엇이 깨질까요?"
- "인증(authentication)과 관련된 모든 파일을 찾아주세요"
KotaDB가 답변하는 핵심 질문들
| 질문 | KotaDB 도구 |
|---|
| "이 파일을 변경하면 무엇이 깨지나요?" | search_dependencies |
| ... | |
왜 stdio 전송(Stdio Transport)인가?
KotaDB는 HTTP 포트 대신 stdio (표준 입출력, standard input/output)를 사용합니다:
- 포트 충돌 없음: 설정 없이 다른 도구들과 함께 작동합니다.
- 간단한 설정: MCP 설정만 추가하면 됩니다.
- 더 나은 격리성: Claude Code가 프로세스 생명주기를 관리합니다.
- MCP 권장 방식: 로컬 도구를 위한 공식 패턴입니다.
KotaDB는 --toolset 플래그를 통해 다양한 도구 계층을 지원합니다:
| 티어 (Tier) | 도구 (Tools) | 설명 (Description) |
|---|
core | 6 | 필수 코드 지능 (검색, 인덱싱, 의존성) |
| ... | | |
예시 구성:
bunx kotadb@next --stdio (기본값: 8개 도구)
bunx kotadb@next --stdio --toolset core (최소화: 6개 도구)
bunx kotadb@next --stdio --toolset memory (메모리 포함: 14개 도구)
bunx kotadb@next --stdio --toolset full (전체: 20개 도구)
AI 개발 도구 구축 배우기
KotaDB는 제가 AI 기반 개발자 도구를 구축하는 여정의 일부입니다. 저는 배운 모든 것을 공유합니다:
🎥 YouTube - Claude Code, MCP 및 이와 같은 도구 구축에 대한 튜토리얼
→ youtube.com/@jaymin-west
👥 Prompt to Prod Community - 단순히 프롬프트를 넘어 AI 앱을 출시하는 법 학습
→ skool.com/prompt-to-prod
Jaymin West가 제작했습니다.
기여자(Contributor)를 위한 섹션
개발 환경 설정 (Development Setup)
cd app && bun install
...
서버는 기본적으로 포트 3000에서 수신합니다. PORT=4000으로 재정의할 수 있습니다.
데이터는 기본적으로 ~/.kotadb/kotadb.sqlite에 저장됩니다.
유용한 스크립트 (Useful Scripts)
cd app && bun --watch src/index.ts - 서버를 워치 모드(watch mode)로 시작합니다.
cd app && bun test - 테스트 스위트를 실행합니다.
cd app && bunx tsc --noEmit - 프로젝트의 타입 검사(Type-check)를 수행합니다.
자세한 개발 환경 설정은 DEVELOPMENT.md를 참조하세요.
프로젝트 레이아웃 (Project Layout)
app/ # 애플리케이션 계층 (TypeScript/Bun API 서비스)
src/
api/ # HTTP 라우트 및 데이터베이스 접근
...
API 참조 (API Reference)
KotaDB는 Model Context Protocol을 통해 다음 도구들을 제공합니다:
| 도구 (Tool) | 목적 (Purpose) |
|---|
search_code | 인덱싱된 코드 파일에서 특정 용어를 검색합니다. |
| ... | |
REST 엔드포인트 (REST Endpoints)
GET /health - 하트비트(Heartbeat) 엔드포인트입니다.
POST /index - 인덱싱을 위한 저장소 큐잉(Queueing) 요청입니다.
GET /search?term=foo - 특정 용어(term)를 포함하는 파일을 검색합니다.
GET /files/recent - 최근 인덱싱 결과를 가져옵니다.
HTTP 전송 방식 (대안) (HTTP Transport (Alternative))
다중 클라이언트 시나리오 또는 원격 접속의 경우, HTTP 전송을 사용하십시오:
{
"mcpServers": {
"kotadb": {
...
--port를 사용하여 포트를 사용자 정의할 수 있습니다:
MCP 프로토콜 상세 정보
엔드포인트: POST /mcp
필수 헤더:
Accept: application/json, text/event-stream
MCP-Protocol-Version: 2025-06-18
Content-Type: application/json
예시: 초기 핸드셰이크(Initialize Handshake)
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
...
예시: 종속성 검색(Search Dependencies)
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
...
다중 리포지토리 지원 (Multi-Repository Support)
KotaDB v2.0.0은 .kotadb/ 디렉터리에 프로젝트 로컬 스토리지(project-local storage)를 사용하여 프로젝트 간 자동 격리를 제공합니다. 모든 MCP 도구는 결과를 필터링하기 위한 선택적 repository 매개변수를 지원합니다.
await tools.list_recent_files({ limit: 20 });
...
자세한 지침은 docs/guides/multi-repo-best-practices.md를 참조하십시오.
보안 (Security)
기본적으로 KotaDB는 로컬호스트(localhost) 출처에서 오는 요청만 허용합니다. 필요한 경우 KOTA_ALLOWED_ORIGINS 환경 변수(쉼표로 구분)를 구성하십시오.
인덱서는 localPath가 제공되지 않으면 자동으로 리포지토리를 복제(clone)합니다. GitHub 클론 소스는 KOTA_GIT_BASE_URL을 사용하여 재정의할 수 있습니다.