Skip to main content
Glama

Codevira MCP

AI 코딩 에이전트를 위한 지속적 적응형 메모리 — 모든 세션에서 학습하고, 모든 도구와 함께 작동하며, 모든 프로젝트에 걸쳐 기억합니다.

Python License: MIT MCP Version PRs Welcome Contributions Welcome

호환 도구: Claude Code · Cursor · Windsurf · Google Antigravity · 모든 MCP 호환 AI 도구


문제점

새로운 AI 코딩 세션을 시작할 때마다 에이전트는 항상 처음부터 다시 시작합니다.

이미 본 파일을 다시 읽고, 이미 확립된 패턴을 다시 발견합니다. 지난주 결정과 모순되는 결정을 내리기도 합니다. 프로젝트가 어떤 단계에 있는지, 무엇을 시도했는지, 왜 특정 파일이 접근 금지인지 전혀 알지 못합니다.

결국 매 세션마다 수천 개의 토큰을 재발견하는 데 낭비하게 됩니다.

Codevira가 이 문제를 해결합니다.


기능

Codevira는 모든 프로젝트에 적용할 수 있는 Model Context Protocol 서버입니다. 코드베이스에서 작업하는 모든 AI 에이전트에게 공유되는 지속적인 메모리를 제공합니다:

기능

의미

실시간 자동 감시

백그라운드 파일 감시자가 저장 시마다 자동 재인덱싱 — 수동 트리거 또는 git 커밋 불필요

컨텍스트 그래프

모든 소스 파일은 노드를 가짐: 역할, 규칙, 의존성, 안정성, do_not_revert 플래그

의미론적 코드 검색

코드베이스 전체에 대한 자연어 검색 — grep이나 파일 읽기 불필요

로드맵

단계별 추적기로 에이전트가 현재 단계와 다음 작업을 항상 파악

변경 세트 추적

다중 파일 변경을 원자적으로 추적; 중단 후 세션 재개 원활

결정 로그

모든 세션은 구조화된 로그를 작성; 과거 결정은 향후 모든 에이전트가 검색 가능

적응형 학습

결과 추적, 신뢰도 점수, 개발자 선호도 학습 및 자동 규칙 추론 — 시간이 지날수록 똑똑해지는 메모리

도구 간 연속성

Cursor, Claude Code, Windsurf, Antigravity 간 원활한 전환을 위한 단일 "catch me up" 호출

에이전트 페르소나

7가지 역할 정의(기획자, 개발자, 리뷰어, 테스터, 빌더, 문서화 담당자, 오케스트레이터) 및 명시적 프로토콜

결과: 재발견을 위한 15,000개 이상의 토큰 대신 세션당 약 1,400개의 토큰 오버헤드 발생.


작동 방식

에이전트 세션 수명 주기

flowchart TB

Start([Start Session])

subgraph Orientation
A[Check Open Changesets]
B[Get Project Roadmap]
C[Search Past Decisions]
D[Load Graph Context\nget_node • get_impact]
end

subgraph Execution
E[Plan Task]
F[Implement Code]
G[Run Tests / Validation]
end

subgraph Completion
H[Update Graph Metadata]
I[Write Session Log]
J[Complete Changeset]
end

Start --> A
A --> B
B --> C
C --> D
D --> E
E --> F
F --> G
G --> H
H --> I
I --> J

코드 인텔리전스 모델

flowchart TB

A[Source Code]

subgraph Structural Analysis
B[AST Parser]
C[Function / Class Extraction]
D[Dependency Analysis]
end

subgraph Knowledge Stores
E[(Semantic Index<br/>ChromaDB)]
F[(Context Graph<br/>SQLite DB)]
end

subgraph Runtime Access
G[MCP Query Layer<br/>search_codebase • get_node • get_impact]
end

H[AI Coding Agent<br/>Claude Code • Cursor]

A --> B
B --> C
C --> E

B --> D
D --> F

E --> G
F --> G

G --> H

빠른 시작

1. 설치

pip install codevira-mcp

2. 프로젝트 초기화

cd your-project
codevira init

