🚀 narsil-mcp
高速でプライバシーを重視した、深いコードインテリジェンスのためのMCPサーバー

Rustで構築されたMCP(Model Context Protocol)サーバーで、76種類の特殊ツールを通じてAIアシスタントに深いコード理解能力を提供します。
🚀 クイックスタート
narsil-mcpは、高速でプライバシーを重視したMCPサーバーです。以下の手順で簡単にセットアップできます。
✨ 主な機能
なぜnarsil-mcpを選ぶべきか?
| 機能 |
narsil-mcp |
XRAY |
Serena |
GitHub MCP |
| 対応言語 |
16 |
4 |
30+ (LSP) |
N/A |
| ニューラルサーチ |
あり |
なし |
なし |
なし |
| 汚染解析 |
あり |
なし |
なし |
なし |
| SBOM/ライセンス |
あり |
なし |
なし |
一部 |
| オフライン/ローカル |
あり |
あり |
あり |
なし |
| WASM/ブラウザ |
あり |
なし |
なし |
なし |
| 呼び出しグラフ |
あり |
一部 |
なし |
なし |
| 型推論 |
あり |
なし |
なし |
なし |
主要な機能
- コードインテリジェンス - シンボル抽出、意味検索、呼び出しグラフ解析
- ニューラル意味検索 - 埋め込みを使用して類似コードを検索(Voyage AI、OpenAI)
- セキュリティ解析 - 汚染解析、脆弱性スキャン、OWASP/CWE対応
- サプライチェーンセキュリティ - SBOM生成、依存関係監査、ライセンス遵守
- 高度な解析 - 制御フローグラフ、データフロー解析、未使用コード検出
なぜnarsil-mcpを選ぶべきか?
- Rustで記述 - 超高速でメモリ安全、単一バイナリ(約30MB)
- Tree-sitter搭載 - 16言語の正確でインクリメンタルな構文解析
- ゼロコンフィグ - リポジトリを指定するだけですぐに使用可能
- MCP準拠 - Claude、Cursor、VS Code Copilot、Zed、およびすべてのMCPクライアントと互換性があります
- プライバシー重視 - 完全にローカルで動作し、データはマシンを離れません
- 並列インデックス作成 - Rayonを使用してすべてのコアを活用
- スマート抜粋 - 完全な構文スコープまで拡張
- セキュリティ重視 - 組み込みの脆弱性検出と汚染解析
- ニューラル埋め込み - Voyage AIまたはOpenAIを使用したオプションの意味検索
- WASMサポート - WebAssemblyビルドでブラウザで実行可能
- リアルタイムストリーミング - 大規模なリポジトリのインデックス作成中に結果をストリーミング
📦 インストール
パッケージマネージャを使用する(推奨)
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
Arch Linux (AUR):
yay -S narsil-mcp-bin
yay -S narsil-mcp
Rust/Cargo (すべてのプラットフォーム):
cargo install narsil-mcp
Node.js/npm (すべてのプラットフォーム):
npm install -g narsil-mcp
yarn global add narsil-mcp
pnpm add -g narsil-mcp
ワンクリックインストールスクリプト
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/postrv/narsil-mcp/main/install.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/postrv/narsil-mcp/main/install.ps1 | iex
Windows (Git Bash / MSYS2):
curl -fsSL https://raw.githubusercontent.com/postrv/narsil-mcp/main/install.sh | bash
⚠️ 重要提示
Windowsユーザーへの注意: PowerShellインストーラは、より良いエラーメッセージとWindowsネイティブの統合を提供します。ソースからビルドする場合、自動的にPATHを設定し、必要なビルドツールをチェックします。
ソースからのインストール
前提条件:
git clone git@github.com:postrv/narsil-mcp.git
cd narsil-mcp
cargo build --release
機能別ビルド
narsil-mcpは、さまざまなユースケースに対応するための機能セットをサポートしています。
cargo build --release
cargo build --release --features neural
cargo build --release --features neural-onnx
cargo build --release --features frontend
cargo build --release --target wasm32-unknown-unknown --features wasm
| 機能 |
説明 |
サイズ |
native (デフォルト) |
すべてのツールを備えた完全なMCPサーバー |
~30MB |
frontend |
+ 埋め込みビジュアライゼーションWeb UI |
~31MB |
neural |
+ TF-IDFベクトル検索、API埋め込み |
~32MB |
neural-onnx |
+ ローカルONNXモデル推論 |
~50MB |
wasm |
ブラウザビルド(ファイルシステム、gitなし) |
~3MB |
詳細なインストール手順、トラブルシューティング、およびプラットフォーム固有のガイドについては、docs/INSTALL.md を参照してください。
💻 使用例
基本的な使用法
macOS / Linux:
narsil-mcp --repos /path/to/your/project
narsil-mcp --repos ~/projects/project1 --repos ~/projects/project2
narsil-mcp --repos /path/to/project --verbose
narsil-mcp --repos /path/to/project --reindex
Windows (PowerShell / CMD):
narsil-mcp --repos C:\Users\YourName\Projects\my-project
narsil-mcp --repos C:\Projects\project1 --repos C:\Projects\project2
narsil-mcp --repos C:\Projects\my-project --verbose
narsil-mcp --repos C:\Projects\my-project --reindex
全機能セット
narsil-mcp \
--repos ~/projects/my-app \
--git \
--call-graph \
--persist \
--watch \
--lsp \
--streaming \
--remote \
--neural \
--neural-backend api \
--neural-model voyage-code-2
⚠️ 重要提示
ニューラル埋め込みにはAPIキー(またはカスタムエンドポイント)が必要です。これを設定する最も簡単な方法は、対話型ウィザードを使用することです。
narsil-mcp config init --neural
ウィザードは以下のことを行います:
- エディタ(Claude Desktop、Claude Code、Zed、VS Code、JetBrains)を検出します
- APIプロバイダ(Voyage AI、OpenAI、またはカスタム)を入力するように促します
- APIキーを検証します
- エディタのMCP設定に自動的に追加します
あるいは、以下の環境変数のいずれかを手動で設定することもできます:
EMBEDDING_API_KEY - 任意のプロバイダの汎用APIキー
VOYAGE_API_KEY - Voyage AI専用のAPIキー
OPENAI_API_KEY - OpenAI専用のAPIキー
EMBEDDING_SERVER_ENDPOINT - カスタム埋め込みAPIエンドポイントURL(オプション、セルフホストモデルの使用を可能にします)
設定
v1.1.0以降では、ツールとパフォーマンスを細かく制御するためのオプション設定が導入されました。すべての既存の使用法は引き続き機能します - 設定は完全にオプションです!
クイックスタート
narsil-mcp config init
narsil-mcp tools list
narsil-mcp --repos ~/project --preset minimal
自動エディタ検出
narsil-mcpはエディタを検出し、自動的に最適なプリセットを適用します:
| エディタ |
プリセット |
ツール |
コンテキストトークン |
理由 |
| Zed |
最小限 |
26 |
~4,686 |
高速起動、最小限のコンテキスト |
| VS Code |
バランス |
51 |
~8,948 |
良好な機能バランス |
| Claude Desktop |
フル |
75+ |
~12,001 |
最大限の機能 |
トークン節約:
- 最小限のプリセット: フルプリセットと比べて61%少ないトークン
- バランスの良いプリセット: フルプリセットと比べて25%少ないトークン
プリセット
ユースケースに基づいてプリセットを選択します:
narsil-mcp --repos ~/project --preset minimal
narsil-mcp --repos ~/project --preset balanced --git --call-graph
narsil-mcp --repos ~/project --preset full --git --call-graph
narsil-mcp --repos ~/project --preset security-focused
設定ファイル
ユーザー設定 (~/.config/narsil-mcp/config.yaml):
version: "1.0"
preset: "balanced"
tools:
overrides:
neural_search:
enabled: false
reason: "対話的な使用には遅すぎます"
performance:
max_tool_count: 50
プロジェクト設定 (.narsil.yaml in repo root):
version: "1.0"
preset: "security-focused"
tools:
categories:
Security:
enabled: true
SupplyChain:
enabled: true
優先順位: CLIフラグ > 環境変数 > プロジェクト設定 > ユーザー設定 > デフォルト
環境変数
export NARSIL_PRESET=minimal
export NARSIL_ENABLED_CATEGORIES=Repository,Symbols,Search
export NARSIL_DISABLED_TOOLS=neural_search,generate_sbom
CLIコマンド
narsil-mcp config show
narsil-mcp config validate ~/.config/narsil-mcp/config.yaml
narsil-mcp tools list --category Search
narsil-mcp tools search "git"
narsil-mcp config export > my-config.yaml
詳細については、以下を参照してください:
- 設定ガイド - 完全な設定リファレンス
- インストールガイド - プラットフォーム固有のインストール
ビジュアライゼーションフロントエンド
ブラウザで対話的に呼び出しグラフ、インポート、およびコード構造を探索できます。
cargo build --release --features frontend
narsil-mcp --repos ~/project --http --call-graph
機能: 対話型グラフ、複雑度オーバーレイ、セキュリティハイライト、複数のレイアウト
セットアップ、APIエンドポイント、および開発モードについては、docs/frontend.md を参照してください。
ニューラル意味検索
ニューラル埋め込みを使用して、変数名や構造が異なる場合でも類似コードを検索できます。
narsil-mcp config init --neural
export VOYAGE_API_KEY="your-key"
narsil-mcp --repos ~/project --neural --neural-model voyage-code-2
Voyage AI、OpenAI、カスタムエンドポイント、およびローカルONNXモデルをサポートしています。
セットアップ、バックエンド、およびユースケースについては、docs/neural-search.md を参照してください。
型推論
Python、JavaScript、およびTypeScriptに組み込みの型推論があり、mypyやtscは必要ありません。
| ツール |
説明 |
infer_types |
関数内のすべての変数の推論された型を取得 |
check_type_errors |
潜在的な型の不一致を検索 |
get_typed_taint_flow |
型情報を用いた強化されたセキュリティ解析 |
def process(data):
result = data.split(",")
count = len(result)
return count * 2
MCP設定
構成ファイルを作成することで、narsil-mcpをAIアシスタントに追加できます。以下は推奨される設定です:
Claude Code (.mcp.json in project root - 推奨):
プロジェクトディレクトリに .mcp.json を作成して、プロジェクトごとの設定を行います:
{
"mcpServers": {
"narsil-mcp": {
"command": "narsil-mcp",
"args": ["--repos", ".", "--git", "--call-graph"]
}
}
}
次に、プロジェクト内でClaude Codeを起動します:
cd /path/to/project
claude
--repos に . を指定すると、現在のディレクトリが自動的にインデックス化されます。Claudeは現在、76のコードインテリジェンスツールにアクセスできるようになります。
💡 使用建议
後続の実行での起動を高速化するには、--persist --index-path .claude/cache を追加してください。
グローバル設定の場合は、代わりに ~/.claude/settings.json を編集します。詳細な設定については、Claude Code Integration を参照してください。
Cursor (.cursor/mcp.json):
{
"mcpServers": {
"narsil-mcp": {
"command": "narsil-mcp",
"args": ["--repos", ".", "--git", "--call-graph"]
}
}
}
VS Code + GitHub Copilot (.vscode/mcp.json):
{
"servers": {
"narsil-mcp": {
"command": "narsil-mcp",
"args": ["--repos", ".", "--git", "--call-graph"]
}
}
}
⚠️ 重要提示
Copilot Enterpriseの場合、MCPサポートにはVS Code 1.102以上が必要で、組織の管理者によって有効にする必要があります。
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"narsil-mcp": {
"command": "narsil-mcp",
"args": ["--repos", "/path/to/your/projects", "--git"]
}
}
}
Zed (settings.json → Context Servers):
{
"context_servers": {
"narsil-mcp": {
"command": "narsil-mcp",
"args": ["--repos", ".", "--git"]
}
}
}
⚠️ 重要提示
Zedの場合、narsil-mcpはすぐに起動し、バックグラウンドでインデックス化を行い、初期化タイムアウトを防ぎます。
Claude Codeプラグイン
Claude Code ユーザー向けに、スラッシュコマンドとスキルを備えたプラグインを提供しています。
マーケットプレイスからインストールする(推奨):
# narsil-mcpマーケットプレイスを追加
/plugin marketplace add postrv/narsil-mcp
# プラグインをインストール
/plugin install narsil@narsil-mcp
またはGitHubから直接インストールする:
/plugin install github:postrv/narsil-mcp/narsil-plugin
含まれる機能:
| コンポーネント |
説明 |
/narsil:security-scan |
包括的なセキュリティ監査を実行 |
/narsil:explore |
不慣れなコードベースを探索 |
/narsil:analyze-function |
特定の関数を詳細に分析 |
/narsil:find-feature |
機能が実装されている場所を検索 |
/narsil:supply-chain |
サプライチェーンセキュリティを分析 |
| スキル |
76のツールを効果的に使用するためのClaudeのガイド |
| MCP設定 |
適切なデフォルト設定でnarsil-mcpを自動起動 |
詳細なドキュメントについては、narsil-plugin/README.md を参照してください。
実践ガイドとチュートリアル
実践的な使用ガイドについては、docs/playbooks を参照してください:
| ガイド |
説明 |
| Getting Started |
クイックセットアップと最初のツール呼び出し |
| Understand a Codebase |
不慣れなプロジェクトを探索 |
| Fix a Bug |
呼び出しグラフと汚染解析を使用してバグをデバッグ |
| Security Audit |
OWASP/CWEスキャンを使用して脆弱性を検索 |
| Code Review |
変更を効果的にレビュー |
各ガイドでは、Claudeが質問に答えるために使用する正確なツールチェーンが示されています。
WebAssembly (ブラウザ) での使用
narsil-mcpはWebAssemblyを介してブラウザで完全に実行できます - ブラウザベースのIDE、コードレビューツール、または教育プラットフォームに最適です。
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');
ビルド手順、Reactの例、およびAPIリファレンスについては、docs/wasm.md を参照してください。
利用可能なツール (76)
リポジトリとファイル管理
| ツール |
説明 |
list_repos |
メタデータ付きですべてのインデックス化されたリポジトリをリスト表示 |
get_project_structure |
ファイルアイコンとサイズ付きのディレクトリツリーを取得 |
get_file |
オプションの行範囲付きでファイル内容を取得 |
get_excerpt |
特定の行周辺のコードをコンテキスト付きで抽出 |
reindex |
リポジトリの再インデックス化をトリガー |
discover_repos |
ディレクトリ内のリポジトリを自動検出 |
validate_repo |
パスが有効なリポジトリであるかチェック |
get_index_status |
インデックス統計と有効な機能を表示 |
シンボル検索とナビゲーション
| ツール |
説明 |
find_symbols |
型/パターンによる構造体、クラス、関数の検索 |
get_symbol_definition |
周辺のコンテキスト付きでシンボルのソースを取得 |
find_references |
シンボルのすべての参照を検索 |
get_dependencies |
インポートと依存関係を分析 |
workspace_symbol_search |
ワークスペース全体でのシンボルのファジー検索 |
find_symbol_usages |
インポートを含むファイル間のシンボルの使用状況 |
get_export_map |
ファイル/モジュールからエクスポートされたシンボルを取得 |
コード検索
| ツール |
説明 |
search_code |
関連性ランキング付きのキーワード検索 |
semantic_search |
BM25ランキングの意味検索 |
hybrid_search |
BM25 + TF-IDFを組み合わせたランクフュージョン |
search_chunks |
AST認識コードチャンクを検索 |
find_similar_code |
スニペットに類似したコードを検索(TF-IDF) |
find_similar_to_symbol |
シンボルに類似したコードを検索 |
AST認識チャンク化
| ツール |
説明 |
get_chunks |
ファイルのAST認識チャンクを取得 |
get_chunk_stats |
コードチャンクに関する統計情報 |
get_embedding_stats |
埋め込みインデックスの統計情報 |
ニューラル意味検索 ( --neural が必要)
| ツール |
説明 |
neural_search |
ニューラル埋め込みを使用した意味検索(名前が異なる場合でも類似コードを検索) |
find_semantic_clones |
関数のType-3/4意味クローンを検索 |
get_neural_stats |
ニューラル埋め込みインデックスの統計情報 |
呼び出しグラフ解析 ( --call-graph が必要)
| ツール |
説明 |
get_call_graph |
リポジトリ/関数の呼び出しグラフを取得 |
get_callers |
関数を呼び出す関数を検索 |
get_callees |
関数が呼び出す関数を検索 |
find_call_path |
2つの関数間のパスを検索 |
get_complexity |
循環的/認知的複雑度を取得 |
get_function_hotspots |
高い接続性を持つ関数を検索 |
制御フロー解析
| ツール |
説明 |
get_control_flow |
基本ブロックとブランチを示すCFGを取得 |
find_dead_code |
到達不能なコードブロックを検索 |
データフロー解析
| ツール |
説明 |
get_data_flow |
変数の定義と使用 |
get_reaching_definitions |
各ポイントに到達する代入を取得 |
find_uninitialized |
初期化前に使用される変数を検索 |
find_dead_stores |
読み取られない代入を検索 |
型推論 (Python/JavaScript/TypeScript)
| ツール |
説明 |
infer_types |
外部の型チェッカーなしで関数内の変数の型を推論 |
check_type_errors |
mypy/tscを実行せずに潜在的な型エラーを検索 |
get_typed_taint_flow |
データフローと型推論を組み合わせた強化された汚染解析 |
インポート/依存関係グラフ
| ツール |
説明 |
get_import_graph |
インポートグラフを構築して分析 |
find_circular_imports |
循環依存関係を検出 |
get_incremental_status |
Merkleツリーと変更統計 |
セキュリティ解析 - 汚染追跡
| ツール |
説明 |
find_injection_vulnerabilities |
SQLインジェクション、XSS、コマンドインジェクション、パストラバーサルを検索 |
trace_taint |
ソースからの汚染データフローを追跡 |
get_taint_sources |
汚染ソース(ユーザー入力、ファイル、ネットワーク)をリスト表示 |
get_security_summary |
包括的なセキュリティリスク評価 |
セキュリティ解析 - ルールエンジン
| ツール |
説明 |
scan_security |
セキュリティルール(OWASP、CWE、暗号化、シークレット)でスキャン |
check_owasp_top10 |
OWASP Top 10 2021の脆弱性をスキャン |
check_cwe_top25 |
CWE Top 25の弱点をスキャン |
explain_vulnerability |
詳細な脆弱性の説明を取得 |
suggest_fix |
検出された問題の修復提案を取得 |
サプライチェーンセキュリティ
| ツール |
説明 |
generate_sbom |
SBOM(CycloneDX/SPDX/JSON)を生成 |
check_dependencies |
既知の脆弱性(OSVデータベース)をチェック |
check_licenses |
ライセンスの遵守問題を分析 |
find_upgrade_path |
脆弱な依存関係の安全なアップグレードパスを検索 |
Git統合 ( --git が必要)
| ツール |
説明 |
get_blame |
ファイルのGit blameを取得 |
get_file_history |
ファイルのコミット履歴を取得 |
get_recent_changes |
リポジトリ内の最近のコミットを取得 |
get_hotspots |
高い変更頻度と複雑度を持つファイルを取得 |
get_contributors |
リポジトリ/ファイルの貢献者を取得 |
get_commit_diff |
特定のコミットの差分を取得 |
get_symbol_history |
シンボルを変更したコミットを取得 |
get_branch_info |
現在のブランチとステータスを取得 |
get_modified_files |
ワーキングツリーの変更を取得 |
LSP統合 ( --lsp が必要)
| ツール |
説明 |
get_hover_info |
型情報とドキュメント |
get_type_info |
正確な型情報 |
go_to_definition |
定義の場所を検索 |
リモートリポジトリサポート ( --remote が必要)
| ツール |
説明 |
add_remote_repo |
GitHubリポジトリをクローンしてインデックス化 |
list_remote_files |
GitHub APIを介してファイルをリスト表示 |
get_remote_file |
GitHub APIを介してファイルを取得 |
メトリクス
| ツール |
説明 |
get_metrics |
パフォーマンス統計とタイミング |
セキュリティルール
narsil-mcpには rules/ に組み込みのセキュリティルールが含まれています:
owasp-top10.yaml - OWASP Top 10 2021の脆弱性パターン
cwe-top25.yaml - CWE Top 25の最も危険な弱点
crypto.yaml - 暗号化の問題(弱いアルゴリズム、ハードコードされたキー)
secrets.yaml - シークレット検出(APIキー、パスワード、トークン)
カスタムルールは scan_security --ruleset /path/to/rules.yaml で読み込むことができます。
アーキテクチャ
+-----------------------------------------------------------------+
| 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) | |
| +-----------------------------------------------------------+ |
+-----------------------------------------------------------------+
パフォーマンス
Apple M1でベンチマークを実行しました(criterion.rs):
構文解析スループット
| 言語 |
入力サイズ |
時間 |
スループット |
| Rust (大ファイル) |
278 KB |
131 µs |
1.98 GiB/s |
| Rust (中ファイル) |
27 KB |
13.5 µs |
1.89 GiB/s |
| Python |
~4 KB |
16.7 µs |
- |
| TypeScript |
~5 KB |
13.9 µs |
- |
| 混合 (5ファイル) |
~15 KB |
57 µs |
- |
検索レイテンシー
| 操作 |
コーパスサイズ |
時間 |
| シンボル完全一致 |
1,000シンボル |
483 ns |
| シンボル接頭辞一致 |
1,000シンボル |
2.7 µs |
| シンボルファジー一致 |
1,000シンボル |
16.5 µs |
| BM25全文検索 |
1,000ドキュメント |
80 µs |
| TF-IDF類似性検索 |
1,000ドキュメント |
130 µs |
| ハイブリッド(BM25+TF-IDF) |
1,000ドキュメント |
151 µs |
エンドツーエンドのインデックス作成
| リポジトリ |
ファイル数 |
シンボル数 |
時間 |
メモリ |
| narsil-mcp (このリポジトリ) |
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 |
主要なメトリクス:
- Tree-sitter構文解析: ~2 GiB/s の持続的なスループット
- シンボルルックアップ: 完全一致で <1µs
- 全文検索: ほとんどのクエリで <1ms
- ハイブリッド検索はrayonを介してBM25 + TF-IDFを並列実行
開発
cargo test
cargo bench
RUST_LOG=debug cargo run -- --repos ./test-fixtures
cargo fmt
cargo clippy
npx @modelcontextprotocol/inspector ./target/release/narsil-mcp --repos ./path/to/repo
トラブルシューティング
Tree-sitterビルドエラー
ビルド中にCコンパイラまたはtree-sitterに関するエラーが表示された場合:
xcode-select --install
sudo apt install build-essential
brew install emscripten
ニューラル検索APIエラー
echo $VOYAGE_API_KEY
export VOYAGE_API_KEY="pa-..."
export OPENAI_API_KEY="sk-..."
インデックスがファイルを見つけられない
narsil-mcp --repos /path --verbose
narsil-mcp --repos /path --reindex
大規模なリポジトリでのメモリ問題
RUST_MIN_STACK=8388608 narsil-mcp --repos /path/to/huge-repo
narsil-mcp --repos /path/to/repo/src --repos /path/to/repo/lib
ロードマップ
完了済み
- [x] 多言語シンボル抽出(16言語)
- [x] Tantivyを使用した全文検索(BM25ランキング)
- [x] ハイブリッド検索(BM25 + TF-IDFとRRF)
- [x] AST認識コードチャンク化
- [x] Git blame/履歴統合
- [x] 複雑度メトリクス付きの呼び出しグラフ解析
- [x] 制御フローグラフ(CFG)解析
- [x] 到達定義付きのデータフロー解析(DFG)
- [x] 未使用コードと未使用代入の検出
- [x] インジェクション脆弱性のための汚染解析
- [x] セキュリティルールエンジン(OWASP、CWE、暗号化、シークレット)
- [x] SBOM生成(CycloneDX、SPDX)
- [x] 依存関係の脆弱性チェック(OSV)
- [x] ライセンス遵守解析
- [x] 循環依存関係検出付きのインポートグラフ
- [x] クロス言語シンボル解決
- [x] Merkleツリーを使用したインクリメンタルインデックス作成
- [x] インデックスの永続化
- [x] ファイル変更のウォッチモード
- [x] LSP統合
- [x] リモートリポジトリサポート
- [x] ストリーミングレスポンス
新機能
v1.1.x (現在)
- マルチプラットフォーム配布 - Homebrew、Scoop、npm、Cargo、または直接ダウンロードでインストール可能
- 設定可能なツールプリセット - 最小限、バランス、フル、およびセキュリティ重視のプリセット
- 自動エディタ検出 - Zed、VS Code、Claude Desktopに最適なデフォルト設定
- 対話型セットアップウィザード -
narsil-mcp config init で簡単に設定可能
- SwiftとVerilogのサポート - 現在16言語をサポート
- パフォーマンスの改善 - バックグラウンドインデックス化による高速起動
v1.0.x
- ニューラル意味検索 - Voyage AIまたはOpenAIの埋め込みを使用して類似コードを検索
- 型推論 - 外部ツールなしでPython/JavaScript/TypeScriptの型を推論
- 多言語汚染解析 - PHP、Java、C#、Ruby、Kotlinのセキュリティスキャン
- WASMビルド - コードプレイグラウンドや教育ツールのためにブラウザで実行可能
- 111のバンドルされたセキュリティルール - OWASP、CWE、暗号化、シークレット検出
- IDE設定が含まれています - Claude Desktop、Cursor、VS Code、Zedのテンプレート
📄 ライセンス
次のいずれかのライセンスの下でライセンスされています:
- Apache License, Version 2.0 (LICENSE-APACHE または http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT または http://opensource.org/licenses/MIT)
あなたの選択です。
クレジット
以下のツールを使用して構築されています: