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"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/CodeGraphContext/CodeGraphContext.git ~/.mcp/CodeGraphContext
cd ~/.mcp/CodeGraphContext 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.
Pip ile saniyeler içinde kurun ve kod grafı analizi için güçlü bir CLI'ı açın.
CLI akıllıca tree-sitter düğümlerinizi grafiği oluşturmak için ayrıştırır.
Doğal dili kullanarak MCP aracılığıyla karmaşık çağrı zincirlerini sorgulayın.
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.
.cgc paketleriyle anında yükleyin - indexleme gerekmez! (Daha fazla bilgi)codegraphcontext watch).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.
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) |
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.
CodeGraphContext zaten geliştiriciler ve projeler tarafından şunlar için keşfediliyor:
CodeGraphContext'i projenizde kullanıyorsanız, bir PR açmaktan ve burada eklemekten çekinmeyin! 🚀
neo4j>=5.15.0watchdog>=3.0.0stdlibs>=2023.11.18typer>=0.9.0rich>=13.7.0inquirerpy>=0.3.4python-dotenv>=1.0.0tree-sitter>=0.21.0 (Python 3.13'te kurulmaz)tree-sitter-language-pack>=0.6.0 (Python 3.13'te kurulmaz)pyyamlpathspec>=0.12.1falkordb>=0.1.0falkordblite>=0.1.0 (Sadece Unix)kuzu (KuzuDB motoru)fastapi>=0.100.0uvicorn>=0.22.0requests>=2.28.0protobuf>=3.20,<3.21Not: Python 3.10-3.14 desteklenir.
Araç takımını kurun:
pip install codegraphcontext
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
Veritabanı Kurulumu (Otomatik): CodeGraphContext varsayılan olarak gömülü bir grafik veritabanı kullanır.
codegraphcontext neo4j setup komutunu çalıştırın.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.
CodeGraphContext, kodunuzun etkileyici etkileşimli bilgi grafiklerini oluşturabilir. Statik diyagramların aksine, bunlar premium web tabanlı araştırmacılarıdır:
# 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
AI asistanınızı CodeGraphContext kullanacak şekilde yapılandırın:
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:
Başarılı yapılandırmanın ardından, codegraphcontext mcp setup gerekli yapılandırma dosyalarını oluşturacak ve yerleştirecektir:
mcp.json dosyası oluşturur.~/.codegraphcontext/.env'de güvenli bir şekilde depolar..claude.json veya VS Code'ın settings.json).Başlat: MCP sunucusunu başlat:
codegraphcontext mcp start
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.
.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
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": []
}
}
}
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": []
}
}
}
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:
Yeni bir projeyi indexlemek için:
/path/to/my-project dizinindeki kodu indexleyin."
VEYA~/dev/my-other-project'de kod grafiğine ekle."Canlı değişiklikler için bir dizini izlemeye başlamak 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:
job_id alırsınız.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.
Kodun nerede tanımlandığını bulma:
process_payment fonksiyonu nerede?"User sınıfını bul benim için."İ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:
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:
src/utils.py içinde process_data fonksiyonunun döngüsel karmaşıklığını hesapla."Depo Yönetimi:
/path/to/old-project'de indexlenmiş depoyu sil."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.
Dil sunucularını kullanarak sembolik kod işlemleri gerçekleştiren, tam özellikli bir kodlama ajanı.
Temel okuma, yazma ve komut satırı araçlarıyla donatılmış bir kodlama ajanı.
Erişilebilirlik API'lerini kullanarak masaüstü GUI otomasyonu. Vision modelleri veya ekran görüntüleri olmadan Windows, macOS ve Linux uygulamalarını kontrol edin. İş akışı kaydı, yapılandırılmış veri çıkarma ve tarayıcı DOM incelemesini destekler.
MCP kullanarak çoklu ajan sistemleri oluşturmak için bir framework'tür. Koordine edilmiş AI işbirliğini sağlayan görev yönetimi, paylaşılan context ve RAG yetenekleriyle gelir.
Claude gibi yapay zeka sistemlerinin VS Code çalışma alanındaki dizin yapısını okuymasını, linter ve language server tarafından tespit edilen sorunları görmesini, kod dosyalarını okumasını ve düzenlemeler yapmasını sağlayan bir MCP Server.
Max için bir kodlama aracısı. Max/MSP/Jitter, müzik ve multimedya için görsel bir programlama dilidir.