이 단일 명령은 다음을 수행합니다:

  • 설정, 그래프, 로그 디렉토리가 포함된 .codevira/ 생성

  • .gitignore.codevira/ 추가 (인덱스는 자동 재생성되므로 커밋 불필요)

  • 프로젝트 이름, 언어, 소스 디렉토리(쉼표로 구분), 파일 확장자 입력 요청

  • SHA-256 콘텐츠 해싱을 사용하여 전체 코드 인덱스 구축 (변경된 파일만 재인덱싱)

  • 모든 소스 파일에 대한 그래프 스텁 자동 생성

  • git 기록에서 .codevira/roadmap.yaml 부트스트랩

  • 자동 재인덱싱을 위한 post-commit git 훅 설치

  • AI 도구에 붙여넣을 MCP 설정 블록 출력

실시간 자동 감시: MCP 서버가 시작되면 백그라운드 파일 감시자가 자동으로 실행됩니다. 소스 파일을 저장할 때마다 2초 이내에 인덱스가 업데이트됩니다. 수동 명령은 필요 없습니다. post-commit 훅과 codevira index CLI는 대안으로 계속 사용할 수 있습니다.

3. AI 도구에 연결

IDE 및 환경에 따라 codevira-mcpPATH에 자동으로 포함되지 않을 수 있습니다. uvx(가장 쉬운 옵션)를 사용하거나 Python 가상 환경의 절대 경로를 제공할 수 있습니다.

옵션 A: uvx 사용 (로컬 설치가 없는 모든 IDE에 권장) uv를 사용하는 경우, 프로젝트별 가상 환경을 관리할 필요 없이 MCP 서버를 원활하게 실행할 수 있습니다.

Claude Code (.claude/settings.json), Cursor / Windsurf (설정 → MCP):

{
  "mcpServers": {
    "codevira": {
      "command": "uvx",
      "args": ["codevira-mcp", "--project-dir", "/path/to/your-project"]
    }
  }
}

옵션 B: 로컬 Venv 사용 (권장, 어디서나 작동) codevira-mcp가 설치된 .venv 내부의 Python 런타임으로 AI 도구를 직접 가리킵니다.

Claude Code (.claude/settings.json) 또는 Cursor / Windsurf (설정 → MCP):

{
  "mcpServers": {
    "codevira": {
      "command": "/path/to/your-project/.venv/bin/python",
      "args": ["-m", "mcp_server", "--project-dir", "/path/to/your-project"]
    }
  }
}

Google Antigravity~/.gemini/antigravity/mcp_config.json에 추가:

{
  "mcpServers": {
    "codevira": {
      "$typeName": "exa.cascade_plugins_pb.CascadePluginCommandTemplate",
      "command": "/path/to/your-project/.venv/bin/python",
      "args": ["-m", "mcp_server", "--project-dir", "/path/to/your-project"]
    }
  }
}

⚠️ 중요: 여러 프로젝트에서 글로벌 클라이언트(Antigravity / Claude Desktop) 사용 시

프로젝트별로 격리된 MCP 서버를 자동으로 실행하는 Cursor와 달리, Antigravity와 같은 글로벌 클라이언트는 열려 있는 모든 프로젝트에서 단일 mcp_config.json을 공유합니다.

Project A에 대해 codevira를 한 번 설정한 후 Project B에 대해 질문하면, 에이전트는 Project A의 그래프와 로드맵을 읽게 됩니다.

해결 방법: 글로벌 설정에서 각 프로젝트에 대해 고유한 이름의 서버를 등록해야 합니다. AI는 대화 컨텍스트에 따라 올바른 도구 접두사를 동적으로 선택합니다:

{
  "mcpServers": {
    "codevira-project-a": {
      "$typeName": "exa.cascade_plugins_pb.CascadePluginCommandTemplate",
      "command": "uvx",
      "args": ["codevira-mcp", "--project-dir", "/path/to/project-a"]
    },
    "codevira-project-b": {
      "$typeName": "exa.cascade_plugins_pb.CascadePluginCommandTemplate",
      "command": "uvx",
      "args": ["codevira-mcp", "--project-dir", "/path/to/project-b"]
    }
  }
}

4. 확인

에이전트에게 get_roadmap()을 호출하도록 요청하세요. 현재 단계와 다음 작업이 반환되어야 합니다.

초기화 후 프로젝트 구조

your-project/
├── src/                   ← your code (indexed)
├── .codevira/             ← Codevira data directory (git-ignored)
│   ├── config.yaml        ← project configuration
│   ├── roadmap.yaml       ← project roadmap (auto-generated, human-enrichable)
│   ├── codeindex/         ← ChromaDB index (auto-regenerated)
│   └── graph/             ← context graph and session memory
│       ├── graph.db       ← SQLite database for nodes, edges, logs, and decisions
│       └── changesets/    ← active multi-file change records
└── requirements.txt       ← add: codevira-mcp>=1.0.0

