Metadata-Version: 2.4
Name: mcp-codebase-oracle
Version: 0.1.0
Summary: 🔮 MCP sunucusu — Herhangi bir codebase'i analiz et, mimariyi çıkar, etki analizi yap
Project-URL: Homepage, https://github.com/mcp-codebase-oracle/mcp-codebase-oracle
Project-URL: Repository, https://github.com/mcp-codebase-oracle/mcp-codebase-oracle
Project-URL: Issues, https://github.com/mcp-codebase-oracle/mcp-codebase-oracle/issues
Author: MCP Codebase Oracle Contributors
License: MIT
Keywords: architecture,ast,code-intelligence,codebase-analysis,dependency-graph,impact-analysis,legacy-code,mcp
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=3.11
Requires-Dist: diskcache>=5.6
Requires-Dist: gitpython>=3.1
Requires-Dist: mcp[cli]>=1.2.0
Requires-Dist: networkx>=3.2
Requires-Dist: pathspec>=0.12
Requires-Dist: platformdirs>=4.0
Requires-Dist: rich>=13.0
Provides-Extra: all
Requires-Dist: mypy>=1.10; extra == 'all'
Requires-Dist: pytest-asyncio>=0.24; extra == 'all'
Requires-Dist: pytest-cov>=5.0; extra == 'all'
Requires-Dist: pytest>=8.0; extra == 'all'
Requires-Dist: ruff>=0.5; extra == 'all'
Requires-Dist: tree-sitter-javascript>=0.23; extra == 'all'
Requires-Dist: tree-sitter-python>=0.23; extra == 'all'
Requires-Dist: tree-sitter-typescript>=0.23; extra == 'all'
Requires-Dist: tree-sitter>=0.24; extra == 'all'
Provides-Extra: dev
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.5; extra == 'dev'
Provides-Extra: tree-sitter
Requires-Dist: tree-sitter-javascript>=0.23; extra == 'tree-sitter'
Requires-Dist: tree-sitter-python>=0.23; extra == 'tree-sitter'
Requires-Dist: tree-sitter-typescript>=0.23; extra == 'tree-sitter'
Requires-Dist: tree-sitter>=0.24; extra == 'tree-sitter'
Description-Content-Type: text/markdown

# 🔮 MCP Codebase Oracle

> **"Bu kodu kim yazdı, ne yapıyor anlamıyorum" sorusunu tarihe gömüyoruz.**

MCP Codebase Oracle, herhangi bir yazılım projesini analiz eden, mimari yapıyı çıkaran ve kod değişikliklerinin etkisini önceden gösteren bir **Model Context Protocol (MCP)** sunucusudur.

## ✨ Özellikler

| Özellik | Açıklama |
|---------|----------|
| 🏗️ **Mimari Tespit** | MVC, Layered, Hexagonal, Clean Architecture ve diğer pattern'leri otomatik tespit |
| 🕸️ **Bağımlılık Grafı** | Modüller, sınıflar ve fonksiyonlar arası ilişki haritası |
| 💥 **Etki Analizi** | "Bu kodu değiştirirsem ne bozulur?" sorusuna kesin cevap |
| 📊 **Karmaşıklık Metrikleri** | Cyclomatic, cognitive complexity ve maintainability index |
| 🔍 **Sembol Arama** | Fonksiyon, sınıf, değişken arama ve detay görüntüleme |
| 📖 **Kod Açıklama** | Dosya ve fonksiyon bazlı insan tarafından anlaşılır açıklamalar |
| 🎯 **Dead Code Tespiti** | Kullanılmayan kod parçalarını bulma |
| 🌊 **Görselleştirme** | Mermaid diyagramları ile grafik çıktılar |

## 🚀 Kurulum

### uv ile (önerilen)

```bash
# Projeyi klonla
git clone https://github.com/mcp-codebase-oracle/mcp-codebase-oracle.git
cd mcp-codebase-oracle

# Bağımlılıkları kur
uv sync

# Çalıştır
uv run mcp-codebase-oracle
```

### pip ile

```bash
pip install mcp-codebase-oracle
```

### Docker ile

```bash
docker build -t mcp-codebase-oracle .
docker run -v /path/to/project:/project:ro mcp-codebase-oracle
```

## ⚡ MCP İstemci Konfigürasyonu

### Claude Desktop

`claude_desktop_config.json` dosyasına ekle:

```json
{
  "mcpServers": {
    "codebase-oracle": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/mcp-codebase-oracle",
        "run", "mcp-codebase-oracle"
      ]
    }
  }
}
```

### VS Code (Copilot / Continue)

```json
{
  "mcp.servers": {
    "codebase-oracle": {
      "command": "mcp-codebase-oracle",
      "args": []
    }
  }
}
```

## 🔧 Kullanılabilir Tool'lar

### Tarama & İndeksleme
- `scan_project` — Proje tarama ve indeksleme
- `rescan_project` — Incremental güncelleme
- `get_project_summary` — Proje özeti

### Sorgulama
- `find_symbol` — Fonksiyon/sınıf/değişken arama
- `get_symbol_detail` — Sembol detayları
- `search_code` — Kod içi arama
- `get_file_overview` — Dosya yapı özeti

### Graf Analizi
- `get_dependency_graph` — Bağımlılık grafı
- `get_call_graph` — Fonksiyon çağrı grafı
- `get_class_hierarchy` — Sınıf hiyerarşisi
- `find_circular_dependencies` — Döngüsel bağımlılık tespiti

### Etki Analizi
- `analyze_impact` — Değişiklik etki analizi
- `what_if_delete` — Silme senaryosu
- `what_if_rename` — Yeniden adlandırma senaryosu
- `find_dead_code` — Kullanılmayan kod tespiti

### Mimari
- `detect_architecture` — Mimari pattern tespiti
- `get_module_coupling` — Modül bağlılık metrikleri
- `detect_code_smells` — Kod kokusu tespiti

### Açıklama & Görselleştirme
- `explain_file` — Dosya açıklama
- `explain_function` — Fonksiyon açıklama
- `generate_onboarding_guide` — Onboarding rehberi
- `generate_architecture_diagram` — Mimari diyagram
- `generate_dependency_matrix` — Bağımlılık matrisi
- `generate_hotspot_map` — Hotspot haritası

## 🗣️ Desteklenen Diller

| Dil | Parser | Durum |
|-----|--------|-------|
| Python | `ast` (native) | ✅ Tam destek |
| JavaScript/TypeScript | tree-sitter | 🔜 Yakında |
| Java | tree-sitter | 🔜 Yakında |
| Go | tree-sitter | 🔜 Yakında |
| Rust | tree-sitter | 🔜 Yakında |
| C# | tree-sitter | 🔜 Yakında |
| Diğerleri | regex (generic) | ⚡ Temel destek |

## 🛠️ Geliştirme

```bash
# Dev bağımlılıklarını kur
uv sync --extra dev

# Testleri çalıştır
uv run pytest -v

# Linting
uv run ruff check src/ tests/

# Type checking
uv run mypy src/

# MCP Inspector ile test
uv run mcp dev src/mcp_codebase_oracle/server.py
```

## 📄 Lisans

MIT License — Detaylar için [LICENSE](LICENSE) dosyasına bakın.
