Coding Agents Python ★ 3,790

CodeGraphContext/CodeGraphContext

Yerel kodu bir graf veritabanına indeksleyen ve AI asistanlarına bağlam sağlayan, insanlar için grafik kod görselleştirmeleri sunan bir MCP sunucusu.

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "codegraphcontext-codegraphcontext": {
      "command": "python",
      "args": [
        "-m",
        "CodeGraphContext"
      ]
    }
  }
}

🏗️ CodeGraphContext (CGC)

Kod depolarını AI ajanları için sorgulanabilir bir grafa dönüştürün.

🌐 Diller:

🌍 CodeGraphContext'i dilinize çevirmek için lütfen https://github.com/Shashankss1205/CodeGraphContext/issues adresinde bir issue ve PR açın!


Derin kod grafikleri ile AI context arasındaki boşluğu kapatın.





Yerel kodu bir grafik veritabanına indexleyen güçlü bir MCP sunucusu ve CLI araç takımı. AI asistanları ve geliştiricilere context sağlar. Bunu kapsamlı kod analizi için bağımsız bir CLI olarak kullanabilir veya AI destekli kod anlama için MCP yoluyla favori AI IDE'nize bağlayabilirsiniz.


📍 Hızlı Navigasyon


✨ CGC Deneyimi

👨🏻‍💻 Kurulum ve CLI

Pip ile saniyeler içinde kurun ve kod grafı analizi için güçlü bir CLI'ı açın. Kurun ve CLI'ı hemen açın

🛠️ Saniyeler İçinde Indexleme

CLI akıllıca tree-sitter düğümlerinizi grafiği oluşturmak için ayrıştırır. MCP istemcisini kullanarak indexleme

🤖 AI Asistanınızı Güçlendirme

Doğal dili kullanarak MCP aracılığıyla karmaşık çağrı zincirlerini sorgulayın. MCP sunucusunu kullanma


Proje Detayları


👨‍💻 Geliştirici

CodeGraphContext tarafından oluşturulan ve aktif olarak yönetilen:

Shashank Shekhar Singh

Katkılar ve geri bildirim her zaman hoş geldiniz! Sorular, öneriler veya işbirliği fırsatları için bizimle iletişime geçmekten çekinmeyin.


Yıldız Tarihi

Star History Chart


Özellikler

  • Kod Indexleme: Kodu analiz eder ve bileşenlerinin bir bilgi grafiği oluşturur.
  • İlişki Analizi: Çağıranlar, çağrılanlar, sınıf hiyerarşileri, çağrı zincirleri ve daha fazlası için sorgulama yapın.
  • Önceden İndekslenmiş Paketler: Ünlü depoları .cgc paketleriyle anında yükleyin - indexleme gerekmez! (Daha fazla bilgi)
  • Canlı Dosya İzleme: Dizinleri değişiklikler için izleyin ve grafiği gerçek zamanlı olarak otomatik güncelleyin (codegraphcontext watch).
  • Etkileşimli Kurulum: Kolay kurulum için kullanıcı dostu komut satırı sihirbazı.
  • Çift Mod: Geliştiriciler için bağımsız bir CLI araç takımı ve AI ajanları için bir MCP sunucusu olarak çalışır.
  • Çok Dil Desteği: 20 programlama dili için tam destek.
  • Esnek Veritabanı Backend'i: FalkorDB Lite (Varsayılan), KuzuDB, LadybugDB, FalkorDB Remote, Nornic DB, veya Neo4j (tüm platformlar Docker/native aracılığıyla).

Desteklenen Programlama Dilleri

CodeGraphContext aşağıdaki diller için kapsamlı ayrıştırma ve analiz sağlar:

Dil Dil Dil
🐍 Python 📜 JavaScript 🔷 TypeScript
Java 🏗️ C / C++ #️⃣ C#
🐹 Go 🦀 Rust 💎 Ruby
🐘 PHP 🍎 Swift 🎨 Kotlin
🎯 Dart 🐪 Perl 🌙 Lua
🚀 Scala λ Haskell 💧 Elixir
⚛️ TSX

Her dil ayrıştırıcısı, kapsamlı bir kod grafiği oluşturmak için fonksiyonları, sınıfları, metodları, parametreleri, kalıtım ilişkilerini, fonksiyon çağrılarını ve importları çıkarır.


Veritabanı Seçenekleri

CodeGraphContext, ortamınıza uygun birden fazla grafik veritabanı backend'ini destekler:

Özellik KuzuDB LadybugDB FalkorDB Lite Neo4j / Nornic DB
Tipik varsayılan Standart Varsayılan (gömülü, KuzuDB tarafından güçlendirilmiş) Uzmanlaştırılmış Gömülü (Kuzu'ya benzer) Unix (Python 3.12+, falkordblite çalıştığında) Açıkça yapılandırıldığında
Kurulum Sıfır yapılandırma / Gömülü Sıfır yapılandırma / Gömülü Sıfır yapılandırma / İşlem içi Docker / Harici
Platform Tümü (Windows Native, macOS, Linux) Tümü (Windows Native, macOS, Linux) Sadece Unix (Linux/macOS/WSL) Tüm Platformlar
Kullanım Durumu Masaüstü, IDE, Yerel geliştirme Özel araştırma projeleri Uzmanlaştırılmış Unix geliştirmesi Kurumsal, Devasa grafikler
Gereksinim pip install kuzu pip install ladybug pip install falkordblite Neo4j Sunucusu / Docker / Nornic Cloud
Hız ⚡ Aşırı Hızlı ⚡ Hızlı 🚀 Ölçeklenebilir
Kalıcılık Evet (diske) Evet (diske) Evet (diske)

SCIP indexing (isteğe bağlı)

CGC yapılandırmanızda (~/.codegraphcontext/.env) SCIP_INDEXER=true olduğunda, bazı diller Tree-sitter buluşsal yöntemlerinin tek başına sağlayabileceğinden daha doğru çağrılar ve kalıtım için harici SCIP indexleyicileri kullanır.

C ve C++ bir compile_commands.json dosyası gerektiren scip-clang kullanır (bir JSON derlemesi veritabanı): çeviri birimi başına bir giriş gerçek derleyici komutunun yanında (include yolları, -D tanımları, -std, vb.). Olmadan, scip-clang çalıştırılamaz; CGC bir uyarı kaydeder ve Tree-sitter'a geri döner o repo için. Dosyayı oluşturmanın tipik yolları: CMake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ile veya gerçek yapınızı Bear ile sarın (ör. bear -- make). CGC ayrıca build/ ve cmake-build-*/ altında o dosyadaki adını arar.

C# scip-dotnet (Roslyn) kullanır; normal bir .csproj / .sln ve başarılı bir restore gerekir—compile_commands.json gerekli değildir.

SCIP, hangi grafik veritabanından bağımsızdır (Kuzu, Neo4j, vb.); aynı bayrak tüm backend'ler için geçerlidir.


Tarafından Kullanılıyor

CodeGraphContext zaten geliştiriciler ve projeler tarafından şunlar için keşfediliyor:

  • AI asistanlarında statik kod analizi
  • Projelerin grafik tabanlı görselleştirilmesi
  • Ölü kod ve karmaşıklık tespiti

CodeGraphContext'i projenizde kullanıyorsanız, bir PR açmaktan ve burada eklemekten çekinmeyin! 🚀


Bağımlılıklar

  • neo4j>=5.15.0
  • watchdog>=3.0.0
  • stdlibs>=2023.11.18
  • typer>=0.9.0
  • rich>=13.7.0
  • inquirerpy>=0.3.4
  • python-dotenv>=1.0.0
  • tree-sitter>=0.21.0 (Python 3.13'te kurulmaz)
  • tree-sitter-language-pack>=0.6.0 (Python 3.13'te kurulmaz)
  • pyyaml
  • pathspec>=0.12.1
  • falkordb>=0.1.0
  • falkordblite>=0.1.0 (Sadece Unix)
  • kuzu (KuzuDB motoru)
  • fastapi>=0.100.0
  • uvicorn>=0.22.0
  • requests>=2.28.0
  • protobuf>=3.20,<3.21

Not: Python 3.10-3.14 desteklenir.


🚀 Kurulum & Hızlı Başlangıç

  1. Araç takımını kurun:

    pip install codegraphcontext
    
  2. Sorun Giderme (Komut Bulunamadı): codegraphcontext komutu bulunamazsa, bu tek satırlık düzeltmeyi çalıştırın:

    curl -sSL https://raw.githubusercontent.com/CodeGraphContext/CodeGraphContext/main/scripts/post_install_fix.sh | bash
    
  3. Veritabanı Kurulumu (Otomatik): CodeGraphContext varsayılan olarak gömülü bir grafik veritabanı kullanır.

    • FalkorDB Lite: Varsayılan backend.
    • KuzuDB: Platformlar arası gömülü backend.
    • Neo4j: Harici sunucu kullanmak için codegraphcontext neo4j setup komutunu çalıştırın.

CLI Araç Takımı Modu İçin

CLI komutlarıyla hemen kullanmaya başlayın:

# Geçerli dizininizi indexleyin
codegraphcontext index .

# Tüm indexlenmiş depoları listeleyin
codegraphcontext list

# Bir fonksiyonu kimin çağırdığını analiz edin
codegraphcontext analyze callers my_function

# Karmaşık kodu bulun
codegraphcontext analyze complexity --threshold 10

# Ölü kodu bulun
codegraphcontext analyze dead-code

# Canlı değişiklikleri izleyin (isteğe bağlı)
codegraphcontext watch .

# Tüm komutları göreceğiniz
codegraphcontext help

Tüm komutlar ve kullanım senaryoları için tam CLI Komutları Kılavuzuna bakın.

🎨 Premium İnteraktif Görselleştirme

CodeGraphContext, kodunuzun etkileyici etkileşimli bilgi grafiklerini oluşturabilir. Statik diyagramların aksine, bunlar premium web tabanlı araştırmacılarıdır:

  • Premium Estetik: Dark mode, glassmorphism ve modern tipografi (Outfit/JetBrains Mono).
  • İnteraktif İnceleme: Sembol bilgisi, dosya yolları ve bağlam içeren ayrıntılı bir yan panel açmak için herhangi bir düğüme tıklayın.
  • Hızlı Arama: Belirli sembolleri anında bulmak için grafik aracılığıyla canlı arama.
  • Akıllı Düzenler: Karmaşık ilişkileri okunabilir hale getiren kuvvet yönelimli ve hiyerarşik düzenler.
  • Sıfır Bağımlılık Görüntüleme: Herhangi bir modern tarayıcıda çalışan bağımsız HTML dosyaları.
# Fonksiyon çağrılarını görselleştirin
codegraphcontext analyze calls my_function --viz

# Sınıf hiyerarşilerini keşfedin
codegraphcontext analyze tree MyClass --viz

# Arama sonuçlarını görselleştirin
codegraphcontext find pattern "Auth" --viz

🤖 MCP Sunucusu Modu İçin

AI asistanınızı CodeGraphContext kullanacak şekilde yapılandırın:

  1. Kurulum: IDE/AI asistanınızı yapılandırmak için MCP kurulum sihirbazını çalıştırın:

    codegraphcontext mcp setup
    

    Sihirbaz otomatik olarak algılayıp yapılandırabilir:

    • VS Code
    • Cursor
    • Windsurf
    • Claude
    • Gemini CLI
    • ChatGPT Codex
    • Cline
    • RooCode
    • Amazon Q Developer
    • Kiro

    Başarılı yapılandırmanın ardından, codegraphcontext mcp setup gerekli yapılandırma dosyalarını oluşturacak ve yerleştirecektir:

    • Referans için geçerli dizininizde bir mcp.json dosyası oluşturur.
    • Veritabanı kimlik bilgilerinizi ~/.codegraphcontext/.env'de güvenli bir şekilde depolar.
    • Seçilen IDE/CLI'ın ayarlar dosyasını güncelleştir (ör. .claude.json veya VS Code'ın settings.json).
  2. Başlat: MCP sunucusunu başlat:

    codegraphcontext mcp start
    
  3. Kullan: Şimdi AI asistanınız aracılığıyla doğal dil kullanarak kod tabanınızla etkileşim kurun! Aşağıdaki örneklere bakın.


Dosyaları Yoksayma (.cgcignore)

Proje kökünüzde bir .cgcignore dosyası oluşturarak CodeGraphContext'e belirli dosya ve dizinleri yoksaymasını söyleyebilirsiniz. Bu dosya .gitignore ile aynı söz dizimini kullanır.

Örnek .cgcignore dosyası:

# Derleme yapılarını yoksayın
/build/
/dist/

# Bağımlılıkları yoksayın
/node_modules/
/vendor/

# Günlükleri yoksayın
*.log

MCP İstemci Yapılandırması

codegraphcontext mcp setup komutu IDE/CLI'nızı otomatik olarak yapılandırmaya çalışır. Otomatik kurulumunu kullanmamayı seçerseniz veya aracınız desteklenmiyorsa, bunu el ile yapılandırabilirsiniz.

İstemcinizin ayarlar dosyasına (ör. VS Code'ın settings.json veya .claude.json) aşağıdaki sunucu yapılandırmasını ekleyin:

{
  "mcpServers": {
    "CodeGraphContext": {
      "command": "codegraphcontext",
      "args": [
        "mcp",
        "start"
      ],
      "env": {
        "NEO4J_URI": "YOUR_NEO4J_URI",
        "NEO4J_USERNAME": "YOUR_NEO4J_USERNAME",
        "NEO4J_PASSWORD": "YOUR_NEO4J_PASSWORD"
      },
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

Pipx aracılığıyla kurulduysa

CodeGraphContext'i pipx kullanarak kurdıysanız, bunun yerine aşağıdaki yapılandırmayı kullanın:

{
  "mcpServers": {
    "CodeGraphContext": {
      "command": "pipx",
      "args": [
        "run",
        "codegraphcontext",
        "mcp",
        "start"
      ],
      "env": {
        "NEO4J_URI": "YOUR_NEO4J_URI",
        "NEO4J_USERNAME": "YOUR_NEO4J_USERNAME",
        "NEO4J_PASSWORD": "YOUR_NEO4J_PASSWORD"
      },
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

Doğal Dil Etkileşim Örnekleri

Sunucu çalıştıktan sonra, AI asistanınız aracılığıyla düz İngilizce kullanarak etkileşim kurabilirsiniz. İşte söyleyebileceğiniz şeylerden bazı örnekler:

Dosyaları Indexleme ve İzleme

  • Yeni bir projeyi indexlemek için:

    • "Lütfen /path/to/my-project dizinindeki kodu indexleyin." VEYA
    • "Projesi ~/dev/my-other-project'de kod grafiğine ekle."
  • Canlı değişiklikler için bir dizini izlemeye başlamak için:

    • "Değişiklikler için /path/to/my-active-project dizinini izle." VEYA
    • "~/dev/main-app'de çalıştığım proje için kod grafiğini güncel tut."

    Bir dizini izlemek istediğinizde, sistem aynı anda iki işlem gerçekleştirir:

    1. O dizindeki tüm kodu indexlemek için tam bir tarama başlatır. Bu işlem arka planda çalışır ve ilerlemeyi izlemek için bir job_id alırsınız.
    2. Grafiği gerçek zamanlı olarak güncel tutmak için dizini dosya değişiklikleri için izlemeye başlar.

    Bu, sisteme basitçe bir dizini izlemesini söyleyerek başlayabileceğiniz ve hem ilk indexlemenin hem de süregelen güncellemelerin otomatik olarak işleneceği anlamına gelir.

Kodu Sorgulama ve Anlama

  • Kodun nerede tanımlandığını bulma:

    • "process_payment fonksiyonu nerede?"
    • "User sınıfını bul benim için."
    • "'veritabanı bağlantısı' ile ilgili herhangi bir kodu göster."
  • İlişkiler ve etkiyi analiz etme:

    • "get_user_by_id fonksiyonunu hangi diğer fonksiyonlar çağırıyor?"
    • "calculate_tax fonksiyonunu değiştirirsem, kodun hangi diğer kısımları etkilenecek?"
    • "BaseController sınıfının kalıtım hiyerarşisini göster."
    • "Order sınıfının hangi metodları var?"
  • Bağımlılıkları keşfetme:

    • "Hangi dosyalar requests kitaplığını import ediyor?"
    • "render metodunun tüm uygulamalarını bul."
  • Gelişmiş Çağrı Zinciri ve Bağımlılık İzleme (Yüzlerce Dosyaya Yayılan): CodeGraphContext karmaşık yürütme akışlarını ve bağımlılıkları geniş kod tabanları arasında izlemede mükemmeldir. Grafik veritabanlarının gücünden yararlanarak, bir fonksiyonun birden fazla soyutlama katmanı aracılığıyla veya çok sayıda dosya arasında çağrıldığı zaman bile doğrudan ve dolaylı çağırıcıları ve çağrılanları tanımlayabilir. Bu şu durumlar için çok değerlidir:

    • Etki Analizi: Çekirdek bir fonksiyonda yapılacak değişikliğin tam dalgalanma etkisini anlayın.

    • Hata Ayıklama: Bir giriş noktasından belirli bir hatasına kadar yürütme yolunu izleyin.

    • Kod Anlama: Büyük bir sistemin farklı bölümlerinin nasıl etkileşim kurduğunu kavrayın.

    • "main fonksiyonundan process_data'ya kadar tam çağrı zincirini göster."

    • "validate_input'u doğrudan veya dolaylı olarak çağıran tüm fonksiyonları bul."

    • "initialize_system'in sonunda çağırdığı tüm fonksiyonlar nelerdir?"

    • "DatabaseManager modülünün bağımlılıklarını izle."

  • Kod Kalitesi ve Bakım:

    • "Bu projede ölü veya kullanılmayan bir kod var mı?"
    • "src/utils.py içinde process_data fonksiyonunun döngüsel karmaşıklığını hesapla."
    • "Kod tabanında en karmaşık 5 fonksiyonu bul."
  • Depo Yönetimi:

    • "Şu anda indexlenmiş tüm depoları listele."
    • "/path/to/old-project'de indexlenmiş depoyu sil."

Katkıda Bulunma

Katkılar hoş geldiniz! 🎉
Ayrıntılı yönergeler için lütfen CONTRIBUTING.md dosyasına bakın. Yeni özellikler, entegrasyonlar veya iyileştirmeler için fikirleriniz varsa, bir issue açın veya bir Pull Request gönderin.

Tartışmalara katılın ve CodeGraphContext'in geleceğini şekillendirmeye yardımcı olun.

Benzer MCP sunucuları

Daha fazla: Coding Agents →