로드맵 수명 주기: 로드맵은 초기화 중에 자동 생성되며 MCP 도구 호출을 통해 에이전트에 의해 업데이트됩니다. 전체 수명 주기 가이드, 수동 편집 단계 및 문제 해결은 docs/roadmap.md를 참조하세요.


세션 프로토콜

모든 에이전트 세션은 간단한 프로토콜을 따릅니다. 에이전트의 시스템 프롬프트에 한 번 설정하면 나머지는 에이전트가 처리합니다.

세션 시작 (필수):

list_open_changesets()      → resume any unfinished work first
get_roadmap()               → current phase, next action
search_decisions("topic")   → check what's already been decided
get_node("src/service.py")  → read rules before touching a file
get_impact("src/service.py") → check blast radius

세션 종료 (필수):

complete_changeset(id, decisions=[...])
update_node(file_path, changes)
update_next_action("what the next agent should do")
write_session_log(...)

이 루프는 모든 세션을 빠르고 집중적이며 재개 가능하게 유지합니다.


33가지 MCP 도구

그래프 도구

도구

설명

get_node(file_path)

모든 파일에 대한 메타데이터, 규칙, 연결, 노후화 정보

get_impact(file_path)

BFS 영향 범위 — 이 파일에 의존하는 파일들 (실제 import 엣지 기반)

list_nodes(layer?, stability?, do_not_revert?)

속성별 노드 쿼리

add_node(file_path, role, type, ...)

그래프에 새 파일 등록

update_node(file_path, changes)

규칙, 연결, key_functions 추가

refresh_graph(file_paths?)

미등록 파일에 대한 스텁 자동 생성

refresh_index(file_paths?)

ChromaDB에서 특정 파일 재임베딩

export_graph(format, scope?)

의존성 그래프를 Mermaid 또는 DOT 다이어그램으로 내보내기

get_graph_diff(base_ref?, head_ref?)

git 참조 간 변경된 노드, 안정성 플래그, 영향 범위 표시

로드맵 도구

도구

설명

get_roadmap()

현재 단계, 다음 작업, 열린 변경 세트

get_full_roadmap()

전체 기록: 모든 단계, 결정, 연기된 작업

get_phase(number)

번호별 단계의 전체 세부 정보

update_next_action(text)

다음 에이전트가 수행할 작업 설정

update_phase_status(status)

단계 상태를 in_progress / blocked로 표시

add_phase(phase, name, description, ...)

새로운 예정 작업 대기열 추가

complete_phase(number, key_decisions)

완료 표시, 다음 단계로 자동 진행

defer_phase(number, reason)

단계를 연기 목록으로 이동

변경 세트 도구

도구

설명

list_open_changesets()

진행 중인 모든 변경 세트

get_changeset(id)

전체 세부 정보: 완료된 파일, 보류 중인 파일, 차단 요소

start_changeset(id, description, files)

다중 파일 변경 세트 열기

complete_changeset(id, decisions)

닫기 및 결정 사항 기록

update_changeset_progress(id, last_file, blocker?)

세션 중간 체크포인트

검색 도구

도구

설명

search_codebase(description, top_k?)

소스 코드에 대한 의미론적 검색

search_decisions(query, limit?, session_id?)

과거 모든 세션 결정 검색; 특정 세션으로 필터링 가능

get_history(file_path)

파일을 다룬 모든 세션

write_session_log(...)

구조화된 세션 기록 작성

적응형 학습 도구 (v1.4)

도구

설명

get_decision_confidence(file_path?, pattern?)

결과 기반 신뢰도 점수 — 과거 결정이 유지된 빈도 vs 되돌려진 빈도

get_preferences(category?)

편집 후 수정 사항에서 학습된 개발자 스타일 선호도

get_learned_rules(file_path?, category?)

관찰된 패턴에서 자동 생성된 규칙 (테스트 페어링, import 핫스팟, 동시 변경)

get_project_maturity()

세션, 커버리지, 신뢰도, 규칙, 선호도를 결합한 0–100 지능 점수

get_session_context()

도구 간 연속성을 위한 단일 "catch me up" 호출 (Cursor ↔ Claude Code ↔ Antigravity)

코드 읽기 도구

도구

설명

get_signature(file_path)

