Narsil MCP
chính thứcMá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_symbolsvà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_securityvà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_graphvà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_codevà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
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ăng | narsil-mcp | XRAY | Serena | GitHub MCP |
|---|---|---|---|---|
| Ngôn ngữ | 32 | 4 | 30+ (LSP) | N/A |
| Tìm kiếm Neural | Có | Không | Không | Không |
| Phân tích Taint | Có | Không | Không | Không |
| SBOM/Giấy phép | Có | Không | Không | Một phần |
| Ngoại tuyến/Cục bộ | Có | Có | Có | Không |
| WASM/Trình duyệt | Có | Không | Không | Không |
| Đồ thị gọi hàm | Có | Một phần | Không | Không |
| Suy luận kiểu | Có | Không | Không | Khô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ộng | Ký hiệu được trích xuất |
|---|---|---|
| Rust | .rs | hàm, struct, enum, trait, impl, mod |
| Python | .py, .pyi | hàm, lớp |
| JavaScript | .js, .jsx, .mjs | hàm, lớp, phương thức, biến |
| TypeScript | .ts, .tsx | hàm, lớp, interface, kiểu, enum |
| Go | .go | hàm, phương thức, kiểu |
| C | .c, .h | hàm, struct, enum, typedef |
| C++ | .cpp, .cc, .hpp | hàm, lớp, struct, namespace |
| Java | .java | phương thức, lớp, interface, enum |
| C# | .cs | phương thức, lớp, interface, struct, enum, delegate, namespace |
| Bash | .sh, .bash, .zsh | hàm, biến |
| Ruby | .rb, .rake, .gemspec | phương thức, lớp, module |
| Kotlin | .kt, .kts | hàm, lớp, đối tượng, interface |
| PHP | .php, .phtml | hàm, phương thức, lớp, interface, trait |
| Swift | .swift | lớp, struct, enum, protocol, hàm |
| Verilog/SystemVerilog | .v, .vh, .sv, .svh | module, task, hàm, interface, lớp |
| Scala | .scala, .sc | lớp, đối tượng, trait, hàm, val |
| Lua | .lua | hàm, phương thức |
| Haskell | .hs, .lhs | hàm, kiểu dữ liệu, lớp kiểu |
| Elixir | .ex, .exs | module, hàm |
| Clojure | .clj, .cljs, .cljc, .edn | danh sách (AST cơ bản) |
| Dart | .dart | hàm, lớp, phương thức |
| Julia | .jl | hàm, module, struct |
| R | .R, .r, .Rmd | hàm |
| Perl | .pl, .pm, .t | hàm, gói |
| Zig | .zig | hàm, biến |
| Erlang | .erl, .hrl | hàm, module, record |
| Elm | .elm | hàm, kiểu |
| Fortran | .f90, .f95, .f03, .f08, .f, .for, .fpp | chương trình, chương trình con, hàm, module |
| PowerShell | .ps1, .psm1, .psd1 | hàm, lớp, enum |
| Nix | .nix | ràng buộc |
| Groovy | .groovy, .gradle | phươ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ăng | Mô 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 |
wasm | Bả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
--graphyêu cầu tệp nhị phân được xây dựng với--features graph. Nếu bạn truyền--graphcho 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 graphNếu bạn truyền
--graphcho 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àoVOYAGE_API_KEY- Khóa API cụ thể cho Voyage AIOPENAI_API_KEY- Khóa API cụ thể cho OpenAIEMBEDDING_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ảo | Cấu hình | Công cụ | Mã thông báo ngữ cảnh | Tại sao |
|---|---|---|---|---|
| Zed | Tối thiểu | 26 | ~4.686 | Khởi động nhanh, ngữ cảnh tối thiểu |
| VS Code | Cân bằng | 51 | ~8.948 | Cân bằng tính năng tốt |
| Claude Desktop | Đầy đủ | 90 | ~12.001 | Khả 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:
- Hướng dẫn cấu hình - Tài liệu tham khảo cấu hình đầy đủ
- Hướng dẫn cài đặt - Cài đặt theo nền tảng cụ thể
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ế độ xem | Mô tả |
|---|---|
| Đồ thị gọi hàm | Mối quan hệ gọi hàm với kiểm soát độ sâu và lọc hướng |
| Đồ thị import | Phụ thuộc import cấp tệp trên toàn bộ mã nguồn |
| Đồ thị ký hiệu | Tấ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ển | CFG 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_types | Lấy kiểu suy luận cho tất cả biến trong một hàm |
check_type_errors | Tìm sự không khớp kiểu tiềm ẩn |
get_typed_taint_flow | Phâ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ần | Mô tả |
|---|---|
/narsil:security-scan | Chạy kiểm tra bảo mật toàn diện |
/narsil:explore | Khá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-feature | Tìm nơi các tính năng được triển khai |
/narsil:supply-chain | Phân tích bảo mật chuỗi cung ứng |
| Kỹ năng | Hướng dẫn Claude sử dụng hiệu quả 90 công cụ |
| Cấu hình MCP | Tự độ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ăng | Không có narsil-mcp | Có narsil-mcp |
|---|---|---|
| Quét bảo mật | Cơ 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úc | Thủ công | Các lớp tự động CCG L0/L1/L2 |
| Phân tích phụ thuộc | cargo 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ẫn | Mô tả |
|---|---|
| Bắt đầu | Thiết lập nhanh và các lệnh gọi công cụ đầu tiên |
| Hiểu một Codebase | Khám phá các dự án chưa quen thuộc |
| Sửa lỗi | Gỡ lỗi với đồ thị gọi và phân tích taint |
| Kiểm tra bảo mật | Tì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_repos | Liệ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_structure | Lấy cây thư mục với biểu tượng tệp và kích thước |
get_file | Lấy nội dung tệp với phạm vi dòng tùy chọn |
get_excerpt | Trích xuất mã xung quanh các dòng cụ thể với ngữ cảnh |
reindex | Kích hoạt lập chỉ mục lại các kho lưu trữ |
discover_repos | Tự động khám phá các kho lưu trữ trong một thư mục |
validate_repo | Kiểm tra xem đường dẫn có phải là kho lưu trữ hợp lệ không |
get_index_status | Hiể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_symbols | Tìm struct, class, hàm theo loại/mẫu |
get_symbol_definition | Lấy mã nguồn ký hiệu với ngữ cảnh xung quanh |
find_references | Tìm tất cả tham chiếu đến một ký hiệu |
get_dependencies | Phân tích các import và phần phụ thuộc |
workspace_symbol_search | Tìm kiếm mờ các ký hiệu trong toàn bộ không gian làm việc |
find_symbol_usages | Sử dụng ký hiệu xuyên tệp với các import |
get_export_map | Lấ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_code | Tìm kiếm từ khóa với xếp hạng mức độ liên quan |
semantic_search | Tìm kiếm ngữ nghĩa xếp hạng BM25 |
hybrid_search | Kết hợp BM25 + TF-IDF với hợp nhất thứ hạng |
search_chunks | Tìm kiếm trên các khối mã nhận biết AST |
find_similar_code | Tìm mã tương tự một đoạn mã (TF-IDF) |
find_similar_to_symbol | Tì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_chunks | Lấy các khối nhận biết AST cho một tệp |
get_chunk_stats | Thống kê về các khối mã |
get_embedding_stats | Thố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_search | Tì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_clones | Tìm các bản sao ngữ nghĩa Loại-3/4 của một hàm |
get_neural_stats | Thố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_graph | Lấy đồ thị gọi cho kho lưu trữ/hàm |
get_callers | Tìm các hàm gọi một hàm |
get_callees | Tìm các hàm được gọi bởi một hàm |
find_call_path | Tìm đường đi giữa hai hàm |
get_complexity | Lấy độ phức tạp cyclomatic/nhận thức |
get_function_hotspots | Tì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_flow | Lấy CFG hiển thị các khối cơ bản và nhánh |
find_dead_code | Tì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_definitions | Phép gán nào đến từng điểm |
find_uninitialized | Biến được sử dụng trước khi khởi tạo |
find_dead_stores | Phép gán không bao giờ được đọc |
Suy luận kiểu (Python/JavaScript/TypeScript)
| Công cụ | Mô tả |
|---|---|
infer_types | Suy 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_errors | Tìm lỗi kiểu tiềm ẩn mà không chạy mypy/tsc |
get_typed_taint_flow | Phâ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_graph | Xây dựng và phân tích đồ thị import |
find_circular_imports | Phát hiện phụ thuộc vòng tròn |
get_incremental_status | Câ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_vulnerabilities | Tìm SQL injection, XSS, command injection, path traversal |
trace_taint | Truy vết luồng dữ liệu tainted từ một nguồn |
get_taint_sources | Liệ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_security | Quét với các quy tắc bảo mật (OWASP, CWE, crypto, secrets) |
check_owasp_top10 | Quét các lỗ hổng OWASP Top 10 2021 |
check_cwe_top25 | Quét các điểm yếu CWE Top 25 |
explain_vulnerability | Lấy giải thích chi tiết về lỗ hổng |
suggest_fix | Lấ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_sbom | Tạo SBOM (CycloneDX/SPDX/JSON) |
check_dependencies | Kiểm tra các lỗ hổng đã biết (cơ sở dữ liệu OSV) |
check_licenses | Phân tích giấy phép cho các vấn đề tuân thủ |
find_upgrade_path | Tì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_blame | Git blame cho tệp |
get_file_history | Lịch sử commit cho tệp |
get_recent_changes | Các commit gần đây trong kho lưu trữ |
get_hotspots | Các tệp có mức thay đổi và độ phức tạp cao |
get_contributors | Người đóng góp cho kho lưu trữ/tệp |
get_commit_diff | Diff cho commit cụ thể |
get_symbol_history | Các commit đã thay đổi một ký hiệu |
get_branch_info | Nhánh hiện tại và trạng thái |
get_modified_files | Cá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_info | Thông tin kiểu và tài liệu |
get_type_info | Thông tin kiểu chính xác |
go_to_definition | Tì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_repo | Nhân bản và lập chỉ mục kho lưu trữ GitHub |
list_remote_files | Liệt kê tệp qua GitHub API |
get_remote_file | Tìm nạp tệp qua GitHub API |
Số liệu
| Công cụ | Mô tả |
|---|---|
get_metrics | Thố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_query | Thực thi truy vấn SPARQL trên đồ thị tri thức RDF |
list_sparql_templates | Liệt kê các mẫu truy vấn SPARQL khả dụng |
run_sparql_template | Thự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_manifest | Manifest Lớp 0 (~1-2KB JSON-LD) - danh tính kho lưu trữ, số lượng |
export_ccg_manifest | Xuất manifest Lớp 0 ra tệp |
export_ccg_architecture | Kiến trúc Lớp 1 (~10-50KB JSON-LD) - mô-đun, API |
export_ccg_index | Chỉ mục ký hiệu Lớp 2 (~100-500KB N-Quads nén gzip) |
export_ccg_full | Chi tiết đầy đủ Lớp 3 (~1-20MB N-Quads nén gzip) |
export_ccg | Xuất tất cả các lớp CCG dưới dạng một gói |
query_ccg | Truy vấn CCG sử dụng SPARQL |
get_ccg_acl | Tạo kiểm soát truy cập WebACL cho các lớp CCG |
get_ccg_access_info | Lấy thông tin cấp truy cập CCG |
import_ccg | Nhập lớp CCG từ URL hoặc tệp |
import_ccg_from_registry | Nhậ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 2021cwe-top25.yaml- CWE Top 25 Điểm yếu nguy hiểm nhấtcrypto.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ào | Thời gian | Thông lượng |
|---|---|---|---|
| Rust (tệp lớn) | 278 KB | 131 µs | 1.98 GiB/s |
| Rust (tệp trung bình) | 27 KB | 13.5 µs | 1.89 GiB/s |
| Python | ~4 KB | 16.7 µs | - |
| TypeScript | ~5 KB | 13.9 µs | - |
| Hỗn hợp (5 tệp) | ~15 KB | 57 µs | - |
Độ trễ tìm kiếm
| Thao tác | Kích thước kho ngữ liệu | Thời gian |
|---|---|---|
| Khớp chính xác ký hiệu | 1.000 ký hiệu | 483 ns |
| Khớp tiền tố ký hiệu | 1.000 ký hiệu | 2.7 µs |
| Khớp mờ ký hiệu | 1.000 ký hiệu | 16.5 µs |
| Toàn văn BM25 | 1.000 tài liệu | 80 µs |
| Tương tự TF-IDF | 1.000 tài liệu | 130 µs |
| Kết hợp (BM25+TF-IDF) | 1.000 tài liệu | 151 µs |
Lập chỉ mục đầu cuối
| Kho lưu trữ | Tệp | Ký hiệu | Thời gian | Bộ nhớ |
|---|---|---|---|---|
| narsil-mcp (kho này) | 53 | 1.733 | 220 ms | ~50 MB |
| rust-analyzer | 2.847 | ~50K | 2.1s | 89 MB |
| nhân linux | 78.000+ | ~500K | 45s | 2.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=truecó nghĩa là tính năng được biên dịch VÀ được bậtgraph=falsecó nghĩa là tính năng không được biên dịch, HOẶC--graphkhô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 rahybrid_search,search_chunksvàget_chunk_statssậ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ụngcontent.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ụngunwrap_or(Ordering::Equal). - Chunking phòng thủ theo chiều sâu - Đã thêm trình bao bọc
catch_unwindxung quanh tất cả các vòng lặpchunk_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-dimensionvà tra cứudefault_dimension_for_model()để các mô hình nhưtext-embedding-3-largesử 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
frontendDisttrongflake.nixsử dụngbuildNpmPackageđểnix profile install github:postrv/narsil-mcp#with-frontendhoạ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_yamlsangserde-saphyr-serde_yamlkhô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
timelên 0.3.47 (RUSTSEC-2026-0009),byteslê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ànhsrc/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
mkPkgDRY, loại bỏ các framework macOS không cần thiết, chiến lược kiểm thử--libcho 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.yamlmớ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:
- Apache License, Phiên bản 2.0 (LICENSE-APACHE hoặc http://www.apache.org/licenses/LICENSE-2.0)
- Giấy phép MIT (LICENSE-MIT hoặc http://opensource.org/licenses/MIT)
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