Narsil MCP

chính thức

Máy chủ MCP nhanh như chớp 🔥 hàng đầu trong Rust 🦀 với công cụ neural, hồ sơ bảo mật và giao diện đồ thị tùy chọn

Bạn có thể làm gì với Narsil MCP?

  • Khám phá mã nguồn — Yêu cầu trợ lý của bạn lập bản đồ các dự án chưa quen thuộc, tìm kiếm ký hiệu và truy vết tham chiếu trên 32 ngôn ngữ bằng find_symbols và find_references.

  • Phân tích lỗ hổng bảo mật — Yêu cầu phân tích luồng dữ liệu, quét OWASP Top 10 hoặc kiểm tra CWE để xác định điểm tấn công và nhận đề xuất khắc phục qua scan_security và suggest_fix.

  • Truy vết mối quan hệ giữa các hàm — Trực quan hóa đồ thị gọi hàm, tìm người gọi/người được gọi, hoặc xác định đường đi giữa các hàm để hiểu luồng thực thi với get_call_graph và find_call_path.

  • Kiểm toán rủi ro chuỗi cung ứng — Tạo SBOM, kiểm tra phụ thuộc với OSV, và xác minh tuân thủ giấy phép bằng generate_sbom, check_dependencies, và check_licenses.

  • Phát hiện vấn đề chất lượng mã — Xác định mã chết, biến chưa khởi tạo, hoặc sai lệch kiểu dữ liệu trong Python, JavaScript và TypeScript với find_dead_code và check_type_errors.

Tài liệu

narsil-mcp

Máy chủ MCP cực nhanh, ưu tiên quyền riêng tư cho trí tuệ mã nguồn sâu

License Rust Tests MCP

Máy chủ MCP (Model Context Protocol) được xây dựng bằng Rust, cung cấp cho trợ lý AI khả năng hiểu sâu về mã nguồn thông qua 90 công cụ chuyên biệt.

Tại sao chọn narsil-mcp?

Tính năngnarsil-mcpXRAYSerenaGitHub MCP
Ngôn ngữ32430+ (LSP)N/A
Tìm kiếm NeuralCóKhôngKhôngKhông
Phân tích TaintCóKhôngKhôngKhông
SBOM/Giấy phépCóKhôngKhôngMột phần
Ngoại tuyến/Cục bộCóCóCóKhông
WASM/Trình duyệtCóKhôngKhôngKhông
Đồ thị gọi hàmCóMột phầnKhôngKhông
Suy luận kiểuCóKhôngKhôngKhông

Tính năng chính

  • Trí tuệ mã nguồn - Trích xuất ký hiệu, tìm kiếm ngữ nghĩa, phân tích đồ thị gọi hàm
  • Tìm kiếm ngữ nghĩa Neural - Tìm mã tương tự bằng embeddings (Voyage AI, OpenAI)
  • Phân tích bảo mật - Phân tích taint, quét lỗ hổng, bao phủ OWASP/CWE
  • Bảo mật chuỗi cung ứng - Tạo SBOM, kiểm tra phụ thuộc, tuân thủ giấy phép
  • Phân tích nâng cao - Đồ thị luồng điều khiển, phân tích luồng dữ liệu, phát hiện mã chết

Tại sao chọn narsil-mcp?

  • Viết bằng Rust - Cực nhanh, an toàn bộ nhớ, một tệp nhị phân (~30MB)
  • Hỗ trợ Tree-sitter - Phân tích cú pháp chính xác, tăng dần cho 32 ngôn ngữ
  • Không cần cấu hình - Trỏ vào kho lưu trữ và bắt đầu
  • Tuân thủ MCP - Hoạt động với Claude, Cursor, VS Code Copilot, Zed và mọi máy khách MCP
  • Ưu tiên quyền riêng tư - Hoàn toàn cục bộ, không dữ liệu nào rời khỏi máy của bạn
  • Lập chỉ mục song song - Sử dụng tất cả lõi qua Rayon
  • Trích đoạn thông minh - Mở rộng đến phạm vi cú pháp hoàn chỉnh
  • Bảo mật hàng đầu - Phát hiện lỗ hổng và phân tích taint tích hợp
  • Embeddings Neural - Tìm kiếm ngữ nghĩa tùy chọn với Voyage AI hoặc OpenAI
  • Hỗ trợ WASM - Chạy trong trình duyệt với bản dựng WebAssembly
  • Truyền phát thời gian thực - Kết quả khi lập chỉ mục tiến triển cho kho lưu trữ lớn

Ngôn ngữ được hỗ trợ

