Narsil MCP
resmiRust 🦀 ile yazılmış, sinir motoru, güvenlik profili oluşturma ve isteğe bağlı grafik ön yüzüne sahip, son derece hızlı 🔥 en iyi sınıf MCP sunucusu
Narsil MCP ile neler yapabilirsiniz?
-
Kod tabanlarını keşfedin — Asistanınızdan bilinmeyen projeleri haritalamasını, semboller bulmasını ve 32 dilde referansları izlemesini
find_symbolsvefind_referencesile isteyin. -
Güvenlik açıklarını analiz edin — Taint analizi, OWASP Top 10 taramaları veya CWE kontrolleri talep ederek enjeksiyon noktalarını belirleyin ve
scan_securityilesuggest_fixüzerinden düzeltme önerileri alın. -
Fonksiyon ilişkilerini izleyin — Çağrı grafiklerini görselleştirin, çağıranları/çağrılanları bulun veya fonksiyonlar arasındaki yolları tespit ederek
get_call_graphvefind_call_pathile yürütme akışını anlayın. -
Tedarik zinciri risklerini denetleyin — SBOM'lar oluşturun, bağımlılıkları OSV'ye karşı kontrol edin ve
generate_sbom,check_dependenciesilecheck_licenseskullanarak lisans uyumluluğunu doğrulayın. -
Kod kalitesi sorunlarını tespit edin — Python, JavaScript ve TypeScript'te ölü kodu, başlatılmamış değişkenleri veya tür uyumsuzluklarını
find_dead_codevecheck_type_errorsile belirleyin.
Dokümantasyon
narsil-mcp
Işık hızında çalışan, gizlilik öncelikli derin kod zekâsı için MCP sunucusu
Rust ile geliştirilmiş, yapay zekâ asistanlarına 90 özel araç aracılığıyla derin kod anlayışı sağlayan bir MCP (Model Context Protocol) sunucusu.
Neden narsil-mcp?
| Özellik | narsil-mcp | XRAY | Serena | GitHub MCP |
|---|---|---|---|---|
| Diller | 32 | 4 | 30+ (LSP) | N/A |
| Sinirsel Arama | Evet | Hayır | Hayır | Hayır |
| Taint Analizi | Evet | Hayır | Hayır | Hayır |
| SBOM/Lisanslar | Evet | Hayır | Hayır | Kısmi |
| Çevrimdışı/Yerel | Evet | Evet | Evet | Hayır |
| WASM/Tarayıcı | Evet | Hayır | Hayır | Hayır |
| Çağrı Grafikleri | Evet | Kısmi | Hayır | Hayır |
| Tip Çıkarımı | Evet | Hayır | Hayır | Hayır |
Temel Özellikler
- Kod Zekâsı - Sembol çıkarımı, anlamsal arama, çağrı grafiği analizi
- Sinirsel Anlamsal Arama - Gömme vektörleri kullanarak benzer kod bulma (Voyage AI, OpenAI)
- Güvenlik Analizi - Taint analizi, güvenlik açığı taraması, OWASP/CWE kapsamı
- Tedarik Zinciri Güvenliği - SBOM oluşturma, bağımlılık denetimi, lisans uyumluluğu
- Gelişmiş Analiz - Kontrol akış grafikleri, veri akışı analizi, ölü kod tespiti
Neden narsil-mcp'yi Seçmelisiniz?
- Rust ile Yazılmış - Işık hızında, bellek açısından güvenli, tek ikili dosya (~30MB)
- Tree-sitter destekli - 32 dil için doğru, artımlı ayrıştırma
- Sıfır yapılandırma - Depoları işaret edin ve başlayın
- MCP uyumlu - Claude, Cursor, VS Code Copilot, Zed ve herhangi bir MCP istemcisiyle çalışır
- Gizlilik öncelikli - Tamamen yerel, verileriniz makinenizden çıkmaz
- Paralel dizinleme - Rayon ile tüm çekirdekleri kullanır
- Akıllı alıntılar - Tam sözdizimsel kapsamlara genişler
- Güvenlik öncelikli - Yerleşik güvenlik açığı tespiti ve taint analizi
- Sinirsel gömme vektörleri - Voyage AI veya OpenAI ile isteğe bağlı anlamsal arama
- WASM desteği - WebAssembly derlemesi ile tarayıcıda çalıştırın
- Gerçek zamanlı akış - Büyük depolar için dizinleme ilerledikçe sonuçlar
Desteklenen Diller
| Dil | Uzantılar | Çıkarılan Semboller |
|---|---|---|
| Rust | .rs | fonksiyonlar, struct'lar, enum'lar, trait'ler, impl'ler, mod'lar |
| Python | .py, .pyi | fonksiyonlar, sınıflar |
| JavaScript | .js, .jsx, .mjs | fonksiyonlar, sınıflar, metotlar, değişkenler |
| TypeScript | .ts, .tsx | fonksiyonlar, sınıflar, arayüzler, tipler, enum'lar |
| Go | .go | fonksiyonlar, metotlar, tipler |
| C | .c, .h | fonksiyonlar, struct'lar, enum'lar, typedef'ler |
| C++ | .cpp, .cc, .hpp | fonksiyonlar, sınıflar, struct'lar, ad alanları |
| Java | .java | metotlar, sınıflar, arayüzler, enum'lar |
| C# | .cs | metotlar, sınıflar, arayüzler, struct'lar, enum'lar, delegate'ler, ad alanları |
| Bash | .sh, .bash, .zsh | fonksiyonlar, değişkenler |
| Ruby | .rb, .rake, .gemspec | metotlar, sınıflar, modüller |
| Kotlin | .kt, .kts | fonksiyonlar, sınıflar, nesneler, arayüzler |
| PHP | .php, .phtml | fonksiyonlar, metotlar, sınıflar, arayüzler, trait'ler |
| Swift | .swift | sınıflar, struct'lar, enum'lar, protokoller, fonksiyonlar |
| Verilog/SystemVerilog | .v, .vh, .sv, .svh | modüller, görevler, fonksiyonlar, arayüzler, sınıflar |
| Scala | .scala, .sc | sınıflar, nesneler, trait'ler, fonksiyonlar, val'ler |
| Lua | .lua | fonksiyonlar, metotlar |
| Haskell | .hs, .lhs | fonksiyonlar, veri tipleri, tip sınıfları |
| Elixir | .ex, .exs | modüller, fonksiyonlar |
| Clojure | .clj, .cljs, .cljc, .edn | listeler (temel AST) |
| Dart | .dart | fonksiyonlar, sınıflar, metotlar |
| Julia | .jl | fonksiyonlar, modüller, struct'lar |
| R | .R, .r, .Rmd | fonksiyonlar |
| Perl | .pl, .pm, .t | fonksiyonlar, paketler |
| Zig | .zig | fonksiyonlar, değişkenler |
| Erlang | .erl, .hrl | fonksiyonlar, modüller, kayıtlar |
| Elm | .elm | fonksiyonlar, tipler |
| Fortran | .f90, .f95, .f03, .f08, .f, .for, .fpp | programlar, alt programlar, fonksiyonlar, modüller |
| PowerShell | .ps1, .psm1, .psd1 | fonksiyonlar, sınıflar, enum'lar |
| Nix | .nix | bağlamalar |
| Groovy | .groovy, .gradle | metotlar, sınıflar, arayüzler, enum'lar, fonksiyonlar |
Kurulum
Paket Yöneticileriyle (Önerilen)
macOS / Linux (Homebrew):
brew tap postrv/narsil
brew install narsil-mcp
Windows (Scoop):
scoop bucket add narsil https://github.com/postrv/scoop-narsil
scoop install narsil-mcp
Rust/Cargo (tüm platformlar):
cargo install narsil-mcp
Node.js/npm (tüm platformlar):
npm install -g narsil-mcp
# or
yarn global add narsil-mcp
# or
pnpm add -g narsil-mcp
Nix:
# Run directly without installing
nix run github:postrv/narsil-mcp -- --repos ./my-project
# Install to profile
nix profile install github:postrv/narsil-mcp
# With web visualization frontend
nix profile install github:postrv/narsil-mcp#with-frontend
# Development shell
nix develop github:postrv/narsil-mcp
Tek Tıkla Kurulum Betiği
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/postrv/narsil-mcp/main/install.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/postrv/narsil-mcp/main/install.ps1 | iex
Windows (Git Bash / MSYS2):
curl -fsSL https://raw.githubusercontent.com/postrv/narsil-mcp/main/install.sh | bash
Windows kullanıcıları için not: PowerShell yükleyicisi daha iyi hata mesajları ve yerel Windows entegrasyonu sağlar. PATH'inizi otomatik olarak yapılandırır ve kaynak koddan derlerken gerekli derleme araçlarını kontrol eder.
Kaynak Koddan
Ön koşullar:
- Güncel kararlı Rust (bu sürüm Rust 1.98 ve 1.99 ile doğrulanmıştır)
- Windows'ta: "C++ ile masaüstü geliştirme" içeren Visual Studio Build Tools
# Clone and build
git clone git@github.com:postrv/narsil-mcp.git
cd narsil-mcp
cargo build --release
# Binary will be at:
# - macOS/Linux: target/release/narsil-mcp
# - Windows: target/release/narsil-mcp.exe
Özellik Derlemeleri
narsil-mcp farklı kullanım senaryoları için farklı özellik setlerini destekler:
# Default build - native MCP server (~30MB)
cargo build --release
# With RDF knowledge graph and CCG tools (~35MB) - SPARQL queries, Code Context Graph
cargo build --release --features graph
# With neural vector search (~32MB) - adds TF-IDF similarity
cargo build --release --features neural
# With ONNX model support (~50MB) - adds local neural embeddings
cargo build --release --features neural-onnx
# With embedded visualization frontend (~31MB)
cargo build --release --features frontend
# Full-featured build with graph + frontend (~40MB)
cargo build --release --features graph,frontend
# Experimental browser/WASM source build (not release-qualified)
cargo build --release --target wasm32-unknown-unknown --no-default-features --features wasm
| Özellik | Açıklama | Boyut |
|---|---|---|
native (varsayılan) | Tüm araçlarla tam MCP sunucusu | ~30MB |
graph | + RDF bilgi grafiği, SPARQL, CCG araçları | ~35MB |
frontend | + Gömülü görselleştirme web arayüzü | ~31MB |
neural | + TF-IDF vektör araması, API gömme vektörleri | ~32MB |
neural-onnx | + Yerel ONNX model çıkarımı | ~50MB |
wasm | Deneysel tarayıcı kaynak derlemesi (dosya sistemi, git yok) | Sürüm için uygun değil |
Önemli:
--graphCLI bayrağı, ikili dosyanın--features graphile derlenmesini gerektirir. Bu özellik olmadan derlenmiş bir ikili dosyaya--graphiletirseniz, bir uyarı görürsünüz ve SPARQL/CCG araçları kullanılamaz. Aşağıdaki Sorun Giderme bölümüne bakın.
Ayrıntılı kurulum talimatları, sorun giderme ve platforma özel kılavuzlar için docs/INSTALL.md dosyasına bakın.
Kullanım
Temel Kullanım
macOS / Linux:
# Index a single repository
narsil-mcp --repos /path/to/your/project
# Index multiple repositories
narsil-mcp --repos ~/projects/project1 --repos ~/projects/project2
# Enable verbose logging
narsil-mcp --repos /path/to/project --verbose
# Force re-index on startup
narsil-mcp --repos /path/to/project --reindex
Windows (PowerShell / CMD):
# Index a single repository
narsil-mcp --repos C:\Users\YourName\Projects\my-project
# Index multiple repositories
narsil-mcp --repos C:\Projects\project1 --repos C:\Projects\project2
# Enable verbose logging
narsil-mcp --repos C:\Projects\my-project --verbose
# Force re-index on startup
narsil-mcp --repos C:\Projects\my-project --reindex
Tam Özellik Seti
narsil-mcp \
--repos ~/projects/my-app \
--git \ # Enable git blame, history, contributors
--call-graph \ # Enable function call analysis
--persist \ # Save index to disk for fast startup
--watch \ # Auto-reindex on file changes
--lsp \ # Enable LSP for hover, go-to-definition
--streaming \ # Stream large result sets
--remote \ # Enable GitHub remote repo support
--neural \ # Enable neural semantic embeddings
--neural-backend api \ # Backend: "api" (Voyage/OpenAI) or "onnx"
--neural-model voyage-code-2 \ # Model to use
--neural-dimension 3072 \ # Override embedding dimensions (auto-detected per model)
--graph # Enable SPARQL/RDF knowledge graph and CCG tools (requires --features graph build)
--graphhakkında not: Bu bayrak SPARQL sorgularını ve Kod Bağlam Grafiği (CCG) araçlarını etkinleştirir, ancak yalnızca ikili dosya--features graphile derlenmişse. Varsayılan ikili dosya bu özelliği içermez. SPARQL/CCG yeteneklerine ihtiyacınız varsa, kaynak koddan şu şekilde derleyin:cargo build --release --features graphÖzellik olmadan bir ikili dosyaya
--graphiletirseniz, başlangıçta bir uyarı görürsünüz ve sunucu SPARQL/CCG araçları olmadan devam eder.
Not: Sinirsel gömme vektörleri bir API anahtarı (veya özel uç nokta) gerektirir. Bunu kurmanın en kolay yolu etkileşimli sihirbazdır:
# Run the neural API key setup wizard
narsil-mcp config init --neural
Sihirbaz şunları yapacaktır:
- Düzenleyicinizi algılar (Claude Desktop, Claude Code, Zed, VS Code, JetBrains)
- API sağlayıcınızı sorar (Voyage AI, OpenAI veya özel)
- API anahtarınızı doğrular
- Otomatik olarak düzenleyicinizin MCP yapılandırmasına ekler
Alternatif olarak, şu ortam değişkenlerinden birini manuel olarak ayarlayabilirsiniz:
EMBEDDING_API_KEY- Herhangi bir sağlayıcı için genel API anahtarıVOYAGE_API_KEY- Voyage AI'ya özel API anahtarıOPENAI_API_KEY- OpenAI'a özel API anahtarıEMBEDDING_SERVER_ENDPOINT- Özel gömme vektörü API uç nokta URL'si (isteğe bağlı, kendi kendine barındırılan modelleri kullanmaya olanak tanır)
Yapılandırma
v1.1.0+ araçlar ve performans üzerinde ince ayar kontrolü için isteğe bağlı yapılandırma sunar. Mevcut tüm kullanımlar çalışmaya devam eder - yapılandırma tamamen isteğe bağlıdır!
Hızlı Başlangıç
# Generate default config interactively
narsil-mcp config init
# List available tools
narsil-mcp tools list
# Apply a preset via CLI
narsil-mcp --repos ~/project --preset minimal
Otomatik Düzenleyici Algılama
narsil-mcp düzenleyicinizi algılar ve otomatik olarak en uygun ön ayarı uygular:
| Düzenleyici | Ön Ayar | Araçlar | Bağlam Tokenları | Neden |
|---|---|---|---|---|
| Zed | Minimal | 26 | ~4.686 | Hızlı başlangıç, minimal bağlam |
| VS Code | Dengeli | 51 | ~8.948 | İyi özellik dengesi |
| Claude Desktop | Tam | 90 | ~12.001 | Maksimum yetenekler |
Token Tasarrufu:
- Minimal ön ayar: Tam'a kıyasla %61 daha az token
- Dengeli ön ayar: Tam'a kıyasla %25 daha az token
Ön Ayarlar
Kullanım durumunuza göre bir ön ayar seçin:
# Minimal - Fast, lightweight (Zed, Cursor)
narsil-mcp --repos ~/project --preset minimal
# Balanced - Good defaults (VS Code, IntelliJ)
narsil-mcp --repos ~/project --preset balanced --git --call-graph
# Full - All features (Claude Desktop, comprehensive analysis)
narsil-mcp --repos ~/project --preset full --git --call-graph
# Security-focused - Security and supply chain tools
narsil-mcp --repos ~/project --preset security-focused
Yapılandırma Dosyaları
Kullanıcı yapılandırması (~/.config/narsil-mcp/config.yaml):
version: "1.0"
preset: "balanced"
tools:
# Disable slow tools
overrides:
neural_search:
enabled: false
reason: "Too slow for interactive use"
performance:
max_tool_count: 50 # Limit total tools
Proje yapılandırması (depo kökünde .narsil.yaml):
version: "1.0"
preset: "security-focused" # Override user preset
tools:
categories:
Security:
enabled: true
SupplyChain:
enabled: true
Adlandırılmış depo profilleri çoklu depo çalışma alanları için kullanışlıdır:
version: "1.0"
profiles:
platform:
repos:
- ~/src/api
- ~/src/web
git: true
call_graph: true
persist: true
preset: balanced
narsil-mcp --profile platform
narsil-mcp config profiles
Öncelik: CLI bayrakları > Ortam değişkenleri > Proje yapılandırması > Kullanıcı yapılandırması > Varsayılanlar
Ortam Değişkenleri
# Select repos/profile
export NARSIL_REPOS=~/src/api,~/src/web
export NARSIL_PROFILE=platform
# Apply preset
export NARSIL_PRESET=minimal
# Enable specific categories
export NARSIL_ENABLED_CATEGORIES=Repository,Symbols,Search
# Disable specific tools
export NARSIL_DISABLED_TOOLS=neural_search,generate_sbom
CLI Komutları
# View effective config
narsil-mcp config show
# Validate config file
narsil-mcp config validate ~/.config/narsil-mcp/config.yaml
# List tools by category
narsil-mcp tools list --category Search
# Search for tools
narsil-mcp tools search "git"
# Export config
narsil-mcp config export > my-config.yaml
# List named repository profiles
narsil-mcp config profiles
Daha Fazla Bilgi:
- Yapılandırma Kılavuzu - Tam yapılandırma referansı
- Kurulum Kılavuzu - Platforma özel kurulum
Görselleştirme Ön Ucu
Çağrı grafiklerini, içe aktarımları, sembol referanslarını ve kontrol akışını tarayıcınızda etkileşimli olarak keşfedin.
# Build with embedded frontend
cargo build --release --features frontend
# Run with HTTP server
narsil-mcp --repos ~/project --http --call-graph
# Open http://localhost:3000
Beş grafik görünümü:
| Görünüm | Açıklama |
|---|---|
| Çağrı Grafiği | Derinlik kontrolü ve yön filtreleme ile fonksiyon çağrı ilişkileri |
| İçe Aktarım Grafiği | Kod tabanı genelinde dosya düzeyinde içe aktarım bağımlılıkları |
| Sembol Grafiği | Bir sembole yapılan tüm referanslar, dosya kümeleme ile |
| Hibrit | Bölünmüş bütçe ile birleşik çağrı + içe aktarım grafiği |
| Kontrol Akışı | Temel bloklar, dallar ve döngü geri kenarları ile gerçek CFG |
Özellikler:
- Sürükleme, yakınlaştırma ve çift tıklama ile detaylandırma destekli etkileşimli Cytoscape.js grafikleri
- Renk kodlamalı karmaşıklık metrikleri katmanı (yeşil/sarı/turuncu/kırmızı)
- Taint kaynaklarını ve havuzlarını vurgulayan güvenlik açığı katmanı
- Altı yerleşim algoritması (dagre, kuvvet yönlendirmeli, genişlik öncelikli, eşmerkezli, daire, ızgara)
- Sözdizimi vurgulamalı kod görüntüleyici ile dosya ağacı kenar çubuğu
- URL tabanlı durum (paylaşılabilir bağlantılar, tarayıcı geri/ileri)
- Karanlık mod desteği
- Kod alıntıları ve kaynağa gezinme ile düğüm detay paneli
Tam dokümantasyon: Kurulum, API uç noktaları ve geliştirme modu için docs/frontend.md dosyasına bakın.
Sinirsel Anlamsal Arama
Sinirsel gömme vektörlerini kullanarak benzer kod bulun - değişken adları ve yapı farklı olsa bile.
# Quick setup with wizard
narsil-mcp config init --neural
# Or manually with Voyage AI
export VOYAGE_API_KEY="your-key"
narsil-mcp --repos ~/project --neural --neural-model voyage-code-2
Voyage AI, OpenAI, özel uç noktalar ve yerel ONNX modellerini destekler.
Tam dokümantasyon: Kurulum, arka uçlar ve kullanım senaryoları için docs/neural-search.md dosyasına bakın.
Tip Çıkarımı
Python, JavaScript ve TypeScript için yerleşik tip çıkarımı - mypy veya tsc gerektirmez.
| Araç | Açıklama |
|---|---|
infer_types | Bir fonksiyondaki tüm değişkenler için çıkarılan tipleri alın |
check_type_errors | Potansiyel tip uyumsuzluklarını bulun |
get_typed_taint_flow | Tip bilgisiyle geliştirilmiş güvenlik analizi |
def process(data):
result = data.split(",") # result: list[str]
count = len(result) # count: int
return count * 2 # returns: int
Forgemax Entegrasyonu (Deneysel)
Büyük ölçekli ajan iş akışları için narsil-mcp, 90 aracın tamamını yalnızca 2'ye (search + execute) indiren bir Code Mode MCP ağ geçidi olan Forgemax aracılığıyla kullanılabilir; bu, araç şeması yükünü ~12.000 token'dan ~1.000'e düşürür.
# Install Forgemax
cargo install forgemax
# Run narsil-mcp through Forgemax (uses forge.toml in repo root)
forgemax
Dahil edilen forge.toml, narsil-mcp'yi makul varsayılanlarla yapılandırır:
[servers.narsil]
command = "narsil-mcp"
args = ["--repos", ".", "--git", "--call-graph", "--persist", "--watch"]
transport = "stdio"
[sandbox]
timeout_secs = 10
max_heap_mb = 64
max_concurrent = 8
LLM, sanal alan içindeki bir V8 izolatında tipik proxy nesneleri aracılığıyla JavaScript çağrıları yazar — kimlik bilgileri, dosya yolları ve dahili durum ana bilgisayardan asla ayrılmaz. Bu yaklaşım, birden fazla MCP sunucusuyla aynı anda çalışırken özellikle kullanışlıdır, çünkü toplam araç bağlamını küçük ve öngörülebilir tutar.
MCP Yapılandırması
Yapılandırma dosyası oluşturarak narsil-mcp'yi yapay zeka asistanınıza ekleyin. Önerilen kurulumlar şunlardır:
Claude Code (proje kökünde .mcp.json - Önerilen):
Proje bazlı yapılandırma için proje dizininizde .mcp.json oluşturun:
{
"mcpServers": {
"narsil-mcp": {
"command": "narsil-mcp",
"args": ["--repos", ".", "--git", "--call-graph"]
}
}
}
Ardından projenizde Claude Code'u başlatın:
cd /path/to/project
claude
--repos için . kullanmak, geçerli dizini otomatik olarak dizinler. Claude artık 90 kod zekası aracına erişebilir.
İpucu: Sonraki çalıştırmalarda daha hızlı başlangıç için
--persist --index-path .claude/cacheekleyin.
Global yapılandırma için bunun yerine ~/.claude/settings.json dosyasını düzenleyin. Gelişmiş kurulumlar için Claude Code Entegrasyonu bölümüne bakın.
Cursor (.cursor/mcp.json):
{
"mcpServers": {
"narsil-mcp": {
"command": "narsil-mcp",
"args": ["--repos", ".", "--git", "--call-graph"]
}
}
}
VS Code + GitHub Copilot (.vscode/mcp.json):
{
"servers": {
"narsil-mcp": {
"command": "narsil-mcp",
"args": ["--repos", ".", "--git", "--call-graph"]
}
}
}
Copilot Enterprise Notu: MCP desteği VS Code 1.102+ gerektirir ve kuruluş yöneticiniz tarafından etkinleştirilmelidir.
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"narsil-mcp": {
"command": "narsil-mcp",
"args": ["--repos", "/path/to/your/projects", "--git"]
}
}
}
Zed (settings.json → Context Servers):
{
"context_servers": {
"narsil-mcp": {
"command": "narsil-mcp",
"args": ["--repos", ".", "--git"]
}
}
}
Zed Notu: narsil-mcp hemen başlar ve arka planda dizinler, başlatma zaman aşımlarını önler.
Claude Code Eklentisi
Claude Code kullanıcıları için, etkili araç kullanımı için eğik çizgi komutları ve bir beceri içeren bir eklenti sağlıyoruz.
Marketplace'ten Kurulum (Önerilen):
# Add the narsil-mcp marketplace
/plugin marketplace add postrv/narsil-mcp
# Install the plugin
/plugin install narsil@narsil-mcp
Veya doğrudan GitHub'dan kurun:
/plugin install github:postrv/narsil-mcp/narsil-plugin
İçerilenler:
| Bileşen | Açıklama |
|---|---|
/narsil:security-scan | Kapsamlı güvenlik denetimleri çalıştırın |
/narsil:explore | Yabancı kod tabanlarını keşfedin |
/narsil:analyze-function | Belirli işlevler üzerinde derinlemesine inceleme |
/narsil:find-feature | Özelliklerin nerede uygulandığını bulun |
/narsil:supply-chain | Tedarik zinciri güvenliğini analiz edin |
| Beceri | Claude'a 90 aracı etkili şekilde kullanma konusunda rehberlik eder |
| MCP Yapılandırması | narsil-mcp'yi makul varsayılanlarla otomatik başlatır |
Tam belgeler için narsil-plugin/README.md dosyasına bakın.
Ralph Otomasyon Entegrasyonu
Ralph, otonom kod geliştirme için bir Claude Code otomasyon paketidir. narsil-mcp kullanılabilir olduğunda, Ralph gelişmiş kod zekası yetenekleri kazanır:
| Özellik | narsil-mcp olmadan | narsil-mcp ile |
|---|---|---|
| Güvenlik taraması | Temel (clippy) | OWASP/CWE güvenlik açığı tespiti |
| Kod anlama | Dosya tabanlı | Çağrı grafikleri, sembol referansları |
| Mimari analiz | Manuel | CCG L0/L1/L2 otomatik katmanları |
| Bağımlılık analizi | cargo tree | İçe aktarma grafikleri, döngü tespiti |
Kurulum:
# Install narsil-mcp (Ralph auto-detects it)
cargo install narsil-mcp
# Ralph's quality gates use these tools:
narsil-mcp scan_security --repo <name>
narsil-mcp check_type_errors --repo <name> --path src
narsil-mcp find_injection_vulnerabilities --repo <name>
Ralph, narsil-mcp kullanılamadığında zarif bir şekilde devre dışı kalır - tüm temel otomasyon özellikleri onsuz çalışır.
Belgeler: Tam entegrasyon ayrıntıları için Ralph README dosyasına bakın.
Playbook'lar ve Eğiticiler
Pratik kullanım kılavuzları için docs/playbooks bölümüne bakın:
| Kılavuz | Açıklama |
|---|---|
| Başlarken | Hızlı kurulum ve ilk araç çağrıları |
| Kod Tabanını Anlama | Yabancı projeleri keşfedin |
| Hata Düzeltme | Çağrı grafikleri ve taint analizi ile hata ayıklama |
| Güvenlik Denetimi | OWASP/CWE taraması ile güvenlik açıklarını bulun |
| Kod İncelemesi | Değişiklikleri etkili şekilde inceleyin |
Her playbook, Claude'un sorularınızı yanıtlamak için kullandığı tam araç zincirlerini gösterir.
WebAssembly (Tarayıcı) Kullanımı
Depo, deneysel WebAssembly kaynağı ve yerel bir derleme betiği içerir.
@narsil-mcp/wasm npm'de yayınlanmaz ve 1.7.1 CLI sürümü için bir dağıtım kanalı değildir.
WASM derlemesi ve örnekler, sürüm kalifikasyonu kapsamında değildir. Deneysel kaynak iş akışı için docs/wasm.md dosyasına bakın.
Kullanılabilir Araçlar (93)
Depo ve Dosya Yönetimi
| Araç | Açıklama |
|---|---|
list_repos | Meta verilerle tüm dizinlenmiş depoları listele |
get_project_structure | Dosya simgeleri ve boyutlarıyla dizin ağacını al |
get_file | İsteğe bağlı satır aralığıyla dosya içeriğini al |
get_excerpt | Bağlamla belirli satırların etrafındaki kodu çıkar |
reindex | Depoların yeniden dizinlenmesini tetikle |
discover_repos | Bir dizindeki depoları otomatik keşfet |
validate_repo | Yolun geçerli bir depo olup olmadığını kontrol et |
get_index_status | Dizin istatistiklerini ve etkin özellikleri göster |
Sembol Arama ve Gezinme
| Araç | Açıklama |
|---|---|
find_symbols | Tür/desene göre struct, sınıf, işlev bul |
get_symbol_definition | Çevreleyen bağlamla sembol kaynağını al |
find_references | Bir sembole tüm referansları bul |
get_dependencies | İçe aktarmaları ve bağımlıları analiz et |
workspace_symbol_search | Çalışma alanı genelinde bulanık sembol araması |
find_symbol_usages | İçe aktarmalarla dosyalar arası sembol kullanımı |
get_export_map | Bir dosyadan/modülden dışa aktarılan sembolleri al |
Kod Arama
| Araç | Açıklama |
|---|---|
search_code | Alaka düzeyi sıralamasıyla anahtar kelime araması |
semantic_search | BM25 sıralamalı anlamsal arama |
hybrid_search | Sıra birleştirmeli birleşik BM25 + TF-IDF |
search_chunks | AST duyarlı kod parçaları üzerinde arama |
find_similar_code | Bir parçaya benzer kod bul (TF-IDF) |
find_similar_to_symbol | Bir sembole benzer kod bul |
AST Duyarlı Parçalama
| Araç | Açıklama |
|---|---|
get_chunks | Bir dosya için AST duyarlı parçaları al |
get_chunk_stats | Kod parçaları hakkında istatistikler |
get_embedding_stats | Gömme dizin istatistikleri |
Sinirsel Anlamsal Arama (--neural gerektirir)
| Araç | Açıklama |
|---|---|
neural_search | Sinirsel gömmeler kullanarak anlamsal arama (farklı adlarla bile benzer kodu bulur) |
find_semantic_clones | Bir işlevin Tip-3/4 anlamsal klonlarını bul |
get_neural_stats | Sinirsel gömme dizin istatistikleri |
Çağrı Grafiği Analizi (--call-graph gerektirir)
| Araç | Açıklama |
|---|---|
get_call_graph | Depo/işlev için çağrı grafiğini al |
get_callers | Bir işlevi çağıran işlevleri bul |
get_callees | Bir işlev tarafından çağrılan işlevleri bul |
find_call_path | İki işlev arasındaki yolu bul |
get_complexity | Döngüsel/bilişsel karmaşıklığı al |
get_function_hotspots | Yüksek bağlantılı işlevleri bul |
Kontrol Akışı Analizi
| Araç | Açıklama |
|---|---|
get_control_flow | Temel blokları ve dalları gösteren CFG'yi al |
find_dead_code | Erişilemeyen kod bloklarını bul |
Veri Akışı Analizi
| Araç | Açıklama |
|---|---|
get_data_flow | Değişken tanımları ve kullanımları |
get_reaching_definitions | Hangi atamaların her noktaya ulaştığı |
find_uninitialized | Başlatmadan önce kullanılan değişkenler |
find_dead_stores | Asla okunmayan atamalar |
Tip Çıkarımı (Python/JavaScript/TypeScript)
| Araç | Açıklama |
|---|---|
infer_types | Harici tip denetleyiciler olmadan bir işlevdeki değişkenler için tipleri çıkar |
check_type_errors | mypy/tsc çalıştırmadan olası tip hatalarını bul |
get_typed_taint_flow | Veri akışını tip çıkarımıyla birleştiren gelişmiş taint analizi |
İçe Aktarma/Bağımlılık Grafiği
| Araç | Açıklama |
|---|---|
get_import_graph | İçe aktarma grafiğini oluştur ve analiz et |
find_circular_imports | Döngüsel bağımlılıkları tespit et |
get_incremental_status | Merkle ağacı ve değişiklik istatistikleri |
Güvenlik Analizi - Taint İzleme
| Araç | Açıklama |
|---|---|
find_injection_vulnerabilities | SQL enjeksiyonu, XSS, komut enjeksiyonu, yol geçişi bul |
trace_taint | Bir kaynaktan tainted veri akışını izle |
get_taint_sources | Taint kaynaklarını listele (kullanıcı girişi, dosyalar, ağ) |
get_security_summary | Kapsamlı güvenlik riski değerlendirmesi |
Güvenlik Analizi - Kurallar Motoru
| Araç | Açıklama |
|---|---|
scan_security | Güvenlik kurallarıyla tara (OWASP, CWE, kripto, sırlar) |
check_owasp_top10 | OWASP Top 10 2021 güvenlik açıklarını tara |
check_cwe_top25 | CWE Top 25 zayıflıklarını tara |
explain_vulnerability | Ayrıntılı güvenlik açığı açıklaması al |
suggest_fix | Bulgular için düzeltme önerileri al |
Tedarik Zinciri Güvenliği
| Araç | Açıklama |
|---|---|
generate_sbom | SBOM oluştur (CycloneDX/SPDX/JSON) |
check_dependencies | Bilinen güvenlik açıklarını kontrol et (OSV veritabanı) |
check_licenses | Uyumluluk sorunları için lisansları analiz et |
find_upgrade_path | Güvenlik açığı olan bağımlılıklar için güvenli yükseltme yolları bul |
Git Entegrasyonu (--git gerektirir)
| Araç | Açıklama |
|---|---|
get_blame | Dosya için Git blame |
get_file_history | Dosya için commit geçmişi |
get_recent_changes | Depodaki son commit'ler |
get_hotspots | Yüksek değişim ve karmaşıklığa sahip dosyalar |
get_contributors | Depo/dosya katkıda bulunanlar |
get_commit_diff | Belirli commit için diff |
get_symbol_history | Bir sembolü değiştiren commit'ler |
get_branch_info | Geçerli dal ve durum |
get_modified_files | Çalışma ağacı değişiklikleri |
LSP Entegrasyonu (--lsp gerektirir)
| Araç | Açıklama |
|---|---|
get_hover_info | Tip bilgisi ve belgeler |
get_type_info | Hassas tip bilgisi |
go_to_definition | Tanım konumunu bul |
Uzak Depo Desteği (--remote gerektirir)
| Araç | Açıklama |
|---|---|
add_remote_repo | GitHub deposunu klonla ve dizinle |
list_remote_files | GitHub API üzerinden dosyaları listele |
get_remote_file | GitHub API üzerinden dosya getir |
Metrikler
| Araç | Açıklama |
|---|---|
get_metrics | Performans istatistikleri ve zamanlama |
SPARQL / Bilgi Grafiği (--graph gerektirir)
| Araç | Açıklama |
|---|---|
sparql_query | RDF bilgi grafiğine karşı SPARQL sorgusu yürüt |
list_sparql_templates | Kullanılabilir SPARQL sorgu şablonlarını listele |
run_sparql_template | Parametrelerle önceden tanımlı SPARQL şablonunu yürüt |
Kod Bağlam Grafiği (CCG) (--graph gerektirir)
CCG, kod tabanlarının katmanlı katmanlarda standartlaştırılmış, yapay zeka tarafından tüketilebilir temsillerini sağlar.
| Araç | Açıklama |
|---|---|
get_ccg_manifest | Katman 0 manifesti (~1-2KB JSON-LD) - depo kimliği, sayılar |
export_ccg_manifest | Katman 0 manifestini dosyaya dışa aktar |
export_ccg_architecture | Katman 1 mimarisi (~10-50KB JSON-LD) - modüller, API |
export_ccg_index | Katman 2 sembol dizini (~100-500KB N-Quads gzipli) |
export_ccg_full | Katman 3 tam ayrıntı (~1-20MB N-Quads gzipli) |
export_ccg | Tüm CCG katmanlarını bir paket olarak dışa aktar |
query_ccg | SPARQL kullanarak CCG'yi sorgula |
get_ccg_acl | CCG katmanları için WebACL erişim kontrolü oluştur |
get_ccg_access_info | CCG erişim katmanı bilgilerini al |
import_ccg | URL veya dosyadan CCG katmanını içe aktar |
import_ccg_from_registry | codecontextgraph.com kayıt defterinden CCG'yi içe aktar |
Güvenlik Kuralları
narsil-mcp, rules/ içinde yerleşik güvenlik kuralları içerir:
Çekirdek Kural Setleri:
owasp-top10.yaml- OWASP Top 10 2021 güvenlik açığı desenlericwe-top25.yaml- CWE Top 25 En Tehlikeli Zayıflıklarcrypto.yaml- Kriptografik sorunlar (zayıf algoritmalar, sabit kodlanmış anahtarlar)secrets.yaml- Sır tespiti (API anahtarları, parolalar, token'lar) Dile Özel Kurallar:rust.yaml- Rust güvenlik desenleri (unsafe transmute, FFI sınırları, komut enjeksiyonu, TOCTOU)elixir.yaml- Elixir/BEAM desenleri (atom tükenmesi, binary_to_term, Code.eval, Ecto SQL enjeksiyonu)go.yaml- Go güvenlik desenleri (SQL enjeksiyonu, TLS, komut enjeksiyonu)java.yaml- Java güvenlik açıkları (XXE, serileştirme, LDAP enjeksiyonu)csharp.yaml- C# güvenlik sorunları (serileştirme, XSS, yol geçişi)kotlin.yaml- Kotlin/Android desenleri (WebView, intent'ler, sırlar)bash.yaml- Kabuk betiği güvenlik açıkları (komut enjeksiyonu, eval)
Altyapı ve Yapılandırma:
iac.yaml- Altyapı Olarak Kod (Terraform, CloudFormation, Kubernetes)config.yaml- Yapılandırma dosyası güvenliği (sabit kodlanmış kimlik bilgileri, güvenli olmayan ayarlar)
Özel kurallar scan_security --ruleset /path/to/rules.yaml ile yüklenebilir.
Mimari
+-----------------------------------------------------------------+
| MCP Server |
| +-----------------------------------------------------------+ |
| | JSON-RPC over stdio | |
| +-----------------------------------------------------------+ |
| | |
| +---------------------------v-------------------------------+ |
| | Code Intel Engine | |
| | +------------+ +------------+ +------------------------+ | |
| | | Symbol | | File | | Search Engine | | |
| | | Index | | Cache | | (Tantivy + TF-IDF) | | |
| | | (DashMap) | | (DashMap) | +------------------------+ | |
| | +------------+ +------------+ | |
| | +------------+ +------------+ +------------------------+ | |
| | | Call Graph | | Taint | | Security Rules | | |
| | | Analysis | | Tracker | | Engine | | |
| | +------------+ +------------+ +------------------------+ | |
| +-----------------------------------------------------------+ |
| | |
| +---------------------------v-------------------------------+ |
| | Tree-sitter Parser | |
| | +------+ +------+ +------+ +------+ +------+ | |
| | | Rust | |Python| | JS | | TS | | Go | ... | |
| | +------+ +------+ +------+ +------+ +------+ | |
| +-----------------------------------------------------------+ |
| | |
| +---------------------------v-------------------------------+ |
| | Repository Walker | |
| | (ignore crate - respects .gitignore) | |
| +-----------------------------------------------------------+ |
+-----------------------------------------------------------------+
Performans
Apple M1 üzerinde kıyaslandı (criterion.rs):
Ayrıştırma Verimi
| Dil | Giriş Boyutu | Süre | Verim |
|---|---|---|---|
| Rust (büyük dosya) | 278 KB | 131 µs | 1,98 GiB/s |
| Rust (orta dosya) | 27 KB | 13,5 µs | 1,89 GiB/s |
| Python | ~4 KB | 16,7 µs | - |
| TypeScript | ~5 KB | 13,9 µs | - |
| Karma (5 dosya) | ~15 KB | 57 µs | - |
Arama Gecikmesi
| İşlem | Derlem Boyutu | Süre |
|---|---|---|
| Sembol tam eşleşme | 1.000 sembol | 483 ns |
| Sembol önek eşleşmesi | 1.000 sembol | 2,7 µs |
| Sembol bulanık eşleşme | 1.000 sembol | 16,5 µs |
| BM25 tam metin | 1.000 belge | 80 µs |
| TF-IDF benzerliği | 1.000 belge | 130 µs |
| Karma (BM25+TF-IDF) | 1.000 belge | 151 µs |
Uçtan Uca Dizinleme
| Depo | Dosyalar | Semboller | Süre | Bellek |
|---|---|---|---|---|
| narsil-mcp (bu depo) | 53 | 1.733 | 220 ms | ~50 MB |
| rust-analyzer | 2.847 | ~50K | 2,1 sn | 89 MB |
| linux çekirdeği | 78.000+ | ~500K | 45 sn | 2,1 GB |
Temel metrikler:
- Tree-sitter ayrıştırma: ~2 GiB/s sürekli verim
- Sembol arama: tam eşleşme için <1µs
- Tam metin arama: çoğu sorgu için <1ms
- Karma arama, rayon aracılığıyla BM25 + TF-IDF'i paralel çalıştırır
Geliştirme
# Run the full test suite
cargo test
# Run benchmarks (criterion.rs)
cargo bench
# Run with debug logging
RUST_LOG=debug cargo run -- --repos ./test-fixtures
# Format code
cargo fmt
# Lint
cargo clippy
# Test with MCP Inspector
npx @modelcontextprotocol/inspector ./target/release/narsil-mcp --repos ./path/to/repo
Sorun Giderme
Tree-sitter Derleme Hataları
Derleme sırasında eksik C derleyicileri veya tree-sitter ile ilgili hatalar görürseniz:
# macOS
xcode-select --install
# Ubuntu/Debian
sudo apt install build-essential
# For WASM builds
brew install emscripten # macOS
Sinirsel Arama API Hataları
# Check your API key is set
echo $VOYAGE_API_KEY # or $OPENAI_API_KEY
# Common issue: wrong key format
export VOYAGE_API_KEY="pa-..." # Voyage keys start with "pa-"
export OPENAI_API_KEY="sk-..." # OpenAI keys start with "sk-"
Dizinin Dosyaları Bulamaması
# Check .gitignore isn't excluding files
narsil-mcp --repos /path --verbose # Shows skipped files
# Force reindex
narsil-mcp --repos /path --reindex
Büyük Depolarda Bellek Sorunları
# For very large repos (>50K files), increase stack size
RUST_MIN_STACK=8388608 narsil-mcp --repos /path/to/huge-repo
# Or index specific subdirectories
narsil-mcp --repos /path/to/repo/src --repos /path/to/repo/lib
Grafik Özelliğinin Çalışmaması
--graph iletirseniz ve şuna benzer bir uyarı görürseniz:
WARN: --graph flag was passed but the binary was built without the 'graph' feature.
SPARQL and CCG tools will not be available.
Bu, graph özelliğiyle derlenmemiş bir ikili dosya kullandığınız anlamına gelir. Düzeltmek için:
# Build from source with the graph feature
cargo build --release --features graph
# Or with multiple features
cargo build --release --features graph,frontend
# Then run with --graph
./target/release/narsil-mcp --repos ~/project --graph
Bu neden ayrı bir özellik? graph özelliği, çoğu kullanım durumu için gerekmeyen Oxigraph RDF veritabanını (~5MB ek ikili boyut) ekler. Varsayılan ikili dosyayı daha küçük tutmak için isteğe bağlı tutulur.
Grafiğin etkin olup olmadığı nasıl kontrol edilir: Başlangıç günlüklerine bakın:
graph=trueözelliğin derlendiği VE etkinleştirildiği anlamına gelirgraph=falseya özelliğin derlenmediği ya da--graphiletilemediği anlamına gelir
Yol Haritası
Tamamlananlar
- Çok dilli sembol çıkarma (32 dil)
- Tantivy ile tam metin arama (BM25 sıralaması)
- Karma arama (BM25 + TF-IDF, RRF ile)
- AST duyarlı kod parçalama
- Git blame/geçmiş entegrasyonu
- Karmaşıklık metrikleriyle çağrı grafiği analizi
- Kontrol akış grafiği (CFG) analizi
- Ulaşan tanımlarla veri akışı analizi (DFG)
- Ölü kod ve ölü depolama tespiti
- Enjeksiyon güvenlik açıkları için taint analizi
- Güvenlik kuralları motoru (OWASP, CWE, kripto, sırlar)
- SBOM üretimi (CycloneDX, SPDX)
- Bağımlılık güvenlik açığı kontrolü (OSV)
- Lisans uyumluluk analizi
- Döngüsel bağımlılık tespitiyle içe aktarma grafiği
- Diller arası sembol çözümleme
- Merkle ağaçlarıyla artımlı dizinleme
- Dizin kalıcılığı
- Dosya değişiklikleri için izleme modu
- LSP entegrasyonu
- Uzak depo desteği
- Akış yanıtları
Yenilikler
v1.6.x (Güncel)
- Çökme korumalı parçalama - Çok baytlı UTF-8 karakterler (emoji, CJK, aksanlı karakterler) içeren dosyaları işlerken
chunk_file()veextract_signature()içindeki güvenli olmayan bayt düzeyinde dize dilimlemesi düzeltildi; bu,hybrid_search,search_chunksveget_chunk_statsöğelerinin çökmesine neden oluyordu. Tüm bayt dilimleme artık geri dönüşlü güvenlicontent.get()kullanıyor. - NaN güvenli sıralama işlemleri - Arama, gömme, git, dizin ve çıkarma modüllerinde NaN kayan nokta değerlerinde
partial_cmp().unwrap()paniğine neden olan 5 konum düzeltildi. Tüm sıralamalar artıkunwrap_or(Ordering::Equal)kullanıyor. - Derinlemesine savunma parçalama - Tüm depo genelindeki
chunk_file()döngülerinecatch_unwindsarmalayıcıları eklendi; böylece bir dosyadaki panik, tüm MCP sunucusunu çökertmek yerine o dosyayı atlar. - Görselleştirme ön yüzü yenilemesi - HashRouter yönlendirmeli tam SPA, dosya ağacı kenar çubuğu, sözdizimi vurgulamalı kod görüntüleyici, gösterge paneli ve depo başına genel bakış sayfaları
- Grafik görünümü performansı - İçe aktarma grafiği artık dosya sistemi taramaları yerine önbelleğe alınmış dizin verilerini kullanıyor; sembol grafiği, markdown gidiş-dönüşleri yerine doğrudan dosya önbelleğini yineliyor; tüm görünümler erken sonlandırma için
max_nodesdeğerine saygı gösteriyor - Gerçek kontrol akış grafikleri - Akış görünümü artık tek bloklu saplama yerine uygun temel bloklar, dal koşulları ve döngü geri kenarlarıyla gerçek CFG oluşturucuyu (
cfg::analyze_function) kullanıyor - Karma grafik bütçe bölme - Karma görünüm, dengeli sonuçlar için çağrı ve içe aktarma grafikleri arasında 60/40 düğüm bütçesi ayırıyor
- Düzeltme #14: yapılandırılabilir gömme boyutları -
text-embedding-3-largegibi modellerin sabit kodlanmış 1536 yerine doğru boyutları (3072) kullanması için--neural-dimensionCLI argümanı vedefault_dimension_for_model()araması eklendi - Düzeltme #13: Nix ön yüz derlemesi -
nix profile install github:postrv/narsil-mcp#with-frontendçalışması içinflake.nixiçindebuildNpmPackagekullanılarakfrontendDisttürevi eklendi - Rust güvenlik kuralları - Komut enjeksiyonu, transmute, FFI sınırları, TOCTOU, ReDoS, static mut, SSRF ve daha fazlasını kapsayan 18 yeni kural (RUST-004 ila RUST-021)
- Elixir güvenlik kuralları - Atom tükenmesi, binary_to_term serileştirme, Code.eval enjeksiyonu, Ecto SQL enjeksiyonu, Phoenix XSS, Erlang dağıtım güvenliğini kapsayan 18 yeni kural (EX-001 ila EX-018)
serde_yamlyerineserde-saphyrgeçişi - Kullanımdan kaldırılanserde_yaml, aktif olarak bakımı yapılan, panik içermeyen YAML kitaplığıyla değiştirildi- Özel favicon - Ön yüz artık varsayılan Vite logosu yerine narsil-mcp marka simgesini kullanıyor
- Bağımlılık güvenliği -
time0.3.47'ye (RUSTSEC-2026-0009),bytes1.11.1'e (RUSTSEC-2026-0007) güncellendi - Test sayısı 1.611'den 1.763'e yükseldi (+152 test)
v1.5.x
- Deterministik çağrı grafiği çözümleme - Kapsam ipucu yayılımı, çağrılan çözümlemeyi belirsizlikten kurtarır (ör.
App::run()doğru şekildesrc/app/mod.rs::runolarak çözümlenir) - 8 grafik analiz düzeltmesi - Nitelikli düğüm anahtarları, sıcak nokta filtreleme, CFG ifade işleme, içe aktarma yolu ayrıştırma
- Nix flake iyileştirmeleri - DRY
mkPkgyardımcı programı, gereksiz macOS çerçeveleri kaldırıldı, sanal alan derlemeleri için--libtest stratejisi
v1.4.x
- SPARQL / RDF Bilgi Grafiği - Oxigraph aracılığıyla SPARQL ile kod zekası verilerini sorgulayın
- Kod Bağlam Grafiği (CCG) - Katmanlı katmanlarla (L0-L3) standartlaştırılmış, AI tarafından tüketilebilir kod tabanı temsilleri için 12 araç
- Tür duyarlı güvenlik analizi - Tür çıkarımı ve özellik uygulamalarıyla geliştirilmiş taint izleme
- Çok dilli CFG/DFG - Kontrol akışı ve veri akışı analizi Go, Java, C#, Kotlin'e genişletildi
- Altyapı Olarak Kod taraması - Terraform, CloudFormation, Kubernetes için yeni
iac.yamlkuralları - Dile özel güvenlik kuralları - Go, Java, C#, Kotlin, Bash için yeni kurallar
- 6 yeni dil - Erlang, Elm, Fortran, PowerShell, Nix, Groovy
- Toplam 90 araç - Yeni SPARQL, CCG ve analiz yetenekleriyle 79'dan yükseldi
v1.2.x
exclude_testsparametresi - 22 araç test dosyalarını filtrelemeyi destekliyor- npm paketi -
npm install -g narsil-mcpile kurun
v1.1.x
- Çok platformlu dağıtım - Homebrew, Scoop, npm, Cargo veya doğrudan indirme ile kurun
- Yapılandırılabilir araç ön ayarları - Minimal, dengeli, tam ve güvenlik odaklı ön ayarlar
- Otomatik düzenleyici algılama - Zed, VS Code, Claude Desktop için en uygun varsayılanlar
- Etkileşimli kurulum sihirbazı - Kolay yapılandırma için
narsil-mcp config init - 32 dil desteği - Dart, Julia, R, Perl, Zig ve daha fazlası eklendi
- İyileştirilmiş performans - Arka plan dizinlemeyle daha hızlı başlangıç
v1.0.x
- Sinirsel anlamsal arama - Voyage AI veya OpenAI gömme yöntemlerini kullanarak benzer kod bulun
- Tür çıkarımı - Harici araçlar olmadan Python/JavaScript/TypeScript'te türleri çıkarın
- Çok dilli taint analizi - PHP, Java, C#, Ruby, Kotlin için güvenlik taraması
- WASM derlemesi - Kod oyun alanları ve eğitim araçları için tarayıcıda çalıştırın
- 147 paketlenmiş güvenlik kuralı - OWASP, CWE, kripto, sırlar, Rust, Elixir tespiti
- IDE yapılandırmaları dahildir - Claude Desktop, Cursor, VS Code, Zed şablonları
Lisans
Aşağıdakilerden herhangi biri altında lisanslanmıştır:
- Apache Lisansı, Sürüm 2.0 (LICENSE-APACHE veya http://www.apache.org/licenses/LICENSE-2.0)
- MIT lisansı (LICENSE-MIT veya http://opensource.org/licenses/MIT)
seçiminize bağlı olarak.
Katkıda Bulunanlar
Şunlarla oluşturuldu:
- tree-sitter - Artımlı ayrıştırma
- tantivy - Tam metin arama
- tokio - Eşzamansız çalışma zamanı
- rayon - Veri paralelliği
- serde - Serileştirme