mcpField
O
ontomics

ontomics

ローカル
github.com開発ツール4328 週間前に更新

ontomics について

ontomics は、コーディングエージェントがコードベースのドメイン知識を一度のツール呼び出しで参照できるように索引を構築する MCP サーバーです。すべての処理は手元のマシン上で行われ、エージェントセッションでのトークン消費を抑えたい開発者を対象としています。

主な機能

  1. 01ドメイン概念のクラスタリングと語彙の検索
  2. 02命名規則の検出と識別子のチェック
  3. 03関数本体の埋め込みによる振る舞いの類似性検索
  4. 04モジュールごとの概念マップと型のデータフロー分析
  5. 05ポータブルな YAML としてのドメイン知識のエクスポート
  6. 06git の参照に対する語彙の差分表示

活用シーン

  1. 01エージェントがリポジトリ内の用語の意味を素早く把握する
  2. 02新しい識別子がプロジェクトの命名規則に従うか確認する
  3. 03振る舞いが似ており重複の可能性がある関数を見つける

MCP 対応

本プロジェクトは MCP サーバーであり、概念の検索、命名チェック、類似ロジックの検索などのツールを MCP クライアントに提供します。セッション概要用に ontomics://briefing リソースも公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"etiennechollet-ontomics": {
"command": "npx",
"args": [
"-y",
"@ontomics/ontomics"
]
}
}
}
起動コマンドnpx -y @ontomics/ontomics

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@ontomics/ontomics0.3.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

ontomics

Python Rust TypeScript JavaScript platform MCP MCP Registry Glama Claude Code Codex pi

ontomics は、あらゆるコーディングエージェントにコードベースの知識を即座に提供します。ツールの呼び出しは19回ではなく1回。トークン数は約20分の1です。

https://github.com/user-attachments/assets/01afa8a0-1bc2-4686-94d7-965fef7610c3

画像レジストレーションの教師なし学習ライブラリである voxelmorph プロジェクトの可視化

ベンチマーク

Claude Sonnet でテストしました。同じ質問を、ontomics を使った場合と使わない場合で比較しています。

voxelmorph で「このコードベースにおける『transform』の意味は何ですか?」(トランスクリプト全文):

ontomics ありなし
ツール呼び出し数119
トークン数約3.7k約76k
時間5秒1分15秒
回答の品質完全完全

ScribblePrompt で「このコードベースにおける主なドメイン概念は何ですか?」(トランスクリプト全文):

ontomics ありなし
ツール呼び出し数126
トークン数約3.7k約61.6k
時間約5秒56秒
回答の品質完全完全

どちらの場合も、完全で正確な回答が得られました。ontomics は1回の呼び出しで回答にたどり着きました。

検索ではできないこと

検索では、文字列がどこに現れるかがわかります。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/ontomics

macOS(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 --release
2. ハーネスに登録する

Claude Code:

claude mcp add -s user ontomics -- ontomics

Codex:

codex mcp add ontomics -- ontomics

OpenClaw:

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。ファイル拡張子から自動検出します。

ツール

概念と用語
ツール機能
query_concept用語のすべてのバリエーション、関連する概念、出現箇所を検索します
locate_concept概念に対応する主要なシグネチャ、クラス、ファイルを検索します
describe_symbol関数またはクラスのシグネチャ、docstring、関連性を取得します
trace_concept呼び出しチェーンをたどり、コードベース内で概念がどのように流れるかを追跡します
list_concepts出現頻度の高いドメイン概念を一覧表示します
list_conventions検出された命名パターン(接頭辞、接尾辞、変換)をすべて一覧表示します
list_entities概念、役割、種類で絞り込んだコードエンティティ(クラス、関数)を一覧表示します
check_naming識別子がプロジェクトの規約に沿っているか確認し、標準的な形式を提案します
suggest_nameプロジェクトの用語に合った識別子名を生成します
vocabulary_health規約の適用範囲、命名の一貫性、クラスターのまとまりを測定します
ontology_diffgit の参照以降に追加、変更、削除されたドメイン概念を表示します
export_domain_pack他のリポジトリで使用できるよう、ドメイン知識をポータブルな YAML としてエクスポートします
振る舞いの類似性
ツール機能
find_similar_logic振る舞いが類似した実装の関数を検索し、埋め込みの類似度順に表示します
describe_logic関数の振る舞いの説明、本文、ロジッククラスターへの所属情報を取得します
compact_contextLLM での利用に最適化した、シンボルの階層化コンテキスト(概念+ロジック)を組み立てます
コードベースの構造
ツール機能
describe_fileファイル内のエンティティ、概念、関連性の概要を表示します
concept_map各ドメイン概念を含むモジュールを表示します
type_flowsコードベース内の主要な型とデータの流れを表示します
trace_type特定の型がファイルや呼び出し箇所をまたいでどのように伝播するかを追跡します
リソース
リソース機能
ontomics://briefingセッション概要:主な規約、略語、重要な概念、対照的なペア、用語に関する警告。ontomics briefing CLI からも利用できます。

仕組み

ontomics はすべての処理をお使いのマシン上で実行する多段階パイプラインです。API キーは必要ありません:

  1. 解析 — tree-sitter がソースファイルからすべての識別子、シグネチャ、呼び出し箇所を抽出します
  2. 分析 — TF-IDF スコアリングにより、ドメイン固有の概念を特定し、命名規約を検出します
  3. 埋め込み(概念) — BGE-small(384-dim)が意味的類似性に基づいて関連する概念をクラスター化します
  4. 埋め込み(ロジック) — CodeRankEmbed(768-dim)が関数本体の生テキストを埋め込み、振る舞いの類似性に基づいてクラスター化します
  5. 中心性 — PageRank が構造上の重要度に基づいてエンティティをスコアリングします

どちらの埋め込みモデルも初回実行時に一度だけダウンロードされ、ローカルにキャッシュされます。インデックスは <repo>/.ontomics/index.db に保存されます。以降の起動時にはキャッシュから読み込まれ、ファイルの変更が監視されます。

設定はリポジトリのルートにある .ontomics/config.toml で行います。すべてのフィールドには適切な既定値が設定されています。設計仕様の全容については SPEC.md を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。