Ngôn ngữPhần mở rộngKý hiệu được trích xuất
Rust.rshàm, struct, enum, trait, impl, mod
Python.py, .pyihàm, lớp
JavaScript.js, .jsx, .mjshàm, lớp, phương thức, biến
TypeScript.ts, .tsxhàm, lớp, interface, kiểu, enum
Go.gohàm, phương thức, kiểu
C.c, .hhàm, struct, enum, typedef
C++.cpp, .cc, .hpphàm, lớp, struct, namespace
Java.javaphương thức, lớp, interface, enum
C#.csphương thức, lớp, interface, struct, enum, delegate, namespace
Bash.sh, .bash, .zshhàm, biến
Ruby.rb, .rake, .gemspecphương thức, lớp, module
Kotlin.kt, .ktshàm, lớp, đối tượng, interface
PHP.php, .phtmlhàm, phương thức, lớp, interface, trait
Swift.swiftlớp, struct, enum, protocol, hàm
Verilog/SystemVerilog.v, .vh, .sv, .svhmodule, task, hàm, interface, lớp
Scala.scala, .sclớp, đối tượng, trait, hàm, val
Lua.luahàm, phương thức
Haskell.hs, .lhshàm, kiểu dữ liệu, lớp kiểu
Elixir.ex, .exsmodule, hàm
Clojure.clj, .cljs, .cljc, .edndanh sách (AST cơ bản)
Dart.darthàm, lớp, phương thức
Julia.jlhàm, module, struct
R.R, .r, .Rmdhàm
Perl.pl, .pm, .thàm, gói
Zig.zighàm, biến
Erlang.erl, .hrlhàm, module, record
Elm.elmhàm, kiểu
Fortran.f90, .f95, .f03, .f08, .f, .for, .fppchương trình, chương trình con, hàm, module
PowerShell.ps1, .psm1, .psd1hàm, lớp, enum
Nix.nixràng buộc
Groovy.groovy, .gradlephương thức, lớp, interface, enum, hàm

Cài đặt

Qua Trình quản lý gói (Khuyến nghị)

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 (mọi nền tảng):

cargo install narsil-mcp

Node.js/npm (mọi nền tảng):

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

Tập lệnh cài đặt một cú nhấp chuột

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

Lưu ý cho người dùng Windows: Trình cài đặt PowerShell cung cấp thông báo lỗi tốt hơn và tích hợp Windows gốc. Nó sẽ tự động cấu hình PATH của bạn và kiểm tra các công cụ xây dựng cần thiết nếu xây dựng từ mã nguồn.

Từ mã nguồn

Điều kiện tiên quyết:

  • Rust ổn định hiện tại (bản phát hành này được xác minh với Rust 1.98 và 1.99)
  • Trên Windows: Visual Studio Build Tools với "Desktop development with C++"
# 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

Bản dựng tính năng

narsil-mcp hỗ trợ các bộ tính năng khác nhau cho các trường hợp sử dụng khác nhau:

# 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
Tính năngMô tảKích thước
native (mặc định)Máy chủ MCP đầy đủ với tất cả công cụ~30MB
graph+ Đồ thị tri thức RDF, SPARQL, công cụ CCG~35MB
frontend+ Giao diện web trực quan hóa nhúng~31MB
neural+ Tìm kiếm vector TF-IDF, embeddings API~32MB
neural-onnx+ Suy luận mô hình ONNX cục bộ~50MB
wasmBản dựng nguồn trình duyệt thử nghiệm (không có hệ thống tệp, git)Không đủ điều kiện phát hành

Quan trọng: Cờ CLI --graph yêu cầu tệp nhị phân được xây dựng với --features graph. Nếu bạn truyền --graph cho tệp nhị phân được xây dựng mà không có tính năng này, bạn sẽ thấy cảnh báo và các công cụ SPARQL/CCG sẽ không khả dụng. Xem Khắc phục sự cố bên dưới.

Để biết hướng dẫn cài đặt chi tiết, khắc phục sự cố và hướng dẫn theo nền tảng cụ thể, xem docs/INSTALL.md.

Cách sử dụng

Sử dụng cơ bản

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

Bộ tính năng đầy đủ

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)

Lưu ý về --graph: Cờ này bật truy vấn SPARQL và các công cụ Code Context Graph (CCG), nhưng chỉ khi tệp nhị phân được xây dựng với --features graph. Tệp nhị phân mặc định không bao gồm tính năng này. Nếu bạn cần khả năng SPARQL/CCG, hãy xây dựng từ mã nguồn với:

cargo build --release --features graph

Nếu bạn truyền --graph cho tệp nhị phân không có tính năng này, bạn sẽ thấy cảnh báo khi khởi động và máy chủ sẽ tiếp tục mà không có các công cụ SPARQL/CCG.

Lưu ý: Embeddings Neural yêu cầu khóa API (hoặc điểm cuối tùy chỉnh). Cách dễ nhất để thiết lập điều này là sử dụng trình hướng dẫn tương tác:

# Run the neural API key setup wizard
narsil-mcp config init --neural

Trình hướng dẫn sẽ:

  • Phát hiện trình soạn thảo của bạn (Claude Desktop, Claude Code, Zed, VS Code, JetBrains)
  • Nhắc chọn nhà cung cấp API của bạn (Voyage AI, OpenAI hoặc tùy chỉnh)
  • Xác thực khóa API của bạn
  • Tự động thêm vào cấu hình MCP của trình soạn thảo

Ngoài ra, bạn có thể đặt thủ công một trong các biến môi trường sau:

  • EMBEDDING_API_KEY - Khóa API chung cho bất kỳ nhà cung cấp nào
  • VOYAGE_API_KEY - Khóa API cụ thể cho Voyage AI
  • OPENAI_API_KEY - Khóa API cụ thể cho OpenAI
  • EMBEDDING_SERVER_ENDPOINT - URL điểm cuối API embedding tùy chỉnh (tùy chọn, cho phép sử dụng mô hình tự lưu trữ)

Cấu hình

v1.1.0+ giới thiệu cấu hình tùy chọn để kiểm soát chi tiết các công cụ và hiệu suất. Tất cả cách sử dụng hiện có vẫn hoạt động - cấu hình hoàn toàn tùy chọn!

Bắt đầu nhanh

# 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

Tự động phát hiện trình soạn thảo

narsil-mcp phát hiện trình soạn thảo của bạn và tự động áp dụng cấu hình tối ưu:

