mcpField
S
Sense

Sense

ローカル
luuuc.github.io開発ツール404 週間前に更新

Sense について

Sense は AI コーディングエージェント向けの MCP サーバーで、コードベースをローカルでインデックス化し、シンボルグラフとセマンティックコード検索を提供します。Claude Code、Cursor、Codex CLI などのクライアントを対象とし、SaaS アカウント、API キー、クラウド依存は不要とされています。呼び出し関係、影響範囲、プロジェクトの規約を AI に与える点が特徴です。

主な機能

  1. 01呼び出し元、呼び出し先、継承関係を含むシンボルグラフ
  2. 02テキスト検索へのフォールバック付きハイブリッドセマンティック検索
  3. 03影響範囲とリスクスコアの分析
  4. 04プロジェクトのコーディング規約の検出
  5. 05増分更新に対応したローカルインデックス

活用シーン

  1. 01リファクタリング前に関数のすべての呼び出し元を調べる
  2. 02変更がコードとテストに与える影響範囲を見積もる
  3. 03AI コーディングエージェントにチームのコードスタイルを守らせる
  4. 04リポジトリ内のデッドコードを特定する

MCP 対応

本プロジェクトは MCP サーバーであり、sense_graph、sense_search、sense_blast、sense_conventions の 4 つのツールを MCP クライアントに提供します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbsense_0.84.3_darwin_arm64.mcpb
mcpbsense_0.84.3_darwin_amd64.mcpb
mcpbsense_0.84.3_linux_arm64.mcpb
mcpbsense_0.84.3_linux_amd64.mcpb

ツール

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

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

詳細

CI CodeQL Lint Maintainability Code Coverage codecov OpenSSF Best Practices

Sense ⠎⠑⠝⠎⠑

AI コーディングエージェント向けに構築された、コードベースのコンテキストを提供する MCP サーバーです。

Sense なし(ツール呼び出し19回、356Kトークン、121秒)とSense あり(ツール呼び出し5回、109Kトークン、48秒)の比較

「この関数を呼び出しているのは誰?」という質問に答えるために、AI エージェントは19個のファイルを読み込みます。コードベースのテキストは持っていても、その構造を示す地図がないからです。タスクのたびに構造を再導出し、grep の連鎖をたどってトークンを浪費し、存在しない依存関係を幻覚します。Sense はリポジトリを一度インデックス化し、MCP 経由でシンボルグラフとセマンティックコード検索を提供します。Claude Code、Cursor、Codex CLI、その他あらゆる MCP クライアントは、同じタスクをツール呼び出し19回ではなく10回で、228Kトークンではなく156Kトークンで、同じ正確さを保ちながら完了します(bench/)。

バイナリは1つ、ローカルインデックスは1つ、AI 向けツールは4つ。SaaS アカウントも、API キーも、クラウドへの依存も不要です。

Sense はあなたのマシン上で動き、習得に手間はかかりません。そして、あなたのためのものではありません。あなたの AI のためのものです。

初めての方は、ガイドから始めてください。読者の立場に応じて、各ドキュメントへの道筋を案内します。

Sense が大切にしていること

コードベースとは、単なるテキストではなく構造です。何が何を呼び出すか、何が何を壊すか、チームがどのようにコードを書くかを示すグラフは現実に存在し、把握でき、保持する価値があります。Sense はそれをあなたのマシン上に保管し、AI に渡します。

ほかのすべては、ここから導かれます。コードはあなたのものだからローカルで動作します。理解のために変更権限は必要ないから読み取り専用です。AI に必要なのは、選択肢が100個あることではなく、きちんと動くツールがいくつかあることだから、ツールは4つです。

これらは機能ではありません。Sense の形を決める理由です。

AI が得られるもの

AI 向けのツールは4つ。あなた向けの CLI はフル機能。余計なものはありません。

