ontomics
ontomics
ontomicsは、Claude Codeにあなたのコードベースに関する即時の知識を提供します。19回のツール呼び出しを1回に減らし、トークン消費量を約20分の1に抑えます。
ベンチマーク
Claude Sonnetを使用して、ontomicsの有無で同じ質問をテストしました。
voxelmorph で「このコードベースにおける 'transform' の意味は?」と質問 (完全なトランスクリプト):
ontomicsあり | なし | |
ツール呼び出し | 1 | 19 |
トークン数 | 約3.7k | 約76k |
時間 | 5秒 | 1分15秒 |
回答の質 | 完全 | 完全 |
ScribblePrompt で「このコードベースの主要なドメイン概念は?」と質問 (完全なトランスクリプト):
ontomicsあり | なし | |
ツール呼び出し | 1 | 26 |
トークン数 | 約3.7k | 約61.6k |
時間 | 約5秒 | 56秒 |
回答の質 | 完全 | 完全 |
どちらの条件でも完全で正確な回答が得られましたが、ontomicsは1回の呼び出しで到達しました。
Related MCP server: Code-Index-MCP
検索にはできないこと
検索は文字列がどこに出現するかを教えてくれます。LSPはシンボルがどこで定義され、参照されているかを教えてくれます。しかし、どちらも「このコードベースのドメイン概念は何か?」「それらはどう関連しているか?」「どのような命名規則が定着しているか?」「前回のリリースからドメイン語彙にどのような変更があったか?」「名前に関係なく、どの関数が同様の動作をするか?」といった問いには答えられません。
ontomicsは、プロジェクトのドメインのセマンティックインデックスを構築します。関連するシンボルを概念にクラスタリングし、使用頻度から命名規則を検出し、略語を解決し、動作の類似性によって関数をグループ化し、語彙が時間の経過とともにどのように進化するかを追跡します。そのインデックスは、他のリポジトリで規則をブートストラップするためのポータブルなアーティファクトとしてエクスポートできます。
動作の類似性
命名や概念を超えて、ontomicsは CodeRankEmbed (768次元、対照学習によるコード検索) を使用して生の関数本体を埋め込み、動作の類似性によってクラスタリングします。これにより、命名やコールグラフでは明らかにならない関係性が浮き彫りになります。
❯ What functions behave like spatial_transform()?
random_transform() nn/functional.py:352 0.80
spatial_transform() functional.py:596 0.69
random_transform() functional.py:1399 0.67
random_disp() nn/functional.py:275 0.65
integrate_disp() functional.py:764 0.65
compose() nn/functional.py:216 0.63
disp_to_trf() functional.py:343 0.62結果はまた、random_transform が異なる類似度スコアで2箇所に出現していることも明らかにしています。これは、概念レベルの検索では完全に見落とされる実装の重複の兆候です。
インストール
一度インストールすれば、すべてのプロジェクトで使用可能です。設定は不要で、ontomicsは初回実行時にリポジトリを自動検出し、インデックスを作成します。
ontomicsにはgitリポジトリ (.git/ ディレクトリ) が必要です。ホーム、ルート、または一時ディレクトリのインデックス作成は拒否されます。git以外のディレクトリをインデックス化するには、--force を渡してください。
1. バイナリのインストール
npm (macOS/Linux):
npm install -g @ontomics/ontomicsmacOS (Homebrew):
brew install EtienneChollet/tap/ontomicsシェルインストーラー (macOS/Linux):
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/EtienneChollet/ontomics/releases/latest/download/ontomics-installer.sh | shソースから:
git clone https://github.com/EtienneChollet/ontomics.git
cd ontomics
cargo build --release2. ハーネスへの登録
Claude Code:
claude mcp add -s user ontomics -- ontomicsCodex:
codex mcp add ontomics -- ontomicsOpenClaw:
openclaw mcp set ontomics '{"command":"ontomics"}'pi-coding-agent:
pi install npm:@ontomics/ontomicsチームと共有する — リポジトリのルートに .mcp.json を配置します:
{
"mcpServers": {
"ontomics": {
"command": "npx",
"args": ["-y", "@ontomics/ontomics", "--repo", "."]
}
}
}対応言語
Python、TypeScript、JavaScript、Rust。ファイル拡張子から自動検出されます。
ツール
概念と語彙
ツール | 説明 |
| 用語のすべてのバリエーション、関連概念、出現箇所を検索 |
| 概念の主要なシグネチャ、クラス、ファイルを検索 |
| 関数やクラスのシグネチャ、docstring、関係性を取得 |
| コールチェーンを通じて概念がコードベース内をどのように流れるかを追跡 |
| 頻度順に主要なドメイン概念をリストアップ |
| 検出されたすべての命名パターン(接頭辞、接尾辞、変換)をリストアップ |
| 概念、役割、種類でフィルタリングされたコードエンティティ(クラス、関数)をリストアップ |
| プロジェクトの規則に対して識別子をチェックし、正規形を提案 |
| プロジェクトの語彙に適合する識別子名を生成 |
| 規則の網羅性、命名の一貫性、クラスタの結束性を測定 |
| git参照以降の新規、変更、削除されたドメイン概念を表示 |
| 他のリポジトリで使用するためにドメイン知識をポータブルなYAMLとしてエクスポート |
動作の類似性
ツール | 説明 |
| 埋め込みの類似度順にランク付けされた、動作が類似した実装を持つ関数を検索 |
| 関数の動作説明、本体テキスト、ロジッククラスタの所属を取得 |
| LLM消費用に最適化された、シンボルの階層化コンテキスト(概念+ロジック)を組み立て |
コードベース構造
ツール | 説明 |
| ファイルのエンティティ、概念、関係性の概要 |
| どのモジュールにどのドメイン概念が含まれているかを表示 |
| 主要な型と、データがコードベース内をどのように流れるかを表示 |
| 特定の型がファイルや呼び出しサイトをまたいでどのように伝播するかを追跡 |
リソース
リソース | 説明 |
| セッションブリーフィング:主要な規則、略語、重要な概念、対照ペア、語彙に関する警告。 |
仕組み
ontomicsは、APIキーを必要とせず、完全にローカルマシン上でマルチステージパイプラインを実行します:
解析 — tree-sitterがソースファイルからすべての識別子、シグネチャ、呼び出しサイトを抽出
分析 — TF-IDFスコアリングがドメイン固有の概念を特定し、命名規則を検出
埋め込み(概念) — BGE-small (384次元) が関連する概念を意味的類似性でクラスタリング
埋め込み(ロジック) — CodeRankEmbed (768次元) が生の関数本体を埋め込み、動作の類似性でクラスタリング
中心性 — PageRankが構造的な重要度でエンティティをスコアリング
両方の埋め込みモデルは初回実行時に一度だけダウンロードされ、ローカルにキャッシュされます。インデックスは <repo>/.ontomics/index.db に保存され、以降の起動時はキャッシュから読み込まれ、ファイルの変更を監視します。
設定はリポジトリルートの .ontomics/config.toml で行います。すべてのフィールドには適切なデフォルト値が設定されています。設計の全仕様については SPEC.md を参照してください。
Latest Blog Posts
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/EtienneChollet/ontomics'
If you have feedback or need assistance with the MCP directory API, please join our Discord server