Trình soạn thảoCấu hìnhCông cụMã thông báo ngữ cảnhTại sao
ZedTối thiểu26~4.686Khởi động nhanh, ngữ cảnh tối thiểu
VS CodeCân bằng51~8.948Cân bằng tính năng tốt
Claude DesktopĐầy đủ90~12.001Khả năng tối đa

Tiết kiệm mã thông báo:

  • Cấu hình tối thiểu: Ít hơn 61% mã thông báo so với Đầy đủ
  • Cấu hình cân bằng: Ít hơn 25% mã thông báo so với Đầy đủ

Cấu hình

Chọn cấu hình dựa trên trường hợp sử dụng của bạn:

# 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

Tệp cấu hình

Cấu hình người dùng (~/.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

Cấu hình dự án (.narsil.yaml trong thư mục gốc kho lưu trữ):

version: "1.0"
preset: "security-focused"  # Override user preset

tools:
  categories:
    Security:
      enabled: true
    SupplyChain:
      enabled: true

Hồ sơ kho lưu trữ được đặt tên hữu ích cho không gian làm việc đa kho lưu trữ:

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

Ưu tiên: Cờ CLI > Biến môi trường > Cấu hình dự án > Cấu hình người dùng > Mặc định

Biến môi trường

# 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

Lệnh CLI

# 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

Tìm hiểu thêm:

Giao diện trực quan hóa

Khám phá đồ thị gọi hàm, import, tham chiếu ký hiệu và luồng điều khiển tương tác trong trình duyệt của bạn.

# Build with embedded frontend
cargo build --release --features frontend

# Run with HTTP server
narsil-mcp --repos ~/project --http --call-graph
# Open http://localhost:3000

Năm chế độ xem đồ thị:

Chế độ xemMô tả
Đồ thị gọi hàmMối quan hệ gọi hàm với kiểm soát độ sâu và lọc hướng
Đồ thị importPhụ thuộc import cấp tệp trên toàn bộ mã nguồn
Đồ thị ký hiệuTất cả tham chiếu đến một ký hiệu, với phân cụm tệp
Kết hợpĐồ thị gọi + import kết hợp với ngân sách phân chia
Luồng điều khiểnCFG thực với các khối cơ bản, nhánh và cạnh lặp

Tính năng:

  • Đồ thị Cytoscape.js tương tác với kéo, thu phóng và nhấp đúp để khoan xuống
  • Lớp phủ số liệu độ phức tạp với mã màu (xanh lá/vàng/cam/đỏ)
  • Lớp phủ lỗ hổng bảo mật làm nổi bật nguồn và đích taint
  • Sáu thuật toán bố cục (dagre, force-directed, breadthfirst, concentric, circle, grid)
  • Thanh bên cây tệp với trình xem mã được tô sáng cú pháp
  • Trạng thái điều khiển bằng URL (liên kết chia sẻ, quay lại/tiến trình duyệt)
  • Hỗ trợ chế độ tối
  • Bảng chi tiết nút với trích đoạn mã và điều hướng đến nguồn

Tài liệu đầy đủ: Xem docs/frontend.md để biết thiết lập, điểm cuối API và chế độ phát triển.

Tìm kiếm ngữ nghĩa Neural

Tìm mã tương tự bằng embeddings neural - ngay cả khi tên biến và cấu trúc khác nhau.

# 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

Hỗ trợ Voyage AI, OpenAI, điểm cuối tùy chỉnh và mô hình ONNX cục bộ.

Tài liệu đầy đủ: Xem docs/neural-search.md để biết thiết lập, backend và trường hợp sử dụng.

Suy luận kiểu

Suy luận kiểu tích hợp cho Python, JavaScript và TypeScript - không cần mypy hoặc tsc.

Công cụMô tả
infer_typesLấy kiểu suy luận cho tất cả biến trong một hàm
check_type_errorsTìm sự không khớp kiểu tiềm ẩn
get_typed_taint_flowPhân tích bảo mật nâng cao với thông tin kiểu
def process(data):
    result = data.split(",")  # result: list[str]
    count = len(result)       # count: int
    return count * 2          # returns: int

Tích hợp Forgemax (Thử nghiệm)

Đối với quy trình làm việc đại lý quy mô lớn, narsil-mcp có thể được sử dụng qua Forgemax — một cổng MCP Code Mode thu gọn tất cả 90 công cụ thành chỉ 2 (search + execute), giảm chi phí lược đồ công cụ từ ~12.000 mã thông báo xuống ~1.000.

# Install Forgemax
cargo install forgemax

# Run narsil-mcp through Forgemax (uses forge.toml in repo root)
forgemax

forge.toml đi kèm cấu hình narsil-mcp với các mặc định hợp lý:

[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 viết JavaScript gọi qua các đối tượng proxy có kiểu dữ liệu bên trong một V8 isolate được sandbox — thông tin xác thực, đường dẫn tệp và trạng thái nội bộ không bao giờ rời khỏi máy chủ. Cách tiếp cận này đặc biệt hữu ích khi làm việc với nhiều máy chủ MCP cùng lúc, vì nó giữ cho tổng ngữ cảnh công cụ nhỏ gọn và dễ dự đoán.

Cấu hình MCP

Thêm narsil-mcp vào trợ lý AI của bạn bằng cách tạo một tệp cấu hình. Dưới đây là các thiết lập được khuyến nghị:


Claude Code (.mcp.json trong thư mục gốc dự án - Khuyến nghị):

Tạo .mcp.json trong thư mục dự án của bạn để cấu hình theo từng dự án:

{
  "mcpServers": {
    "narsil-mcp": {
      "command": "narsil-mcp",
      "args": ["--repos", ".", "--git", "--call-graph"]
    }
  }
}

Sau đó khởi động Claude Code trong dự án của bạn:

cd /path/to/project
claude

Sử dụng . cho --repos tự động lập chỉ mục thư mục hiện tại. Claude giờ có quyền truy cập vào 90 công cụ phân tích mã thông minh.

Mẹo: Thêm --persist --index-path .claude/cache để khởi động nhanh hơn trong các lần chạy tiếp theo.

Để cấu hình toàn cục, hãy chỉnh sửa ~/.claude/settings.json thay thế. Xem Tích hợp Claude Code để biết các thiết lập nâng cao.


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"]
    }
  }
}

