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?
- Tìm kiếm ký hiệu trên 32 ngôn ngữ — Tìm kiếm hàm, lớp hoặc giao diện theo tên hoặc mẫu sử dụng
find_symbolshoặcworkspace_symbol_search. - Theo dõi dữ liệu bị nhiễm độc để kiểm tra bảo mật — Theo dõi đầu vào của người dùng trong toàn bộ mã nguồn với
trace_taintvà phát hiện các lỗ hổng tiêm nhiễm như SQLi hoặc XSS. - Phân tích mối quan hệ gọi hàm — Lập bản đồ các hàm gọi, hàm được gọi và đường dẫn giữa các hàm với
get_call_graph,get_callersvàfind_call_path. - Tạo bảng kê khai phần mềm — Xuất SBOM CycloneDX hoặc SPDX và kiểm tra các phụ thuộc với cơ sở dữ liệu OSV bằng
generate_sbomvàcheck_dependencies. - Suy luận kiểu dữ liệu mà không cần công cụ kiểm tra bên ngoài — Lấy kiểu dữ liệu suy luận cho các biến Python, JavaScript hoặc TypeScript bằng
infer_typesvà tìm các lỗi kiểu tiềm ẩn. - Truy vấn mã nguồn như một đồ thị tri thức — Chạy truy vấn SPARQL trên đồ thị RDF hoặc xuất các lớp CCG phân tầng cho AI sử dụng với
sparql_queryvàexport_ccg.
Tài liệu
narsil-mcp
Máy chủ MCP nhanh như chớp, ưu tiên quyền riêng tư cho trí tuệ mã nguồn sâu
Máy chủ MCP (Giao thức Ngữ cảnh Mô hình) được xây dựng bằng Rust, cung cấp cho trợ lý AI khả năng hiểu mã nguồn sâu 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 | 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
- 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, phạm vi OWASP/CWE
- Bảo mật Chuỗi Cung ứng - Tạo SBOM, kiểm toán 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ớ, tệp nhị phân đơn (~30MB)
- Sức mạnh Tree-sitter - Phân tích chính xác, tăng dần cho 32 ngôn ngữ
- Không cần cấu hình - Chỉ đến kho lưu trữ và chạy
- 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
- Ưu tiên Bảo mật - 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 đang tiến hành 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, cấu trúc, 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, giao diện, kiểu, enum |
| Go | .go | hàm, phương thức, kiểu |
| C | .c, .h | hàm, cấu trúc, enum, typedef |
| C++ | .cpp, .cc, .hpp | hàm, lớp, cấu trúc, không gian tên |
| Java | .java | phương thức, lớp, giao diện, enum |
| C# | .cs | phương thức, lớp, giao diện, cấu trúc, enum, delegate, không gian tên |
| 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, giao diện |
| PHP | .php, .phtml | hàm, phương thức, lớp, giao diện, trait |
| Swift | .swift | lớp, cấu trúc, enum, giao thức, hàm |
| Verilog/SystemVerilog | .v, .vh, .sv, .svh | module, tác vụ, hàm, giao diện, 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, cấu trúc |
| 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, bản ghi |
| 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, giao diện, 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 (tất cả nền tảng):
cargo install narsil-mcp
Node.js/npm (tất cả 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 chạm
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 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 1.70 trở lên
- Trên Windows: Visual Studio Build Tools với "Phát triển Desktop với C++"
# Clone and build
git clone [email protected]: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
# For browser/WASM usage
cargo build --release --target wasm32-unknown-unknown --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 trình duyệt (không hệ thống tệp, git) | ~3MB |
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 cụ thể cho từng nền tảng, hãy 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 kích hoạt truy vấn SPARQL và các công cụ Đồ thị Ngữ cảnh Mã (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ô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 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 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 nó 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 tại vẫn tiếp tục hoạt động - cấu hình là 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
Phát hiện Trình soạn thảo Tự động
narsil-mcp phát hiện trình soạn thảo của bạn và tự động áp dụng cài đặt trước tối ưu:
| Trình soạn thảo | Cài đặt trước | Công cụ | Token Ngữ cảnh | Lý do |
|---|---|---|---|---|
| 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 Token:
- Cài đặt trước Tối thiểu: Ít hơn 61% token so với Đầy đủ
- Cài đặt trước Cân bằng: Ít hơn 25% token so với Đầy đủ
Cài đặt trước
Chọn cài đặt trước 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 - Tham khảo cấu hình đầy đủ
- Hướng dẫn Cài đặt - Cài đặt cụ thể cho từng nền tảng
Giao diện Trực quan hóa
Khám phá đồ thị gọi, nhập khẩu, 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 | Mối quan hệ gọi hàm với kiểm soát độ sâu và lọc hướng |
| Đồ thị Nhập khẩu | Phụ thuộc nhập khẩu 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 |
| Lai | Đồ thị gọi + nhập khẩu 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 ngược vòng lặp |
Tính năng:
- Đồ thị Cytoscape.js tương tác với kéo, thu phóng và nhấp đúp để đi sâu
- Lớp phủ chỉ số độ 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 có thể chia sẻ, tiến/lùi 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, phụ trợ 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 được suy luận cho tất cả biến trong một hàm |
check_type_errors | Tìm các điểm 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 tác tử quy mô lớn, narsil-mcp có thể được sử dụng thông qua Forgemax — một cổng MCP Chế độ Mã thu gọn tất cả 90 công cụ chỉ còn 2 (search + execute), giảm chi phí lược đồ công cụ từ ~12.000 token xuống ~1.000.
# Install Forgemax
cargo install forgemax
# Run narsil-mcp through Forgemax (uses forge.toml in repo root)
forgemax
Tệp 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 mã JavaScript gọi thông qua các đối tượng proxy có kiểu bên trong một isolate V8 đượ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 đồng thời với nhiều máy chủ MCP, vì nó giữ cho tổng ngữ cảnh công cụ nhỏ gọn và có thể dự đoán được.
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 sẽ tự động lập chỉ mục thư mục hiện tại. Claude giờ đây có quyền truy cập vào 90 công cụ thông minh mã nguồn.
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.
Đối với 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 kích hoạt.
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"narsil-mcp": {
"command": "narsil-mcp",
"args": ["--repos", "/path/to/your/projects", "--git"]
}
}
}
Zed (settings.json → Máy chủ ngữ cảnh):
{
"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 thời gian chờ khởi tạo.
Plugin Claude Code
Đối với người dùng Claude Code, chúng tôi cung cấp một plugin với các lệnh slash 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
Bao gồm những gì:
| 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 cơ sở mã không 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 90 công cụ hiệu quả |
| 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 để có 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 có sẵn narsil-mcp, Ralph có được các khả năng thông minh mã nguồn nâng cao:
| Tính năng | Không có narsil-mcp | Với 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ị cuộc 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 tròn |
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 giảm cấp một cách nhẹ nhàng 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 đều 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 đủ.
Hướng dẫn & Playbook
Xem docs/playbooks để có 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 cuộc gọi công cụ đầu tiên |
| Hiểu một cơ sở mã | Khám phá các dự án không quen thuộc |
| Sửa lỗi | Gỡ lỗi với đồ thị cuộc gọi và phân tích lan truyền |
| Kiểm tra bảo mật | Tìm lỗ hổng với quét OWASP/CWE |
| Xem xét mã | Xem xét 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)
narsil-mcp có thể chạy hoàn toàn trong trình duyệt thông qua WebAssembly - hoàn hảo cho các IDE dựa trên trình duyệt, công cụ xem xét mã hoặc nền tảng giáo dục.
npm install @narsil-mcp/wasm
import { CodeIntelClient } from '@narsil-mcp/wasm';
const client = new CodeIntelClient();
await client.init();
client.indexFile('src/main.rs', rustSourceCode);
const symbols = client.findSymbols('Handler');
Tài liệu đầy đủ: Xem docs/wasm.md để biết hướng dẫn xây dựng, ví dụ React và tham khảo API.
Công cụ có sẵn (90)
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 phát hiện 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 đã kích hoạt |
Tìm kiếm & Điều hướng Ký hiệu
| Công cụ | Mô tả |
|---|---|
find_symbols | Tìm struct, lớp, hàm theo loại/mẫu |
get_symbol_definition | Lấy nguồn ký hiệu với ngữ cảnh xung quanh |
find_references | Tìm tất cả các tham chiếu đến một ký hiệu |
get_dependencies | Phân tích nhập và phụ thuộc |
workspace_symbol_search | Tìm kiếm mờ ký hiệu trên toàn không gian làm việc |
find_symbol_usages | Sử dụng ký hiệu xuyên tệp với nhập |
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 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 xếp hạng |
search_chunks | Tìm kiếm trên các đoạn 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 đoạn Nhận biết AST
| Công cụ | Mô tả |
|---|---|
get_chunks | Lấy các đoạn nhận biết AST cho một tệp |
get_chunk_stats | Thống kê về các đoạn mã |
get_embedding_stats | Thống kê chỉ mục nhúng |
Tìm kiếm Ngữ nghĩa Neural (yêu cầu --neural)
| Công cụ | Mô tả |
|---|---|
neural_search | Tìm kiếm ngữ nghĩa sử dụng nhúng neural (tìm mã tương tự ngay cả với tên khác) |
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 neural |
Phân tích Đồ thị Cuộc gọi (yêu cầu --call-graph)
| Công cụ | Mô tả |
|---|---|
get_call_graph | Lấy đồ thị cuộc 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 dẫn giữa hai hàm |
get_complexity | Lấy độ phức tạp chu trình/nhận thức |
get_function_hotspots | Tìm các hàm có 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 | Những phép gán nào đến được mỗi điểm |
find_uninitialized | Các biến được sử dụng trước khi khởi tạo |
find_dead_stores | Các 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 cần chạy mypy/tsc |
get_typed_taint_flow | Phân tích lan truyền nâng cao kết hợp luồng dữ liệu với suy luận kiểu |
Đồ thị Nhập/Phụ thuộc
| Công cụ | Mô tả |
|---|---|
get_import_graph | Xây dựng và phân tích đồ thị nhập |
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 Lan truyền
| Công cụ | Mô tả |
|---|---|
find_injection_vulnerabilities | Tìm SQL injection, XSS, command injection, path traversal |
trace_taint | Theo dõi luồng dữ liệu bị nhiễm từ một nguồn |
get_taint_sources | Liệt kê các nguồn nhiễm (đầ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 | Nhận giải thích lỗ hổng chi tiết |
suggest_fix | Nhận đề 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 dẫn nâng cấp an toàn cho các phụ thuộc dễ bị tấn cô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ó tỷ lệ 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 | Sao chép và lập chỉ mục kho lưu trữ GitHub |
list_remote_files | Liệt kê tệp qua API GitHub |
get_remote_file | Lấy tệp qua API GitHub |
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 đối với đồ thị tri thức RDF |
list_sparql_templates | Liệt kê các mẫu truy vấn SPARQL có sẵn |
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 cơ sở mã được tiêu chuẩn hóa, có thể tiêu thụ bởi AI trong các lớp phân cấp.
| Công cụ | Mô tả |
|---|---|
get_ccg_manifest | Lớp 0 manifest (~1-2KB JSON-LD) - danh tính kho lưu trữ, số lượng |
export_ccg_manifest | Xuất Lớp 0 manifest ra tệp |
export_ccg_architecture | Lớp 1 kiến trúc (~10-50KB JSON-LD) - mô-đun, API |
export_ccg_index | Lớp 2 chỉ mục ký hiệu (~100-500KB N-Quads đã nén) |
export_ccg_full | Lớp 3 chi tiết đầy đủ (~1-20MB N-Quads đã nén) |
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 bằ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/:
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 cứng)secrets.yaml- Phát hiện bí mật (khóa API, mật khẩu, token) 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, deserialization, chèn LDAP)csharp.yaml- Vấn đề bảo mật C# (deserialization, XSS, path traversal)kotlin.yaml- Các mẫu Kotlin/Android (WebView, intents, secrets)bash.yaml- Lỗ hổng shell script (chèn lệnh, eval)
Hạ tầng & Cấu hình:
iac.yaml- Hạ tầng dưới dạng Mã (Terraform, CloudFormation, Kubernetes)config.yaml- Bảo mật tệp cấu hình (thông tin xác thực cứng, cài đặt không an toàn)
Có thể tải các quy tắc tùy chỉnh 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 năng
Đ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 đồng 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 (repo này) | 53 | 1,733 | 220 ms | ~50 MB |
| rust-analyzer | 2,847 | ~50K | 2.1s | 89 MB |
| linux kernel | 78,000+ | ~500K | 45s | 2.1 GB |
Các chỉ số chính:
- Phân tích cú pháp Tree-sitter: thông lượng duy trì ~2 GiB/s
- 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 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
Khắc phục sự cố
Lỗi xây dựng 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 xây dựng:
# 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 neural
# 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
Vấn đề bộ nhớ với repo 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 dùng tệp nhị phân không được biên dịch với tính năng graph. Để sửa:
# 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à tính năng riêng biệt? Tính năng graph thêm cơ sở dữ liệu Oxigraph RDF (~5MB kích thước nhị phân bổ sung) không cần thiết cho hầu hết 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=truenghĩa là tính năng được biên dịch VÀ bậtgraph=falsenghĩ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)
- Phân đoạn mã nhận biết AST
- Tích hợp Git blame/lịch sử
- Phân tích đồ thị cuộc gọi với 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 định nghĩa tiếp cận
- Phát hiện mã chết và lưu trữ chết
- Phân tích nhiễm độc cho lỗ hổng chèn
- Công cụ quy tắc bảo mật (OWASP, CWE, crypto, secrets)
- 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 với phát hiện phụ thuộc vòng
- Phân giải ký hiệu đa ngôn ngữ
- Lập chỉ mục tăng dần với cây Merkle
- Duy 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 luồng
Có gì mới
v1.6.x (Hiện tại)
- Phân đoạn chống sập - Sửa lỗi cắt chuỗi không an toàn ở cấp byte trong
chunk_file()vàextract_signature()gây ra sự cốhybrid_search,search_chunks, vàget_chunk_statskhi xử lý tệp có ký tự UTF-8 đa byte (emoji, CJK, ký tự có dấu). Mọi cắt byte giờ 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, index, và extract nơi
partial_cmp().unwrap()sẽ hoảng loạn với giá trị float NaN. Mọi sắp xếp giờ dùngunwrap_or(Ordering::Equal). - Phân đoạn phòng thủ chiều sâu - Thêm bọc
catch_unwindquanh tất cả vòng lặpchunk_file()toàn repo để một sự hoảng loạn trong một tệp sẽ bỏ qua nó thay vì làm 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ã tô sáng cú pháp, bảng điều khiển, và các trang tổng quan từng repo
- Hiệu năng xem đồ thị - Đồ thị nhập giờ dùng dữ liệu chỉ mục đã lưu thay vì duyệt hệ thống tệp; đồ thị ký hiệu lặp trực tiếp bộ nhớ đệm tệp thay vì vòng lặp markdown; mọi 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 giờ dùng trình xây dựng CFG thực (
cfg::analyze_function) với các khối cơ bản, điều kiện nhánh, và cạnh ngược vòng lặp thay vì stub đơn khối - 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ị cuộc gọi và nhập để có kết quả cân bằng
- Sửa #14: chiều 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-largedùng đúng chiều (3072) thay vì cứng 1536 - Sửa #13: xây dựng giao diện Nix - Thêm dẫn xuất
frontendDisttrongflake.nixdù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à hơn nữa
- 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, deserialization 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- Thay thếserde_yamlđã lỗi thời bằng thư viện YAML được bảo trì tích cực, không hoảng loạn - Favicon tùy chỉnh - Giao diện giờ 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
- Phân giải đồ thị cuộc gọi xác định - Lan truyền gợi ý phạm vi làm rõ phân giải callee (ví dụ:
App::run()phân giải đúng thànhsrc/app/mod.rs::run) - 8 sửa lỗi phân tích đồ thị - Khóa nút đủ điều kiện, lọc điểm nóng, xử lý biểu thức CFG, phân tích đường dẫn nhập
- Cải tiến Nix flake - Trình trợ giúp
mkPkgDRY, loại bỏ framework macOS không cần thiết, chiến lược kiểm thử--libcho xây 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 biểu diễn cơ sở mã tiêu chuẩn, tiêu thụ bởi AI với các lớp phân cấp (L0-L3)
- Phân tích bảo mật nhận biết kiểu - Theo dõi nhiễm độc 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 Hạ tầng dưới dạng Mã - Quy tắc
iac.yamlmới cho Terraform, CloudFormation, Kubernetes - Quy tắc bảo mật theo ngôn ngữ cụ thể - 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 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 ra 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 trực tiếp
- Cài đặt trước công cụ có thể cấu hình - Cài đặt trước 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 - 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à hơn nữa
- Cải thiện hiệu năng - 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 neural - Tìm mã tương tự dùng embedding Voyage AI hoặc OpenAI
- Suy luận kiểu - Suy luận kiểu trong Python/JavaScript/TypeScript không cần công cụ ngoài
- Phân tích nhiễm độc đa ngôn ngữ - Quét bảo mật cho PHP, Java, C#, Ruby, Kotlin
- Xây dựng WASM - Chạy trong trình duyệt cho sân chơi mã và công cụ giáo dục
- 147 quy tắc bảo mật đi kèm - Phát hiện OWASP, CWE, crypto, secrets, Rust, Elixir
- Bao gồm cấu hình IDE - Mẫu Claude Desktop, Cursor, VS Code, Zed
Giấy phép
Được cấp phép theo một trong:
- Giấy phép Apache, 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 chọn của bạn.
Ghi công
Xây dựng với:
- tree-sitter - Phân tích cú pháp tăng dần
- tantivy - Tìm kiếm toàn văn
- tokio - Thời gian chạy bất đồng bộ
- rayon - Song song dữ liệu
- serde - Tuần tự hóa