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?

  • 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_symbols hoặc workspace_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_taint và 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_callersfind_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_sbomcheck_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_types và 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_queryexport_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

License Rust Tests MCP

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ăngnarsil-mcpXRAYSerenaGitHub MCP
Ngôn ngữ32430+ (LSP)N/A
Tìm kiếm NeuralKhôngKhôngKhông
Phân tích TaintKhôngKhôngKhông
SBOM/Giấy phépKhôngKhôngMột phần
Ngoại tuyến/Cục bộKhông
WASM/Trình duyệtKhôngKhôngKhông
Đồ thị GọiMột phầnKhôngKhông
Suy luận KiểuKhô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
  • 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ộngKý hiệu được Trích xuất
Rust.rshàm, cấu trúc, 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, giao diện, kiểu, enum
Go.gohàm, phương thức, kiểu
C.c, .hhàm, cấu trúc, enum, typedef
C++.cpp, .cc, .hpphàm, lớp, cấu trúc, không gian tên
Java.javaphương thức, lớp, giao diện, enum
C#.csphương thức, lớp, giao diện, cấu trúc, enum, delegate, không gian tên
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, giao diện
PHP.php, .phtmlhàm, phương thức, lớp, giao diện, trait
Swift.swiftlớp, cấu trúc, enum, giao thức, hàm
Verilog/SystemVerilog.v, .vh, .sv, .svhmodule, tác vụ, hàm, giao diện, 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, cấu trúc
R.R, .r, .Rmdhàm
Perl.pl, .pm, .thàm, gói
Zig.zighàm, biến
Erlang.erl, .hrlhàm, module, bản ghi
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, 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:

# 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ă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 trình duyệt (không hệ thống tệp, git)~3MB

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 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 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ô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à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 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ảoCài đặt trướcCông cụToken Ngữ cảnhLý do
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 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:

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ế độ xemMô tả
Đồ thị GọiMối quan hệ gọi hàm với kiểm soát độ sâu và lọc hướng
Đồ thị Nhập khẩuPhụ thuộc nhập khẩu 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
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ểnCFG 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_typesLấy kiểu được suy luận cho tất cả biến trong một hàm
check_type_errorsTìm các điểm 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 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ầnMô tả
/narsil:security-scanChạy kiểm tra bảo mật toàn diện
/narsil:exploreKhá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-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 90 công cụ hiệu quả
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 để 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ăngKhông có narsil-mcpVới 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ị cuộc 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 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ẫnMô tả
Bắt đầuThiế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ỗiGỡ lỗi với đồ thị cuộc gọi và phân tích lan truyền
Kiểm tra bảo mậtTì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_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 phát hiện 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 đã kích hoạt

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

Công cụMô tả
find_symbolsTìm struct, lớp, hàm theo loại/mẫu
get_symbol_definitionLấy nguồn ký hiệu với ngữ cảnh xung quanh
find_referencesTìm tất cả các tham chiếu đến một ký hiệu
get_dependenciesPhân tích nhập và phụ thuộc
workspace_symbol_searchTìm kiếm mờ ký hiệu trên toàn không gian làm việc
find_symbol_usagesSử dụng ký hiệu xuyên tệp với nhập
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 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 xếp hạng
search_chunksTìm kiếm trên các đoạn 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 đoạn Nhận biết AST

Công cụMô tả
get_chunksLấy các đoạn nhận biết AST cho một tệp
get_chunk_statsThống kê về các đoạn mã
get_embedding_statsThố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_searchTì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_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 neural

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

Công cụMô tả
get_call_graphLấy đồ thị cuộc 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 dẫn giữa hai hàm
get_complexityLấy độ phức tạp chu trình/nhận thức
get_function_hotspotsTì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_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_definitionsNhững phép gán nào đến được mỗi điểm
find_uninitializedCác biến được sử dụng trước khi khởi tạo
find_dead_storesCá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_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 cần chạy mypy/tsc
get_typed_taint_flowPhâ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_graphXây dựng và phân tích đồ thị nhập
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 Lan truyền

Công cụMô tả
find_injection_vulnerabilitiesTìm SQL injection, XSS, command injection, path traversal
trace_taintTheo dõi luồng dữ liệu bị nhiễm từ một nguồn
get_taint_sourcesLiệ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_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_vulnerabilityNhận giải thích lỗ hổng chi tiết
suggest_fixNhậ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_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 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_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ó tỷ lệ 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_repoSao chép và lập chỉ mục kho lưu trữ GitHub
list_remote_filesLiệt kê tệp qua API GitHub
get_remote_fileLấy tệp qua API GitHub

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 đối với đồ thị tri thức RDF
list_sparql_templatesLiệt kê các mẫu truy vấn SPARQL có sẵn
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 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_manifestLớp 0 manifest (~1-2KB JSON-LD) - danh tính kho lưu trữ, số lượng
export_ccg_manifestXuất Lớp 0 manifest ra tệp
export_ccg_architectureLớp 1 kiến trúc (~10-50KB JSON-LD) - mô-đun, API
export_ccg_indexLớp 2 chỉ mục ký hiệu (~100-500KB N-Quads đã nén)
export_ccg_fullLớp 3 chi tiết đầy đủ (~1-20MB N-Quads đã nén)
export_ccgXuất tất cả các lớp CCG dưới dạng một gói
query_ccgTruy vấn CCG bằ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/:

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 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à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 đồng 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 (repo này)531,733220 ms~50 MB
rust-analyzer2,847~50K2.1s89 MB
linux kernel78,000+~500K45s2.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=true nghĩa là tính năng được biên dịch VÀ bật
  • graph=false 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)
  • 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()extract_signature() gây ra sự cố hybrid_search, search_chunks, và get_chunk_stats khi 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ù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, 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ùng unwrap_or(Ordering::Equal).
  • Phân đoạn phòng thủ chiều sâu - Thêm bọc catch_unwind quanh tất cả vòng lặp chunk_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-dimension và tra cứu default_dimension_for_model() để các mô hình như text-embedding-3-large dù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 frontendDist trong flake.nix 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à 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_yaml sang serde-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 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

  • 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ành src/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 mkPkg DRY, loại bỏ framework macOS không cần thiết, chiến lược kiểm thử --lib cho 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.yaml mớ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:

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