Lưu ý cho Copilot Enterprise: Hỗ trợ MCP yêu cầu VS Code 1.102+ và phải được quản trị viên tổ chức của bạn bật.


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"]
    }
  }
}

Lưu ý cho Zed: narsil-mcp khởi động ngay lập tức và lập chỉ mục trong nền, ngăn chặn tình trạng hết thời gian khởi tạo.


Plugin Claude Code

Dành cho người dùng Claude Code, chúng tôi cung cấp một plugin với các lệnh gạch chéo và một kỹ năng để sử dụng công cụ hiệu quả.

Cài đặt qua Marketplace (Khuyến nghị):

# Add the narsil-mcp marketplace
/plugin marketplace add postrv/narsil-mcp

# Install the plugin
/plugin install narsil@narsil-mcp

Hoặc cài đặt trực tiếp từ GitHub:

/plugin install github:postrv/narsil-mcp/narsil-plugin

Những gì được bao gồm:

Thành phầnMô tả
/narsil:security-scanChạy kiểm tra bảo mật toàn diện
/narsil:exploreKhám phá các codebase chưa quen thuộc
/narsil:analyze-functionĐi sâu vào các hàm cụ thể
/narsil:find-featureTìm nơi các tính năng được triển khai
/narsil:supply-chainPhân tích bảo mật chuỗi cung ứng
Kỹ năngHướng dẫn Claude sử dụng hiệu quả 90 công cụ
Cấu hình MCPTự động khởi động narsil-mcp với các mặc định hợp lý

Xem narsil-plugin/README.md để biết tài liệu đầy đủ.

Tích hợp Ralph Automation

Ralph là một bộ tự động hóa Claude Code để phát triển mã tự động. Khi narsil-mcp khả dụng, Ralph có được các khả năng phân tích mã nâng cao:

Tính năngKhông có narsil-mcpCó narsil-mcp
Quét bảo mậtCơ bản (clippy)Phát hiện lỗ hổng OWASP/CWE
Hiểu mãDựa trên tệpĐồ thị gọi, tham chiếu ký hiệu
Phân tích kiến trúcThủ côngCác lớp tự động CCG L0/L1/L2
Phân tích phụ thuộccargo treeĐồ thị nhập, phát hiện vòng lặp

Thiết lập:

# 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 tự động giảm cấp khi narsil-mcp không khả dụng - tất cả các tính năng tự động hóa cốt lõi vẫn hoạt động mà không cần nó.

Tài liệu: Xem Ralph README để biết chi tiết tích hợp đầy đủ.

Playbooks & Hướng dẫn

Xem docs/playbooks để biết các hướng dẫn sử dụng thực tế:

Hướng dẫnMô tả
Bắt đầuThiết lập nhanh và các lệnh gọi công cụ đầu tiên
Hiểu một CodebaseKhám phá các dự án chưa quen thuộc
Sửa lỗiGỡ lỗi với đồ thị gọi và phân tích taint
Kiểm tra bảo mậtTìm lỗ hổng với quét OWASP/CWE
Đánh giá mãĐánh giá các thay đổi hiệu quả

Mỗi playbook hiển thị các chuỗi công cụ chính xác mà Claude sử dụng để trả lời câu hỏi của bạn.

Sử dụng WebAssembly (Trình duyệt)

Kho lưu trữ chứa mã nguồn WebAssembly thử nghiệm và một tập lệnh xây dựng cục bộ. @narsil-mcp/wasm không được xuất bản trên npm và không phải là kênh phân phối cho bản phát hành CLI 1.7.1. Bản dựng WASM và các ví dụ không được bao phủ bởi quá trình đủ điều kiện phát hành của nó. Xem docs/wasm.md để biết quy trình làm việc mã nguồn thử nghiệm.

Các công cụ khả dụng (93)

Quản lý kho lưu trữ & tệp

Công cụMô tả
list_reposLiệt kê tất cả các kho lưu trữ đã lập chỉ mục với siêu dữ liệu
get_project_structureLấy cây thư mục với biểu tượng tệp và kích thước
get_fileLấy nội dung tệp với phạm vi dòng tùy chọn
get_excerptTrích xuất mã xung quanh các dòng cụ thể với ngữ cảnh
reindexKích hoạt lập chỉ mục lại các kho lưu trữ
discover_reposTự động khám phá các kho lưu trữ trong một thư mục
validate_repoKiểm tra xem đường dẫn có phải là kho lưu trữ hợp lệ không
get_index_statusHiển thị thống kê chỉ mục và các tính năng đã bật

Tìm kiếm & điều hướng ký hiệu

