semantic-code-intelligence
Semantic Code Intelligence
ソフトウェアリポジトリ向けのローカルファーストなセマンティック検索と、引用付きコードウォークスルー。
Semantic Code Intelligence は、リポジトリをシンボル認識チャンクに解析し、そのチャンクを FAISS と BM25 でインデックス化して、両方の結果セットを融合し、クロスエンコーダーで最も有力な候補を再ランク付けします。結果には正確なファイルパスと行範囲が含まれます。すべてローカルで実行され、クラウド API キーは不要です。
提供される機能
ハイブリッドなセマンティックおよび語彙的コード検索
正確なシンボル、パス、コンテキスト用語のブースティング
検索の一致に基づく信頼性ラベル
Python AST 解析と一般的なプログラミング言語向けの構造解析
src/auth.py:L42-L67などの正確な引用ブラウザダッシュボードと REST API
CLI、MCP、LSP インターフェース
決定論的エビデンスのフォールバックを備えた、ローカルの Ollama を利用したコードウォークスルー
FAISS、BM25、SQLite インデックスの永続化
インクリメンタルなファイルシステム監視
シンボルグラフと依存関係グラフ
再現可能なインデックス作成と検索のベンチマーク
Related MCP server: Qurio MCP Server
必要条件
macOS または Linux
Python 3.10 以降
Git
Python の依存関係とローカルモデルキャッシュ用に約 2〜4 GB の空きディスク容量
任意: uv(環境管理を高速化)
任意: Ollama(コードウォークスルーの生成用)
最初のインデックス作成と再ランク付けの操作では、Hugging Face のモデル重みをダウンロードするためにインターネットアクセスが必要です。モデルがキャッシュされると、検索はオフラインで動作します。
クリーンなマシンでのクイックスタート
1. リポジトリのクローン
git clone https://github.com/saitarrun/Semantic-code-intelligence.git
cd semantic-code-intelligence2. 環境を作成してアプリケーションをインストール
uv を使用する場合:
uv venv
source .venv/bin/activate
uv pip install -e .標準の Python ツールを使用する場合:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .Windows は現時点ではテスト対象ではありませんが、同等のアクティベーションコマンドは .venv\Scripts\activate です。
3. 検索モデルをダウンロードしてインデックスを作成
モデルのダウンロードは、通常のアプリケーションリクエストが予期しないネットワークトラフィックを発生させないよう、デフォルトで意図的に無効化されています。最初のインデックス作成とクエリの際に、明示的にダウンロードを有効にしてください:
export CODE_INTEL_ALLOW_MODEL_DOWNLOADS=1
code-intel index .
code-intel query "Where is HybridRetrievalPipeline implemented?" --citations-only
unset CODE_INTEL_ALLOW_MODEL_DOWNLOADSこれにより以下が準備されます:
密な埋め込み用の
sentence-transformers/all-MiniLM-L6-v2再ランク付け用の
cross-encoder/ms-marco-MiniLM-L-6-v2
リポジトリインデックスは .code_intel_index/ に保存されます。このディレクトリには FAISS インデックス、BM25 データ、SQLite メタデータが含まれており、コミットすべきではありません。
4. Web アプリケーションを起動
code-intel serve --host 127.0.0.1 --port 8000http://127.0.0.1:8000 を開きます。
ダッシュボードには以下が含まれます:
セマンティック検索
コードウォークスルー
依存関係マップ
Diff および LSP ツール
リポジトリ選択と再インデックス作成のコントロール
ステージごとのレイテンシと検索信頼性のインジケーター
別のリポジトリをインデックス化
インデックスデータは、デフォルトでは対象リポジトリ内に保存されます:
code-intel index /absolute/path/to/projectそのリポジトリを検索:
code-intel query \
"How are access tokens validated?" \
--dir /absolute/path/to/projectソースリポジトリを変更せずに残す場合は、別のインデックスディレクトリを使用します:
code-intel index /absolute/path/to/project \
--index-dir /absolute/path/to/index-storage
code-intel query \
"Where is the database connection pool created?" \
--dir /absolute/path/to/project \
--index-dir /absolute/path/to/index-storageパーサーや埋め込みの動作を変更した後、クリーンな再構築を強制する:
code-intel index /absolute/path/to/project --forceセマンティック検索
ハイブリッドモードをお勧めします。自然言語の類似性と正確な識別子マッチングを組み合わせます:
code-intel query "How does the application serve the web UI?"正確なシンボル検索:
code-intel query "Where is serve_ui implemented?"より多くの結果を返す:
code-intel query "authentication middleware" --top-k 10コードを表示せずに引用を表示:
code-intel query "database transaction rollback" --citations-only診断用に個別の検索戦略を選択:
code-intel query "PaymentProcessor" --mode sparse
code-intel query "logic responsible for charging a customer" --mode dense
code-intel query "charge customer payment" --mode hybrid精度よりも低レイテンシが重要な場合は、クロスエンコーダーの再ランク付けを無効にする:
code-intel query "configuration loader" --no-rerankランキングの仕組み
デフォルトのハイブリッドパイプラインは次のステージを実行します:
一般的な開発者の意図を、決定論的なコード領域用語で展開します。
最大 50 件の密な FAISS 候補を取得します。
最大 50 件の語彙的 BM25 候補を取得します。
最大 60 件のユニークな候補を Reciprocal Rank Fusion で融合します。
ローカルのクロスエンコーダーで最大 40 件の候補を再ランク付けします。
正確なシンボル、パス、コンテキスト用語の一致をブーストします。
重複する引用を削除し、同じファイルからの繰り返しの結果を制限します。
根拠となるエビデンスとともに信頼性ラベルを返します。
信頼性は LLM の信頼度スコアではありません。密/語彙の一致、正確なシンボル一致、パスの重複、セマンティック類似度など、観測可能な検索シグナルを報告します。
コードウォークスルー
決定論的エビデンスモード
このモードは Ollama を必要としません。取得したシンボル、スコープ、依存関係、ソースブロック、引用を、動作を推測せずに返します:
code-intel ask \
"How does the indexing pipeline persist metadata?" \
--provider extractiveOllama によるローカル生成ウォークスルー
Ollama をインストールして起動し、デフォルトモデルをダウンロードします:
ollama pull qwen2.5-coder:7b引用付きウォークスルーを実行:
code-intel ask "Explain the hybrid retrieval control flow"別のローカルモデルまたは Ollama サーバーを使用:
export CODE_INTEL_OLLAMA_MODEL=deepseek-coder-v2:lite
export OLLAMA_BASE_URL=http://127.0.0.1:11434Ollama に到達できない場合、アプリケーションは応答を extractive-fallback と明確にラベル付けし、決定論的なソースエビデンスを返します。
対話型 CLI
継続的な検索セッションを開始:
code-intel interactive --dir /absolute/path/to/projectインデックス統計を確認:
code-intel stats --dir /absolute/path/to/projectすべてのコマンドを表示:
code-intel --help
code-intel query --helpREST API
サーバーを起動:
code-intel serve --host 127.0.0.1 --port 8000ヘルスチェック:
curl http://127.0.0.1:8000/api/healthリポジトリをインデックス化:
curl -X POST http://127.0.0.1:8000/api/index \
-H 'Content-Type: application/json' \
-d '{
"target_dir": "/absolute/path/to/project",
"force": false
}'ハイブリッド検索を実行:
curl -X POST http://127.0.0.1:8000/api/search \
-H 'Content-Type: application/json' \
-d '{
"query": "Where is token validation implemented?",
"repo_path": "/absolute/path/to/project",
"top_k": 5,
"mode": "hybrid",
"rerank": true
}'ウォークスルーを生成:
curl -X POST http://127.0.0.1:8000/api/synthesize \
-H 'Content-Type: application/json' \
-d '{
"query": "Explain token validation failure paths",
"repo_path": "/absolute/path/to/project",
"top_k": 8,
"provider": "extractive"
}'主要なエンドポイント:
Method | Endpoint | Purpose |
|
| サービスとインデックスのステータス |
|
| ファイル、行、チャンク、インデックスマニフェスト |
|
| SSE インデックス作成の進行状況 |
|
| 同期リポジトリインデックス作成 |
|
| 密、スパース、またはハイブリッド検索 |
|
| 引用付きコード回答 |
|
| ストリーミング引用付き回答 |
|
| シンボルおよび依存関係グラフ |
|
| インクリメンタル監視の開始または停止 |
|
| 定義、参照、ホバーデータ |
|
| 提案された unified diff を生成 |
|
| 選択したリポジトリに unified diff を適用 |
リモートアクセスが意図的に必要な場合を除き、127.0.0.1 にバインドしてください。パッチ適用とファイルを開くエンドポイントはローカルファイルシステム上で動作するため、信頼できないネットワークに公開すべきではありません。
MCP 統合
MCP サーバーを使用すると、VS Code、Cursor、Claude Code、その他の互換性のあるコーディングエージェントが、インデックス化されたコードベースを検索し、正確なソース範囲を取得できます。最初にプロジェクトをインストールしてインデックス化してください:
git clone https://github.com/saitarrun/Semantic-code-intelligence.git
cd Semantic-code-intelligence
python -m venv .venv
source .venv/bin/activate
pip install -e .
code-intel index --dir /absolute/path/to/your/project以下の例では、which code-intel が出力する実行ファイルの絶対パスを使用してください。
VS Code
エージェントに検索させたいプロジェクトに .vscode/mcp.json を作成します:
{
"servers": {
"semanticCodeIntelligence": {
"type": "stdio",
"command": "/absolute/path/to/Semantic-code-intelligence/.venv/bin/code-intel",
"args": ["mcp", "--dir", "${workspaceFolder}"],
"cwd": "${workspaceFolder}"
}
}
}コマンドパレットから MCP: List Servers を実行し、semanticCodeIntelligence を起動して、そのツールを承認します。古いツールリストがキャッシュされている場合は、MCP: Reset Cached Tools を実行してください。
Cursor
対象プロジェクトに .cursor/mcp.json を作成します:
{
"mcpServers": {
"semantic-code-intelligence": {
"command": "/absolute/path/to/Semantic-code-intelligence/.venv/bin/code-intel",
"args": ["mcp", "--dir", "${workspaceFolder}"]
}
}
}Claude Code
検索したいプロジェクトからローカルの stdio サーバーを登録します:
claude mcp add --transport stdio --scope project semantic-code-intelligence -- \
/absolute/path/to/Semantic-code-intelligence/.venv/bin/code-intel mcp --dir /absolute/path/to/your/project
claude mcp get semantic-code-intelligence他の MCP 互換エージェントの場合は、同じ実行ファイルを、引数 mcp --dir /absolute/path/to/your/project を指定したローカル stdio サーバーとして構成します。サーバーは、stdio クライアントの要件に従って、stdout に JSON-RPC メッセージのみを書き込みます。
利用可能な MCP ツール:
code_intel_search: 正確な行と信頼性メタデータを備えたハイブリッド、密、またはスパース検索code_intel_symbol_graph: リポジトリまたはシンボルの依存関係およびコールグラフデータcode_intel_index: コーディングエージェントからインデックスを構築または更新code_intel_read_file: 設定されたリポジトリ内の最大 400 行を安全に読み取る
検索リクエストの前に、対象プロジェクトをインデックス化する必要があります。デフォルトでは、そのインデックスは <project>/.code_intel_index に保存されます。別のインデックスディレクトリを使用する場合は、MCP コマンドに --index-dir /path/to/index を渡してください。モデルのダウンロードは引き続きオプトインです: 埋め込みまたは再ランク付けモデルがまだキャッシュされていない場合は、CODE_INTEL_ALLOW_MODEL_DOWNLOADS=1 を設定してください。
LSP とファイルシステムウォッチャー
stdio LSP ブリッジを起動:
code-intel lsp --dir /absolute/path/to/projectインクリメンタルウォッチャーを起動:
code-intel watch --dir /absolute/path/to/projectウォッチャーはサポートされているソースファイルを監視し、変更後にインデックスの状態を更新します。いずれかのプロセスを停止するには Ctrl+C を使用します。
設定
環境変数:
Variable | Default | Description |
|
|
|
|
| 生成ウォークスルーに使用される Ollama モデル |
|
| Ollama API のベース URL |
| Localhost origins | API が許可するブラウザオリジンのカンマ区切りリスト |
|
| API によってキャッシュされるリポジトリパイプラインの最大数 |
プログラムによる構成:
from pathlib import Path
from semantic_code_intel.config import CodeIntelConfig
from semantic_code_intel.indexing.engine import HybridIndexer
from semantic_code_intel.retrieval.pipeline import HybridRetrievalPipeline
project = Path("/absolute/path/to/project")
config = CodeIntelConfig(project_root=project)
config.retrieval.dense_top_k = 75
config.retrieval.sparse_top_k = 75
config.retrieval.final_top_k = 8
HybridIndexer(config).index_codebase(project)
response = HybridRetrievalPipeline(config).query(
"Where is request authentication enforced?",
top_k=8,
)
for result in response.results:
print(result.citation, result.chunk.symbol_name, result.score)
print(response.reliability, response.reliability_reasons)サポートされているファイル
デフォルトのスキャナーには以下が含まれます:
Python
JavaScript と TypeScript
Go
Rust
Java
C と C++
C#
Ruby
PHP
Swift
Kotlin と Scala
シェルスクリプト
SQL
HTML と CSS
JSON、YAML、TOML、Markdown
一般的な生成ディレクトリ、仮想環境、依存関係フォルダー、ロックファイル、バイナリ、圧縮済みアセット、.git、.code_intel_index、oss_evaluation はデフォルトで除外されます。拡張子と無視パターンをカスタマイズするには、semantic_code_intel/config.py の ParserConfig を参照してください。
アーキテクチャ
flowchart LR
A[Repository] --> B[Scanner and ignore rules]
B --> C[Python AST or polyglot parser]
C --> D[Symbol-aware chunks]
D --> E[Local embedding model]
E --> F[(FAISS)]
D --> G[Code-aware tokenizer]
G --> H[(BM25)]
D --> I[(SQLite metadata)]
Q[Query] --> X[Intent expansion]
X --> F
X --> H
F --> R[Reciprocal Rank Fusion]
H --> R
R --> J[Cross-encoder reranker]
J --> K[Exact symbol and path boosts]
K --> L[Diversity and reliability]
L --> M[CLI, API, Web, MCP, LSP]コアモジュール:
Package | Responsibility |
| リポジトリのスキャンと構造的なコードチャンク化 |
| 埋め込み、FAISS、BM25、SQLite、監視 |
| クエリ展開、融合、再ランク付け、信頼性、引用 |
| 根拠に基づくプロンプト、Ollama による合成、決定論的フォールバック |
| FastAPI エンドポイントとブラウザダッシュボード |
| コマンドラインインターフェース |
| シンボルおよび依存関係グラフ |
| Model Context Protocol サーバー |
| Language Server Protocol ブリッジ |
| 合成リポジトリの生成と検索評価 |
テスト
完全なテストスイートを実行:
uv run pytest -qまたは、アクティベートされた環境で実行:
pytest -qこのスイートは、パーサー、FAISS、BM25、クエリ展開、完全一致ブースティング、融合、引用、API エンドポイント、ローカル合成動作、MCP、LSP、パッチ適用、監視、ベンチマーク生成をカバーしています。
ベンチマーキング
再現可能な合成ベンチマークを実行:
code-intel benchmark \
--workspace ./benchmark_workspace \
--loc 40000 \
--queries 30ランナーは以下を含む benchmark_report.json を書き出します:
データセットとインデックスのサイズ
インデックス作成スループット
密、スパース、再ランク付け、エンドツーエンドのレイテンシパーセンタイル
ヒット率と平均逆順位(Mean Reciprocal Rank)
実行されたクエリのレコード
Python、プラットフォーム、ハードウェア、パッケージ、モデルのメタデータ
ベンチマーク結果は、ハードウェア、モデルキャッシュの状態、リポジトリの構成、クエリセットによって異なります。過去の数値は保証ではなく測定結果として扱ってください。
トラブルシューティング
モデルがローカルにない場合
ダウンロードを有効にして、失敗した操作をもう一度実行します:
CODE_INTEL_ALLOW_MODEL_DOWNLOADS=1 code-intel index /absolute/path/to/project --force
CODE_INTEL_ALLOW_MODEL_DOWNLOADS=1 code-intel query "warm up reranker" --dir /absolute/path/to/projectインデックスが見つからない場合
クエリに使用する --dir と --index-dir の値は、インデックス作成に使用した値と一致している必要があります。
code-intel stats --dir /absolute/path/to/projectウォークスルーが Ollama を利用できないと表示する場合
ローカルサーバーとインストール済みモデルを確認します:
ollama list
curl http://127.0.0.1:11434/api/tags常に決定論的エビデンスモードを使用できます:
code-intel ask "your question" --provider extractive検索結果が弱い場合
既知の場合は、正確なクラス、関数、メソッド、エンドポイント、または構成名を使用してください。
通常の使用ではハイブリッドモードを推奨します。
回答が複数のファイルにまたがる場合は、
--top-kを増やしてください。パーサーまたは埋め込み構成を変更した後は、
--forceで再インデックスしてください。信頼性ラベルを確認してください。信頼性が低い場合は、取得シグナルが強く一致していないことを意味します。
サーバーポートがすでに使用中です
別のポートを選択してください:
code-intel serve --host 127.0.0.1 --port 8010プロジェクトの状態
このプロジェクトは活発に開発中です。生成されたパッチを適用する前にレビューし、通常の使用ではAPIをlocalhostにバインドしたままにし、ベンチマークの主張はご自身のターゲットリポジトリで検証してください。
ライセンス
オープンソースライセンスはまだ追加されていません。リポジトリへの公開アクセスは、それ自体ではコードのコピー、変更、再配布の許可を与えるものではありません。
This server cannot be installed
Maintenance
Related MCP Servers
- AlicenseAqualityAmaintenanceExtremely fast local hybrid code search for agents.152MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI coding assistants to search and retrieve information from a locally ingested knowledge base using hybrid search, grounded in user-curated documentation.17MIT
- AlicenseNot gradedqualityBmaintenanceProvides token-efficient code retrieval for coding agents by indexing repositories and enabling ranked snippet search, symbol outlines, and surgical line reads.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to perform semantic code search locally, finding code by meaning rather than exact keywords.3MIT
Related MCP Connectors
Token-efficient search for coding agents over public and private documentation.
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
Search your knowledge bases from any AI assistant using hybrid RAG.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/saitarrun/Semantic-code-intelligence'
If you have feedback or need assistance with the MCP directory API, please join our Discord server