모든 공개 심볼, 서명, 줄 번호

get_code(file_path, symbol)

함수 또는 클래스의 전체 소스

플레이북 도구

도구

설명

get_playbook(task_type)

작업별 큐레이팅된 규칙: add_route, add_service, add_schema, debug_pipeline, commit, write_test


에이전트 페르소나

agents/에 있는 7가지 역할 정의는 각 에이전트에게 무엇을 언제 해야 하는지 정확히 알려줍니다:

에이전트

호출 시점

주요 책임

orchestrator.md

모든 세션 시작

작업 분류, 파이프라인 선택

planner.md

크거나 모호한 작업

순차적 단계로 분해

developer.md

모든 코드 변경

그래프 규칙 내에서 코드 작성

reviewer.md

stability: high 또는 do_not_revert 파일

규칙 위반 표시

tester.md

모든 코드 변경 후

테스트 스위트 실행

builder.md

테스트 통과 후

린트, 타입 체크

documenter.md

모든 세션 종료

그래프, 로드맵, 로그 업데이트


프로젝트 구조

.agents/
├── PROTOCOL.md              # Session protocol — read this first
├── config.example.yaml      # Config template
├── config.yaml              # Your config (git-ignored)
├── roadmap.yaml             # Phase tracker (auto-created, git-ignored)
├── mcp-server/
│   ├── server.py            # MCP server entry point
│   └── tools/
│       ├── graph.py
│       ├── roadmap.py
│       ├── changesets.py
│       ├── search.py
│       ├── playbook.py
│       └── code_reader.py
├── indexer/
│   ├── index_codebase.py    # Build/update ChromaDB index + background file watcher
│   ├── chunker.py           # AST-based code chunker
│   ├── treesitter_parser.py # Multi-language AST parsing (16+ languages)
│   ├── sqlite_graph.py      # SQLite graph database backend
│   └── graph_generator.py   # Auto-generate graph stubs
├── requirements.txt         # Python dependencies
├── agents/                  # Role definitions
│   ├── orchestrator.md
│   ├── planner.md
│   ├── developer.md
│   ├── reviewer.md
│   ├── tester.md
│   ├── builder.md
│   └── documenter.md
├── rules/                   # Engineering standards
│   ├── master_rule.md
│   ├── coding-standards.md
│   ├── testing-standards.md
│   └── ...13 more
├── graph/
│   ├── graph.db             # SQLite Context Graph and Session Memory (git-ignored)
│   └── changesets/
├── hooks/
│   └── install-hooks.sh
└── codeindex/               # ChromaDB files (git-ignored)

언어 지원

기능

Python

TypeScript

Go

Rust

10+ 기타 (Java, C#, Ruby, PHP, C++)

의미론적 코드 검색

컨텍스트 그래프 + 영향 범위

로드맵 + 변경 세트

세션 로그 + 결정 검색

get_signature / get_code

자동 생성 그래프 스텁

AST 기반 청킹

모든 세션 관리, 그래프, 로드맵 및 검색 기능은 모든 언어에서 작동합니다. 코드 파싱 및 추출(검색, 그래프 생성, 서명 읽기)은 강력한 AST 및 Tree-Sitter 통합을 기반으로 합니다.


요구 사항

  • Python 3.10+

  • ChromaDB

  • sentence-transformers

  • PyYAML

pip install -r .agents/requirements.txt

배경

이 도구가 만들어진 이유, 설계 결정, 작동하지 않았던 것, 생태계의 다른 도구들과 어떻게 비교되는지에 대한 전체 이야기를 알고 싶으신가요?

전체 글 읽기: AI 코딩 에이전트 토큰 사용량을 92% 절감한 방법


기여

기여를 환영합니다 — 이 프로젝트는 초기 단계의 오픈 소스 프로젝트이며 성장할 여지가 많습니다.

포크, 브랜치 명명, 커밋 형식 및 PR 프로세스에 대한 전체 가이드는 CONTRIBUTING.md를 참조하세요.

기여하기 좋은 분야:

  • 그래프 시각화 내보내기 (Dot/Mermaid)

  • 일반적인 작업 유형에 대한 추가 플레이북 항목

  • IDE별 설정 가이드

  • 버그 보고 및 엣지 케이스 수정

버그 보고:버그 보고서 열기

기능 요청: → [기능 요청 열기

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sachinshelke/codevira'

If you have feedback or need assistance with the MCP directory API, please join our Discord server