Công cụMô tả
find_symbolsTìm struct, class, hàm theo loại/mẫu
get_symbol_definitionLấy mã nguồn ký hiệu với ngữ cảnh xung quanh
find_referencesTìm tất cả tham chiếu đến một ký hiệu
get_dependenciesPhân tích các import và phần phụ thuộc
workspace_symbol_searchTìm kiếm mờ các ký hiệu trong toàn bộ không gian làm việc
find_symbol_usagesSử dụng ký hiệu xuyên tệp với các import
get_export_mapLấy các ký hiệu được xuất từ một tệp/mô-đun

Tìm kiếm mã

Công cụMô tả
search_codeTìm kiếm từ khóa với xếp hạng mức độ liên quan
semantic_searchTìm kiếm ngữ nghĩa xếp hạng BM25
hybrid_searchKết hợp BM25 + TF-IDF với hợp nhất thứ hạng
search_chunksTìm kiếm trên các khối mã nhận biết AST
find_similar_codeTìm mã tương tự một đoạn mã (TF-IDF)
find_similar_to_symbolTìm mã tương tự một ký hiệu

Phân khối nhận biết AST

Công cụMô tả
get_chunksLấy các khối nhận biết AST cho một tệp
get_chunk_statsThống kê về các khối mã
get_embedding_statsThống kê chỉ mục nhúng

Tìm kiếm ngữ nghĩa thần kinh (yêu cầu --neural)

Công cụMô tả
neural_searchTìm kiếm ngữ nghĩa sử dụng nhúng thần kinh (tìm mã tương tự ngay cả với tên khác nhau)
find_semantic_clonesTìm các bản sao ngữ nghĩa Loại-3/4 của một hàm
get_neural_statsThống kê chỉ mục nhúng thần kinh

Phân tích đồ thị gọi (yêu cầu --call-graph)

Công cụMô tả
get_call_graphLấy đồ thị gọi cho kho lưu trữ/hàm
get_callersTìm các hàm gọi một hàm
get_calleesTìm các hàm được gọi bởi một hàm
find_call_pathTìm đường đi giữa hai hàm
get_complexityLấy độ phức tạp cyclomatic/nhận thức
get_function_hotspotsTìm các hàm kết nối cao

Phân tích luồng điều khiển

Công cụMô tả
get_control_flowLấy CFG hiển thị các khối cơ bản và nhánh
find_dead_codeTìm các khối mã không thể truy cập

Phân tích luồng dữ liệu

Công cụMô tả
get_data_flowĐịnh nghĩa và sử dụng biến
get_reaching_definitionsPhép gán nào đến từng điểm
find_uninitializedBiến được sử dụng trước khi khởi tạo
find_dead_storesPhép gán không bao giờ được đọc

Suy luận kiểu (Python/JavaScript/TypeScript)

Công cụMô tả
infer_typesSuy luận kiểu cho các biến trong một hàm mà không cần trình kiểm tra kiểu bên ngoài
check_type_errorsTìm lỗi kiểu tiềm ẩn mà không chạy mypy/tsc
get_typed_taint_flowPhân tích taint nâng cao kết hợp luồng dữ liệu với suy luận kiểu

Đồ thị import/phụ thuộc

Công cụMô tả
get_import_graphXây dựng và phân tích đồ thị import
find_circular_importsPhát hiện phụ thuộc vòng tròn
get_incremental_statusCây Merkle và thống kê thay đổi

Phân tích bảo mật - Theo dõi Taint

Công cụMô tả
find_injection_vulnerabilitiesTìm SQL injection, XSS, command injection, path traversal
trace_taintTruy vết luồng dữ liệu tainted từ một nguồn
get_taint_sourcesLiệt kê các nguồn taint (đầu vào người dùng, tệp, mạng)
get_security_summaryĐánh giá rủi ro bảo mật toàn diện

Phân tích bảo mật - Công cụ quy tắc

Công cụMô tả
scan_securityQuét với các quy tắc bảo mật (OWASP, CWE, crypto, secrets)
check_owasp_top10Quét các lỗ hổng OWASP Top 10 2021
check_cwe_top25Quét các điểm yếu CWE Top 25
explain_vulnerabilityLấy giải thích chi tiết về lỗ hổng
suggest_fixLấy đề xuất khắc phục cho các phát hiện

Bảo mật chuỗi cung ứng

Công cụMô tả
generate_sbomTạo SBOM (CycloneDX/SPDX/JSON)
check_dependenciesKiểm tra các lỗ hổng đã biết (cơ sở dữ liệu OSV)
check_licensesPhân tích giấy phép cho các vấn đề tuân thủ
find_upgrade_pathTìm đường nâng cấp an toàn cho các phụ thuộc dễ bị tổn thương

Tích hợp Git (yêu cầu --git)

Công cụMô tả
get_blameGit blame cho tệp
get_file_historyLịch sử commit cho tệp
get_recent_changesCác commit gần đây trong kho lưu trữ
get_hotspotsCác tệp có mức thay đổi và độ phức tạp cao
get_contributorsNgười đóng góp cho kho lưu trữ/tệp
get_commit_diffDiff cho commit cụ thể
get_symbol_historyCác commit đã thay đổi một ký hiệu
get_branch_infoNhánh hiện tại và trạng thái
get_modified_filesCác thay đổi trong cây làm việc

Tích hợp LSP (yêu cầu --lsp)

Công cụMô tả
get_hover_infoThông tin kiểu và tài liệu
get_type_infoThông tin kiểu chính xác
go_to_definitionTìm vị trí định nghĩa

Hỗ trợ kho lưu trữ từ xa (yêu cầu --remote)