ツール機能
sense_graphシンボルの関係、呼び出し元、呼び出し先、継承、テスト、デッドコード
sense_searchキーワード検索とテキスト検索へのフォールバックを備えた、バイエンコーダーとクロスエンコーダーを組み合わせたハイブリッドなセマンティックコード検索
sense_blast影響範囲、影響を受けるコード、影響を受けるテスト、リスクスコア
sense_conventionsソースコードから検出したプロジェクトの慣習

AI は「これを呼び出しているのは誰?」という質問に答えるために、30個のファイルを読む必要がなくなります。依存関係を幻覚しなくなります。正しくてもチームの書き方に合わないコードを書くこともなくなります。

慣習の検出

4つのツールのうち、慣習の検出は、他にうまくできるものがほとんどない機能です。AI ツールが苦手なのは構造だけではありません。スタイルも苦手です。正しいコードを書いても、あなたのコードベースでの書き方には従いません。

Sense は実際のソースコードからパターンを検出します。主要な型とその宣言、フレームワークのイディオム(Rails の関連付け、Go のインターフェース、Django のモデル)、アーキテクチャのレイヤー、命名規則などです。AI は説明されるからではなく、これらのパターンを見ることで、それに沿って書くようになります。慣習の検出は単なる機能ではありません。AI が書いたコードを、チームに馴染むものにする要です。

変更点

7 つの実際のコードベース(Discourse、Flask、Next.js、Axum、Gin、Javalin、および非公開の E コマースリポジトリ)で測定しました。 詳しい方法と生データについては、bench/ をご覧ください。Serena、Probe、GitNexus、コード検索 MCP との直接比較のリーダーボードについては、docs/bench-leaderboard.svg をご覧ください。

指標Claude Code (Opus 4.6)Claude Code (Opus 4.6) + Sense変化
タスクあたりのツール呼び出し回数1910-47%
タスクあたりのトークン数228K156K-32%
タスクあたりのコスト$0.42$0.31-26%
セッション時間91s73s-19%
10 万トークンあたりのスコア0.190.30+64%
1 分あたりのスコア0.280.38+37%

正確性はそのままに、作業量を大幅に削減します。Sense がモデルを賢くするわけではありません。モデルに構造的な理解を与えることで、無駄な作業を減らします。

構造的なタスク

テキストを読むだけでなく、コード間の関係を理解する必要があるタスクでは、Sense が優位性を発揮します。

タスクの種類ベースライン+ Sense理由
影響範囲0.170.25事前計算された依存関係グラフと手動での grep の連鎖との比較
呼び出し元の検索0.270.33グラフ検索と数十個のファイルの読み込みとの比較
デッドコード0.000.05ベースラインではまったく実行できません
セマンティック検索0.360.38テキストフォールバックを備えた 2 段階検索(バイエンコーダー + クロスエンコーダー)
Sense が役立たないケース

Sense が提供するのは構造的な理解であり、汎用検索エンジンではありません。ログメッセージの検索や文字列リテラルの場所の特定など、根本的にテキストの grep で済むタスクでは、通常の grep が適切なツールであり、Sense を使っても何も加わりません。検索のテキストフォールバック(ripgrep)がこの差をある程度埋めますが、あくまでフォールバックであり、置き換えではありません。

インストール

curl -fsSL https://luuuc.github.io/sense/install.sh | sh

または、最新リリースからご利用の OS 用のバイナリをダウンロードして解凍し、sense を PATH 上の任意の場所に移動します。

リリースの検証(任意)

各リリースのチェックサムファイルは Sigstore で署名されています(キーレスで、このリポジトリのリリースワークフローに紐付けられています)。cosign をインストールした状態で、次を実行します。

cosign verify-blob \
  --certificate-identity-regexp '^https://github.com/luuuc/sense/\.github/workflows/release\.yml@refs/tags/v.+$' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  --certificate sense_<version>_checksums.txt.pem \
  --signature sense_<version>_checksums.txt.sig \
  sense_<version>_checksums.txt

アーティファクトにはビルド来歴の証明も付属しています。gh attestation verify sense_<version>_<os>_<arch>.tar.gz --owner luuuc を実行してください。

Go を使用する場合(1.26 以降)
go install github.com/luuuc/sense/cmd/sense@latest

コードベースをインデックス化する

cd /path/to/project && sense scan

tree-sitter でコードを解析し、シンボルと関係を抽出して、同梱の ONNX モデルですべてを埋め込み、ローカルの .sense/ インデックスに書き込みます。実行するたびに差分更新されます。

AI を接続する

cd /path/to/project && sense setup

インストール済みの AI ツール(Claude Code、Cursor、Codex CLI、OpenCode、Windsurf、Cline)を自動検出し、それぞれの連携設定を書き込みます。

  • .mcp.json / .cursor/mcp.json / .codex/config.toml / opencode.json:検出されたツール(または任意の MCP クライアント)の MCP サーバーエントリー
  • CLAUDE.md / .cursorrules / AGENTS.md:ツール置換テーブルを含むルーティングガイダンス。単一の共有ソースから生成されます
  • .claude/settings.json:Claude を Sense のツールへ誘導するライフサイクルフック
  • .claude/skills/ と .opencode/skills/:探索、影響分析、規約のワークフロースキル

Windsurf と Cline はグローバル設定からのみ MCP サーバーを読み込むため、この 2 つについては sense setup が AGENTS.md を書き込み、手動で追加するエントリーを表示します。

手動での設定は不要です。sense setup を実行するだけで、AI がコードの構造を理解できるようになります。

Sense は、コードベースのコールドスタートマップである .sense/summary.md も生成します(主要な名前空間、ハブシンボル、エントリーポイント、規約)。AI はセッション開始時にこれを読み込み、プロジェクトの構造をすぐに把握します。把握のためのツール呼び出しは不要です。

Sense のアップグレード後に再設定するには:

sense setup

設定したら、そのまま使えます

sense setup の後は、何もする必要はありません。エディターがすでに起動している MCP サーバーは、バックグラウンドで作業ツリーを監視し、変更が加わるたびに再インデックスするため、編集が AI によるものでも、自分でエディターを操作したものでも、git pull によるものでも、ブランチ切り替えによるものでも、インデックスは最新の状態に保たれます。別のプロセスを起動する必要も、--watch を覚えておく必要もありません。スキャンのたびにサマリーが再生成されます。AI はより速く回答し、トークンの消費も減ります。以前は感じていた不便さも、いつしか意識しなくなります。

仕組み

Sense は tree-sitter でコードベースを解析し、シンボル(関数、クラス、モジュール、メソッド)とその関係(呼び出し、インポート、継承)を抽出します。次に、バンドルされた量子化 ONNX モデルで各シンボルを埋め込み表現に変換し、すべてを .sense/ 内のローカル SQLite インデックスに保存します。

cd /path/to/project && sense scan

これ以降、AI は MCP を通じて構造に関する質問ができます。これらは AI が呼び出すツールです。検証のために手動で実行することもできます。全リファレンスについては、CLI.md を参照してください。

MCP サーバーはクエリに回答するだけではありません。エディターセッションの間、デバウンス付きファイルシステム監視機能で作業ツリーを監視し、リクエスト処理とは別に、変更されたファイルをバックグラウンドで再インデックスします。ブランチ切り替え時は、すべてのファイル変更に反応するのではなく、git diff から一度だけ再インデックスします。数マイクロ秒前に変更されたファイルをクエリした場合は、回答前にサーバーがそのファイルだけをインラインで修復するため、編集が見落とされることはありません。一度にインデックスするプロジェクトは 1 つです。単一書き込みロックにより、2 つ目のエディターウィンドウや、ターミナルで実行する sense scan --watch は、二重にインデックスすることなく読み取りを処理します。バックグラウンド監視を無効にするには、.sense/config.yml で watch: false を設定してください。

パフォーマンス

Sense はワークフローに自然に溶け込みます。クエリはミリ秒単位で解決されるため、AI は処理が滞ることなく構造について推論できます。

操作計測値(p50 / p95)
グラフクエリ0.2ms / 3ms
影響範囲0.1ms / 10ms
規約16ms / 16ms
コールドスタート48ms
フルスキャン4.9s
増分スキャン2.3s

Sense 自身のコードベース(382 ファイル、4,032 シンボル)で計測しています。プロジェクトのローカルな数値を確認するには、sense benchmark を実行してください。

Sense が目指さないもの

コードエディターではありません。トークンオプティマイザーではありません。検索エンジンではありません。機能数を競う製品ではありません。何にも依存しません。目標としないものは省略ではなく、製品のあり方を形づくるものです。詳細は NON-GOALS.md をご覧ください。

対応プラットフォーム

プラットフォーム状況
Linux amd64対応
Linux arm64対応
macOS Apple Silicon (arm64)対応
macOS Intel (amd64)対応(レガシー)
WindowsWSL2 を使用して対応

Windows ネイティブビルドはまだ利用できません。WSL2 で Linux バイナリを使用してください。

macOS Intel 版のバイナリは現在も提供され、動作しますが、macOS 10.15(Catalina)以降が必要です。また、Microsoft が ONNX Runtime 1.23.1 以降の macOS x86_64 ランタイムビルドを提供しなくなったため、古いバンドル済みランタイム(ONNX Runtime 1.23.1)に固定されています。この依存関係は固定されており、更新できないため、Mac では Apple Silicon を推奨します。

要件

  • バイナリ用に約 60 MB のディスク容量
  • .sense/ インデックス用に 100~200 MB(プロジェクトの規模によって異なります)

言語サポート

Sense は解析に tree-sitter を使用します。2 つのティアにわたる 13 言語向けの抽出器が含まれています。

フルティア。 シンボル、呼び出し、継承、インポート、影響範囲、セマンティック検索、およびフレームワーク固有の推論に対応します。

言語フレームワークのサポート
RubyRails(関連付け、コールバック、ルート)、Stimulus、Turbo
TypeScript / JavaScriptReact(JSX コンポーネントの呼び出し)
Go-
ERBStimulus、Turbo(JS コントローラーへの言語横断エッジ)

標準ティア。 シンボル、呼び出し、継承、インポート、影響範囲、およびセマンティック検索に対応します。

言語備考
PythonDjango(モデル、URL パターン)、FastAPI(ルート、Depends)
Rust構造体、トレイト、列挙型、impl ブロック
Javaクラス、インターフェース、列挙型、レコード
Kotlinクラス、インターフェース、オブジェクト
C#クラス、インターフェース、構造体、名前空間
C++クラス、構造体、名前空間(:: スコープ)
C関数、構造体、列挙型
PHPクラス、インターフェース、トレイト(\ スコープ)
Scalaクラス、トレイト、オブジェクト

Java、Kotlin、C#、C++、C、PHP、Scala では、手書きのウォーカーではなく、テーブル駆動型の汎用抽出器を使用しています。それぞれ約 25 行の設定で構成されています。Python と Rust には専用の抽出器があり、Python では Django と FastAPI の推論にも対応しています。新しい言語の追加についてはCONTRIBUTING-A-LANGUAGE.mdを、フレームワークのサポート(およびそれに伴うデッドコードの細分化)の追加についてはCONTRIBUTING-A-FRAMEWORK.mdを参照してください。

記事

コードベースインテリジェンス、ベンチマーク手法、Sense の開発思想について詳しく解説しています:ARTICLES.md。

フィードバック

問題はgithub.com/luuuc/sense/issuesで報告してください。

開発

make build    # build the binary
make test     # run tests
make lint     # run linters
make ci       # all of the above

コントリビューション

Sense は v1 の機能が完成しています。外部からのコントリビューションは、新しい言語やフレームワーク、言語またはフレームワーク向けのデッドコードの細分化、AI ツールとの統合の 3 分野で受け付けています。バグ修正はいつでも歓迎しますが、新機能の追加は受け付けていません。対象範囲の詳細と手順ガイドはCONTRIBUTING.mdに記載されています。

ライセンス

MIT。LICENSEを参照してください。

コメント

MCP は初めてですか?

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

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