Công cụMô tả
add_remote_repoNhân bản và lập chỉ mục kho lưu trữ GitHub
list_remote_filesLiệt kê tệp qua GitHub API
get_remote_fileTìm nạp tệp qua GitHub API

Số liệu

Công cụMô tả
get_metricsThống kê hiệu suất và thời gian

SPARQL / Đồ thị tri thức (yêu cầu --graph)

Công cụMô tả
sparql_queryThực thi truy vấn SPARQL trên đồ thị tri thức RDF
list_sparql_templatesLiệt kê các mẫu truy vấn SPARQL khả dụng
run_sparql_templateThực thi mẫu SPARQL được xác định trước với các tham số

Đồ thị ngữ cảnh mã (CCG) (yêu cầu --graph)

CCG cung cấp các biểu diễn chuẩn hóa, có thể tiêu thụ bởi AI của các codebase trong các lớp phân tầng.

Công cụMô tả
get_ccg_manifestManifest Lớp 0 (~1-2KB JSON-LD) - danh tính kho lưu trữ, số lượng
export_ccg_manifestXuất manifest Lớp 0 ra tệp
export_ccg_architectureKiến trúc Lớp 1 (~10-50KB JSON-LD) - mô-đun, API
export_ccg_indexChỉ mục ký hiệu Lớp 2 (~100-500KB N-Quads nén gzip)
export_ccg_fullChi tiết đầy đủ Lớp 3 (~1-20MB N-Quads nén gzip)
export_ccgXuất tất cả các lớp CCG dưới dạng một gói
query_ccgTruy vấn CCG sử dụng SPARQL
get_ccg_aclTạo kiểm soát truy cập WebACL cho các lớp CCG
get_ccg_access_infoLấy thông tin cấp truy cập CCG
import_ccgNhập lớp CCG từ URL hoặc tệp
import_ccg_from_registryNhập CCG từ sổ đăng ký codecontextgraph.com

Quy tắc bảo mật

narsil-mcp bao gồm các quy tắc bảo mật tích hợp trong rules/:

Các bộ quy tắc cốt lõi:

  • owasp-top10.yaml - Các mẫu lỗ hổng OWASP Top 10 2021
  • cwe-top25.yaml - CWE Top 25 Điểm yếu nguy hiểm nhất
  • crypto.yaml - Các vấn đề mật mã (thuật toán yếu, khóa mã hóa cứng)
  • secrets.yaml - Phát hiện bí mật (khóa API, mật khẩu, mã thông báo) Quy tắc theo ngôn ngữ cụ thể:
  • rust.yaml - Các mẫu bảo mật Rust (unsafe transmute, ranh giới FFI, chèn lệnh, TOCTOU)
  • elixir.yaml - Các mẫu Elixir/BEAM (cạn kiệt atom, binary_to_term, Code.eval, chèn SQL Ecto)
  • go.yaml - Các mẫu bảo mật Go (chèn SQL, TLS, chèn lệnh)
  • java.yaml - Lỗ hổng Java (XXE, giải tuần tự hóa, chèn LDAP)
  • csharp.yaml - Các vấn đề bảo mật C# (giải tuần tự hóa, XSS, path traversal)
  • kotlin.yaml - Các mẫu Kotlin/Android (WebView, intents, bí mật)
  • bash.yaml - Lỗ hổng shell script (chèn lệnh, eval)

Cơ sở hạ tầng & Cấu hình:

  • iac.yaml - Infrastructure as Code (Terraform, CloudFormation, Kubernetes)
  • config.yaml - Bảo mật tệp cấu hình (thông tin xác thực được mã hóa cứng, cài đặt không an toàn)

Các quy tắc tùy chỉnh có thể được tải bằng scan_security --ruleset /path/to/rules.yaml.

Kiến trúc

+-----------------------------------------------------------------+
|                         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)             |  |
|  +-----------------------------------------------------------+  |
+-----------------------------------------------------------------+

Hiệu suất

Được đo điểm chuẩn trên Apple M1 (criterion.rs):

Thông lượng phân tích cú pháp

Ngôn ngữKích thước đầu vàoThời gianThông lượng
Rust (tệp lớn)278 KB131 µs1.98 GiB/s
Rust (tệp trung bình)27 KB13.5 µs1.89 GiB/s
Python~4 KB16.7 µs-
TypeScript~5 KB13.9 µs-
Hỗn hợp (5 tệp)~15 KB57 µs-

Độ trễ tìm kiếm

Thao tácKích thước kho ngữ liệuThời gian
Khớp chính xác ký hiệu1.000 ký hiệu483 ns
Khớp tiền tố ký hiệu1.000 ký hiệu2.7 µs
Khớp mờ ký hiệu1.000 ký hiệu16.5 µs
Toàn văn BM251.000 tài liệu80 µs
Tương tự TF-IDF1.000 tài liệu130 µs
Kết hợp (BM25+TF-IDF)1.000 tài liệu151 µs

Lập chỉ mục đầu cuối

Kho lưu trữTệpKý hiệuThời gianBộ nhớ
narsil-mcp (kho này)531.733220 ms~50 MB
rust-analyzer2.847~50K2.1s89 MB
nhân linux78.000+~500K45s2.1 GB

Các chỉ số chính:

  • Phân tích cú pháp Tree-sitter: ~2 GiB/s thông lượng duy trì
  • Tra cứu ký hiệu: <1µs cho khớp chính xác
  • Tìm kiếm toàn văn: <1ms cho hầu hết các truy vấn
  • Tìm kiếm kết hợp chạy BM25 + TF-IDF song song qua rayon

Phát triển

# 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

Xử lý sự cố

Lỗi biên dịch Tree-sitter

Nếu bạn thấy lỗi về trình biên dịch C bị thiếu hoặc tree-sitter trong quá trình biên dịch:

# macOS
xcode-select --install

# Ubuntu/Debian
sudo apt install build-essential

# For WASM builds
brew install emscripten  # macOS

Lỗi API tìm kiếm thần kinh

# 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-"

Chỉ mục không tìm thấy tệp

# Check .gitignore isn't excluding files
narsil-mcp --repos /path --verbose  # Shows skipped files

# Force reindex
narsil-mcp --repos /path --reindex

Sự cố bộ nhớ với kho lưu trữ lớn

# 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

Tính năng Đồ thị không hoạt động

Nếu bạn truyền --graph và thấy cảnh báo như:

WARN: --graph flag was passed but the binary was built without the 'graph' feature.
SPARQL and CCG tools will not be available.

Điều này có nghĩa là bạn đang sử dụng tệp nhị phân không được biên dịch với tính năng graph. Để khắc phục:

# 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

Tại sao đây là một tính năng riêng biệt? Tính năng graph thêm cơ sở dữ liệu RDF Oxigraph (~5MB kích thước tệp nhị phân bổ sung) không cần thiết cho hầu hết các trường hợp sử dụng. Nó được giữ tùy chọn để giữ tệp nhị phân mặc định nhỏ hơn.

Cách kiểm tra xem đồ thị có được bật không: Xem nhật ký khởi động:

  • graph=true có nghĩa là tính năng được biên dịch VÀ được bật
  • graph=false có nghĩa là tính năng không được biên dịch, HOẶC --graph không được truyền

Lộ trình

Đã hoàn thành

  • Trích xuất ký hiệu đa ngôn ngữ (32 ngôn ngữ)
  • Tìm kiếm toàn văn với Tantivy (xếp hạng BM25)
  • Tìm kiếm kết hợp (BM25 + TF-IDF với RRF)
  • Chunking mã nhận biết AST
  • Tích hợp Git blame/lịch sử
  • Phân tích đồ thị lời gọi với các chỉ số độ phức tạp
  • Phân tích đồ thị luồng điều khiển (CFG)
  • Phân tích luồng dữ liệu (DFG) với các định nghĩa đến
  • Phát hiện mã chết và lưu trữ chết
  • Phân tích taint cho các lỗ hổng chèn
  • Công cụ quy tắc bảo mật (OWASP, CWE, crypto, bí mật)
  • Tạo SBOM (CycloneDX, SPDX)
  • Kiểm tra lỗ hổng phụ thuộc (OSV)
  • Phân tích tuân thủ giấy phép
  • Đồ thị nhập khẩu với phát hiện phụ thuộc vòng
  • Giải quyết ký hiệu đa ngôn ngữ
  • Lập chỉ mục gia tăng với cây Merkle
  • Lưu trữ chỉ mục
  • Chế độ theo dõi thay đổi tệp
  • Tích hợp LSP
  • Hỗ trợ kho lưu trữ từ xa
  • Phản hồi phát trực tuyến

Có gì mới

v1.6.x (Hiện tại)

  • Chunking chống sập - Đã sửa lỗi cắt chuỗi byte không an toàn trong chunk_file() và extract_signature() gây ra hybrid_search, search_chunks và get_chunk_stats sập khi xử lý các tệp có ký tự UTF-8 đa byte (emoji, CJK, ký tự có dấu). Tất cả việc cắt byte hiện sử dụng content.get() an toàn với dự phòng.
  • Thao tác sắp xếp an toàn NaN - Đã sửa 5 vị trí trong các mô-đun tìm kiếm, embeddings, git, chỉ mục và trích xuất nơi partial_cmp().unwrap() sẽ panic trên các giá trị float NaN. Tất cả các sắp xếp hiện sử dụng unwrap_or(Ordering::Equal).
  • Chunking phòng thủ theo chiều sâu - Đã thêm trình bao bọc catch_unwind xung quanh tất cả các vòng lặp chunk_file() trên toàn kho để panic trong một tệp sẽ bỏ qua tệp đó thay vì sập toàn bộ máy chủ MCP.
  • Đại tu giao diện trực quan hóa - SPA đầy đủ với định tuyến HashRouter, thanh bên cây tệp, trình xem mã được tô sáng cú pháp, bảng điều khiển và các trang tổng quan theo kho
  • Hiệu suất chế độ xem đồ thị - Đồ thị nhập khẩu hiện sử dụng dữ liệu chỉ mục được lưu trong bộ nhớ cache thay vì quét hệ thống tệp; đồ thị ký hiệu lặp qua bộ nhớ cache tệp trực tiếp thay vì khứ hồi markdown; tất cả các chế độ xem tôn trọng max_nodes để kết thúc sớm
  • Đồ thị luồng điều khiển thực - Chế độ xem luồng hiện sử dụng trình xây dựng CFG thực (cfg::analyze_function) với các khối cơ bản phù hợp, điều kiện nhánh và cạnh lặp lại thay vì stub khối đơn
  • Phân chia ngân sách đồ thị kết hợp - Chế độ xem kết hợp phân bổ ngân sách nút 60/40 giữa đồ thị lời gọi và nhập khẩu để có kết quả cân bằng
  • Sửa #14: kích thước embedding có thể cấu hình - Đã thêm đối số CLI --neural-dimension và tra cứu default_dimension_for_model() để các mô hình như text-embedding-3-large sử dụng kích thước chính xác (3072) thay vì 1536 được mã hóa cứng
  • Sửa #13: xây dựng giao diện Nix - Đã thêm derivation frontendDist trong flake.nix sử dụng buildNpmPackage để nix profile install github:postrv/narsil-mcp#with-frontend hoạt động
  • Quy tắc bảo mật Rust - 18 quy tắc mới (RUST-004 đến RUST-021) bao gồm chèn lệnh, transmute, ranh giới FFI, TOCTOU, ReDoS, static mut, SSRF, v.v.
  • Quy tắc bảo mật Elixir - 18 quy tắc mới (EX-001 đến EX-018) bao gồm cạn kiệt atom, giải tuần tự hóa binary_to_term, chèn Code.eval, chèn SQL Ecto, Phoenix XSS, bảo mật phân phối Erlang
  • Đã di chuyển từ serde_yaml sang serde-saphyr - serde_yaml không được dùng nữa được thay thế bằng thư viện YAML được bảo trì tích cực, không panic
  • Favicon tùy chỉnh - Giao diện hiện sử dụng biểu tượng thương hiệu narsil-mcp thay vì logo Vite mặc định
  • Bảo mật phụ thuộc - Đã cập nhật time lên 0.3.47 (RUSTSEC-2026-0009), bytes lên 1.11.1 (RUSTSEC-2026-0007)
  • Số lượng kiểm thử tăng từ 1.611 lên 1.763 (+152 kiểm thử)

v1.5.x

  • Giải quyết đồ thị lời gọi xác định - Truyền gợi ý phạm vi phân biệt giải quyết callee (ví dụ: App::run() giải quyết chính xác thành src/app/mod.rs::run)
  • 8 bản sửa phân tích đồ thị - Khóa nút đủ điều kiện, lọc hotspot, xử lý biểu thức CFG, phân tích cú pháp đường dẫn nhập khẩu
  • Cải tiến Nix flake - Trợ giúp mkPkg DRY, loại bỏ các framework macOS không cần thiết, chiến lược kiểm thử --lib cho các bản dựng sandbox

v1.4.x

  • Đồ thị tri thức SPARQL / RDF - Truy vấn dữ liệu thông minh mã với SPARQL qua Oxigraph
  • Đồ thị ngữ cảnh mã (CCG) - 12 công cụ cho các biểu diễn cơ sở mã chuẩn hóa, có thể tiêu thụ bằng AI với các lớp phân tầng (L0-L3)
  • Phân tích bảo mật nhận biết kiểu - Theo dõi taint nâng cao với suy luận kiểu và triển khai trait
  • CFG/DFG đa ngôn ngữ - Phân tích luồng điều khiển và luồng dữ liệu mở rộng sang Go, Java, C#, Kotlin
  • Quét Infrastructure as Code - Các quy tắc iac.yaml mới cho Terraform, CloudFormation, Kubernetes
  • Quy tắc bảo mật theo ngôn ngữ cụ thể - Các quy tắc mới cho Go, Java, C#, Kotlin, Bash
  • 6 ngôn ngữ mới - Erlang, Elm, Fortran, PowerShell, Nix, Groovy
  • Tổng cộng 90 công cụ - Tăng từ 79 với các khả năng SPARQL, CCG và phân tích mới

v1.2.x

  • Tham số exclude_tests - 22 công cụ hỗ trợ lọc các tệp kiểm thử
  • Gói npm - Cài đặt qua npm install -g narsil-mcp

v1.1.x

  • Phân phối đa nền tảng - Cài đặt qua Homebrew, Scoop, npm, Cargo hoặc tải xuống trực tiếp
  • Cấu hình sẵn công cụ - Các cấu hình tối thiểu, cân bằng, đầy đủ và tập trung bảo mật
  • Tự động phát hiện trình soạn thảo - Các mặc định tối ưu cho Zed, VS Code, Claude Desktop
  • Trình hướng dẫn thiết lập tương tác - narsil-mcp config init để cấu hình dễ dàng
  • Hỗ trợ 32 ngôn ngữ - Đã thêm Dart, Julia, R, Perl, Zig, v.v.
  • Cải thiện hiệu suất - Khởi động nhanh hơn với lập chỉ mục nền

v1.0.x

  • Tìm kiếm ngữ nghĩa thần kinh - Tìm mã tương tự bằng Voyage AI hoặc OpenAI embeddings
  • Suy luận kiểu - Suy luận kiểu trong Python/JavaScript/TypeScript mà không cần công cụ bên ngoài
  • Phân tích taint đa ngôn ngữ - Quét bảo mật cho PHP, Java, C#, Ruby, Kotlin
  • Bản dựng WASM - Chạy trong trình duyệt cho các sân chơi mã và công cụ giáo dục
  • 147 quy tắc bảo mật được đóng gói - Phát hiện OWASP, CWE, crypto, bí mật, Rust, Elixir
  • Bao gồm cấu hình IDE - Các mẫu Claude Desktop, Cursor, VS Code, Zed

Giấy phép

Được cấp phép theo một trong hai:

tùy theo lựa chọn của bạn.

Ghi công

Được xây dựng với:

  • tree-sitter - Phân tích cú pháp gia tăng
  • tantivy - Tìm kiếm toàn văn
  • tokio - Thời gian chạy không đồng bộ
  • rayon - Song song dữ liệu
  • serde - Tuần tự hóa