mcpField
Q
Qartez Mcp

Qartez Mcp

ローカル
qartez.dev開発ツール7417 週間前に更新

Qartez Mcp について

Qartez MCP は、Claude Code などのコーディングエージェント向けのコード インテリジェンス MCP サーバーです。シンボル、インポート、呼び出し関係、影響範囲を含むリポジトリのナレッジグラフを事前に構築し、エージェントがファイルを逐一スキャンせずにインデックスへ問い合わせられるようにします。

主な機能

  1. 01事前計算されたリポジトリのナレッジグラフ
  2. 02シンボル定義の検索とファイルアウトライン
  3. 03影響分析と依存関係の照会
  4. 04PageRank と git 共変更による ファイルのランク付け
  5. 0537 言語のサポート
  6. 06ファイル監視によるインデックスの自動更新

活用シーン

  1. 01ファイル変更が影響する インポート元の確認
  2. 02大規模コードベースでのシンボル定義の特定
  3. 03リファクタリング前の複雑で結合度の高い関数の把握

MCP 対応

本プロジェクトは MCP サーバーであり、map、find、impact などの 43 のツールを MCP クライアントに公開し、エージェントがコードベースのインデックスを照会できるようにします。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

Qartez

Qartez MCP

コードベースを透視するX線ビジョン――人間ではなく、AI エージェントのために構築。

設計当初から、コードインテリジェンスを
人ではなく言語モデルが利用するために作られた初のサーバーです。AI のトークン使用量を約94%削減します。

クイックスタート · 43種類のツール · ガード · ベンチマーク · 比較 · 37言語 · CLI · コントリビューション · セキュリティ · 変更履歴

ライセンス MSRV 1.88 37言語 43個のMCPツール


なぜこれが必要なのか

grep、find、cat、lsは、ターミナルで人間が一度に1つのファイルを読むために1970年代に作られました。半世紀が過ぎた今も、AI アシスタントはこれらを使い続けています。ファイルをバイト単位でスキャンし、質問のたびに同じディレクトリを読み直し、重要な箇所を推測し、本来そのために設計されていないツールで作業してトークンを消費しています。

Qartezは、まったく異なる種類のツールです。 grepのラッパーではありません。シンボル、インポート、呼び出しエッジ、影響範囲、PageRank、Gitの同時変更、循環的複雑度を含む、リポジトリの事前計算済みナレッジグラフです。Model Context Protocolを通じて、あらゆるLLMに情報を提供します。エージェントはコードベースを読み取るのをやめ、コードベースに問い合わせるようになります。

コーディングエージェントのために作られた、初の感覚器官と考えてください。Grepは一度に1行を認識します。Qartezはコードベース全体の構造を一目で把握します。

AI アシスタントがコードを扱うたびに、コストのかかることが3つ起こります。

1. 同じファイルを何度も読みます。 リポジトリの記憶はありません。質問のたびにゼロから始めます。トークンを何度も繰り返し消費します。

2. 何が壊れるかを把握できません。 アシスタントは、14個の別のファイルがインポートしていることを知らずにutils.tsを編集します。問題がわかるのはCIで、あるいは本番環境でです。

3. 対象を見つけるためにトークンを浪費します。 「handleRequestはどこで定義されていますか?」という質問に対し、200個のファイルをGrepし、候補を5つ読み、答えを見つけるまでに1,600トークンを消費します。Qartezなら50トークンで回答します。

解決策は、より賢いモデルではありません。より賢いインデックスです。


クイックスタート

プラットフォーム対応: macOS 13以降、Ubuntu 22.04以降(およびその他の最新Linux、gnuまたはmusl)、Windows(ネイティブPowerShell 5.1+/7+)、WSL 2に対応しています。アーキテクチャ:x86_64およびarm64。Rust MSRVは1.88です。対応していないプラットフォーム、または--from-sourceという代替手段を使う場合にのみ必要です。

インストール(推奨)

お使いのオペレーティングシステムに合ったワンライナーを選んでください。どちらのコマンドも同じ処理を行います。ビルド済みバイナリをダウンロードし、リリースの SHA256SUMS と照合して SHA-256 を検証し、3 つのバイナリ(qartez、qartez-guard、qartez-setup)をインストールした後、非対話モードで qartez-setup を起動して、検出された MCP 対応 IDE(Claude Code 用の変更ガードフックを含む)をすべて設定します。

macOS / Linux / WSL 2 - bash インストーラー。バイナリは ~/.local/bin/ に配置されます。

curl -sSfL https://qartez.dev/install | sh

Windows(ネイティブ PowerShell 5.1+/7+) - PowerShell インストーラー。バイナリは %LOCALAPPDATA%\Programs\qartez\ に配置されます。

powershell -ExecutionPolicy Bypass -c "iwr https://raw.githubusercontent.com/kuberstar/qartez-mcp/main/install.ps1 -useb | iex"

未対応のプラットフォーム(例:公開済みの成果物がない linux-musl arm64)では、自動的にローカルで cargo build を実行します。この方法を強制するには、--from-source(bash)または -FromSource(PowerShell)を指定してください。この場合に限り、Rust MSRV 1.88 が必要です。

IDE で任意のプロジェクトを開くと、Qartez はセッション開始時に自動でインデックスを作成します。手動での操作は不要です。ファイルウォッチャーが編集内容を反映し、インデックスを最新の状態に保ちます。

別の方法:ソースからインストール(すべてのプラットフォーム)
git clone https://github.com/kuberstar/qartez-mcp.git
cd qartez-mcp
make deploy

sh に渡す前にインストールスクリプトを確認しますか?GitHub で install.sh(bash)または install.ps1(PowerShell)をお読みください。

対話型インストール、対象を指定したインストール、その他のオプション
19 種類のエディターとエージェントに対応

単一の Rust バイナリ(qartez-setup)が、対応するすべてのエディターを検出して設定します。エディターごとのシェルスクリプトも、JSON のコピー&ペーストも不要です。

make deploy                          # Configure every detected IDE (non-interactive)
make setup                           # Same, but interactive checkbox prompt
qartez-setup --ide cursor,zed       # Configure specific IDEs only
make uninstall                       # Remove qartez from every IDE and delete binaries

標準で対応:Claude Code、Claude Desktop、Gemini、Cursor、Windsurf、Kiro、Zed、Continue.dev、Copilot CLI、Amazon Q、Amp、Cline、Roo Code、Goose、Warp、Augment、OpenCode、Codex CLI、Antigravity。

対象を指定したインストール
qartez-setup --ide cursor,zed,claude

特定の IDE だけを選んで設定します。検出されたパス:

IDE設定パス
Claude Code~/.claude/settings.json
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json
Gemini~/.gemini/settings.json
Cursor~/.cursor/mcp.json
Windsurf~/.codeium/windsurf/mcp_config.json
Kiro~/.kiro/settings/mcp.json
Zed~/.config/zed/settings.json
Continue.dev~/.continue/config.yaml
Copilot CLI~/.copilot/mcp-config.json
Amazon Q~/.aws/amazonq/mcp.json
Amp~/.config/amp/settings.json
ClineVS Code のグローバルストレージ saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Roo CodeVS Code のグローバルストレージ rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
Goose~/.config/goose/config.yaml
Warp~/.warp/mcp_settings.json
Augment~/.augment/settings.json
OpenCode~/.config/opencode/opencode.json(または opencode.jsonc)
Codex CLI~/.codex/config.toml
Antigravity~/.gemini/antigravity/mcp_config.json

すべてのインストール方法は冪等で、既存の設定をバックアップします。

プロジェクトで Qartez を有効にする

Qartez はセッション開始時に自動でインデックスを作成します。手動で再インデックスを作成するには:

qartez --root /path/to/your/project --reindex
Claude Desktop(手動)
{
  "mcpServers": {
    "qartez": {
      "command": "/absolute/path/to/qartez",
      "args": []
    }
  }
}
アンインストール
make uninstall

設定済みのすべての IDE から Qartez を削除し、バイナリを削除します。


Qartez の機能

Qartez はコードベースのナレッジグラフを一度構築し、MCP を通じてあらゆる AI アシスタントに提供します。質問のたびにファイルを一からスキャンする代わりに、アシスタントは事前計算されたインデックスに問い合わせます。このインデックスが把握しているのは、次の情報です。

  • 最も重要なファイル(インポートグラフ上の PageRank)
  • ファイルを変更した場合に何が壊れるか(影響範囲の分析)
  • 常に一緒に変更されるファイル(Git の共変更マイニング)
  • 変更時に最も危険な関数(循環的複雑度 × 結合度 × 変更頻度)
  • すべてのシンボルの定義場所、使用している箇所、呼び出し元
  • 重複しているコードブロック(構造的な AST 形状のハッシュ化)
  • インポートが違反しているアーキテクチャの境界
  • どの型がトレイト/インターフェースを実装しているか、およびその逆

その結果、AI はより速く動作し、トークンの使用量を抑え、安全にリファクタリングできるようになり、重要なファイルを見当違いに変更しなくなります。

導入前と導入後
タスクQartez なしQartez あり
「QartezServer はどこで定義されていますか?」200 個のファイルを Grep し、候補を Read します。1,490 トークン。qartez_find。52 トークン。
「storage/read.rs を変更すると何が壊れますか?」インポート元を起点に BFS で Grep し、深さ 2 まで調べます。9,243 トークン。qartez_impact:直接および推移的なインポート元と共変更ファイルを表示します。352 トークン。
「src/server/mod.rs(96 個のシンボル)の概要を教えてください」300KB のファイル全体を Read します。77,843 トークン。シグネチャ付きの qartez_outline。3,009 トークン。
「未使用のエクスポートをすべて見つけてください」ツールがなければ不可能です。qartez_unused:事前に生成済みで、即座に取得できます。468 トークン。
「リファクタリング時に最もリスクの高い関数はどれですか?」問い合わせる手段がありません。qartez_hotspots:複雑度 × PageRank × 変更頻度。

43 個のツール

これらはAI によるコード理解の標準ライブラリと考えてください。それぞれが、人間による複数ステップのワークフローを、エージェントが推論に使える、トークン効率の高い単一の呼び出しに置き換えます。

ツールは、段階的に開示されるティアに分類されています。コアツールは常に利用できます。追加のティアは、qartez_tools enable: ["analysis"](または "all")を使って必要に応じて有効にできます。

コア(常に利用可能)
ツール機能
qartez_mapここから始めましょう。 重要度順に並んだプロジェクトの骨格を表示します。PageRank、エクスポート、影響範囲を確認できます。作業対象に集中できるよう、ファイルや用語で重み付けできます。
qartez_find正確な名前を指定して、シンボルの定義へ移動します。ファイル、行範囲、シグネチャ、可視性を表示します。スキャンは不要です。
qartez_grepインデックス化されたシンボルを FTS5 で検索します。前方一致、正規表現へのフォールバック、任意の本体検索に対応しています。
qartez_read1 つ以上のシンボルのソースコードを行番号付きで読み取ります。ファイルのスキャンは不要です。シンボルへ直接移動します。
qartez_outline任意のファイルの目次を表示します。すべてのシンボルを種類別にグループ化し、シグネチャを表示します。
qartez_impact重要なファイルを編集する前に呼び出してください。 直接のインポート元、推移的な依存先、共変更ファイルを表示します。壊れる可能性のあるものをすべて確認できます。
qartez_depsファイルの依存関係グラフを表示します。そのファイルがインポートしているものと、そのファイルをインポートしているものを確認できます。
qartez_statsコードベースのダッシュボードです。言語ごとのファイル数、シンボル数、エッジ数、最も多く接続されているファイルを表示します。
分析(qartez_tools で有効化)
ツール説明
qartez_refsコードベース全体でシンボルの使用箇所をすべて追跡します。推移的なチェーンも任意で取得できます。
qartez_calls呼び出し階層を表示します。この関数を呼び出している関数と、この関数が呼び出す関数を確認できます。
qartez_cochangeGit で過去に同時に変更されたファイルを表示します。インポートグラフからは見えない論理的な結合を明らかにします。
qartez_contextスマートなコンテキスト構築ツールです。変更予定のファイルを指定すると、最初に読むべき関連ファイルの最適なセットを返します。
qartez_unusedデッドコード検出ツールです。インポート元が 0 件のエクスポート済みシンボルを、インデックス作成時にあらかじめ抽出します。
qartez_diff_impactGit の差分範囲に対する一括影響分析です。 main..HEAD のような revspec を渡すと、PageRank、影響範囲の統合結果、収束点、同時変更の見落としを含む変更ファイルを取得できます。qartez_impact と qartez_cochange を N 回呼び出す代わりに、1 回の呼び出しで済みます。
qartez_hotspotsリファクタリングのレーダーです。 ホットスポットスコア = 循環的複雑度 x PageRank x (1 + 変更頻度) でファイルと関数をランク付けします。リポジトリ内で最もリスクの高いコードを直接示します。
qartez_clonesAST の形状ハッシュを使って構造的なコードクローンを検出します(識別子、リテラル、コメントは正規化して除外されます)。人間のレビュアーでは見つけられないような重複ロジックを検出します。
qartez_boundariesアーキテクチャ境界を適用します。.qartez/boundaries.toml で「これらのモジュールはあれらをインポートできない」と宣言すると、違反しているエッジをすべて取得できます。suggest=true を指定すると、Leiden クラスタリングに基づく初期設定が生成されます。
qartez_hierarchy型階層を照会します。トレイト/インターフェースを実装するすべての型や、型が実装するすべてのトレイト/インターフェースを検索できます。Rust、TypeScript、Java、Python、Go に対応しています。
qartez_trendGit 履歴から複雑度の推移を分析します。関数の循環的複雑度がコミットごとにどのように変化したかを追跡し、関数が増加(GROWING)、安定(STABLE)、減少(SHRINKING)しているかを示します。
qartez_security13 個の組み込みルールを備えたセキュリティスキャナーです。正規表現ベースのパターンマッチングを PageRank で評価し、影響の大きいファイルを優先します。.qartez/security.toml でカスタムルールを設定できます。重大度(low/medium/high/critical)とカテゴリで絞り込めます。
qartez_smellsコードスメル検出ツールです。巨大関数(高い複雑度と長い本体)、長いパラメーターリスト、フィーチャーエンヴィ(自分自身の型よりも別の型を多く使用するメソッド)を検出します。しきい値を調整できます。
qartez_health優先順位付きの修正リストです。 qartez_hotspots と qartez_smells を相互参照し、ファイルを Critical(ホットスポットとスメルの両方)、High(ホットスポットのみ)、Medium(スメルのみ)に分類します。各項目には、具体的なリファクタリング手法の提案が含まれます。
qartez_refactor_plan1 つのファイルに対する、安全性の注釈付きリファクタリング計画を順序付きで提示します。各ステップには、手法(Extract Method、Introduce Parameter Object)、推定される CC への影響カテゴリ(High/Medium/Low)と範囲、影響度・テストカバレッジ・呼び出し元数に基づく安全性の指標が示されます。
qartez_test_gapsインポートグラフを使ってテストカバレッジのギャップを分析します。3 つのモードがあります。gaps は未テストのソースファイルをリスク順にランク付けし、map はテストとソースの対応関係を表示し、suggest は Git の差分範囲に対して実行すべきテストを提案します。
qartez_knowledgeバス係数を分析します。 Git blame に基づき、ファイルおよびモジュール単位で作成者を分析します。知識が 1 人のコントリビューターに集中している単独作成者のファイルやモジュールを明らかにします。
qartez_blameシンボル単位の Git blame です。 関数名/型名から行範囲を特定し、その行だけを blame します。ハンクごとのコミットと作成者、または各作成者の最新コミットを含む作成者別の集計を取得できます。
qartez_semanticローカルの埋め込みモデルを使ったセマンティック検索です。自然言語のクエリを、FTS5 とベクトル類似度のハイブリッド検索(RRF)でランク付けします。semantic cargo feature と、初回のモデルダウンロード(約 270 MB)が必要です。
qartez_path2 つのシンボル間の最短の呼び出し/参照経路を検索します。シンボル参照グラフ上で前向き BFS を実行し、シンボル/ファイルの順序付きチェーンと、別の最短経路の数を返します。kind(call または type)でエッジを絞り込めます。
リファクタリング(qartez_toolsで有効化)
ツール機能
qartez_renameコードベース全体でシンボルの名前を変更します。定義、インポート、すべての使用箇所が対象です。デフォルトではプレビューのみで、apply=trueを指定すると実行します。
qartez_moveシンボルを別のファイルに移動し、すべてのインポートパスを書き換えます。MCP の呼び出しは 1 回です。
qartez_rename_fileファイル名を変更し、そのファイルを参照するすべてのインポートを更新します。
qartez_replace_symbolシンボルの行範囲全体を新しいソースコードに置き換えます。呼び出し側はシグネチャを含む置換内容全体を指定します。デフォルトではプレビューのみで、apply=trueを指定するとアトミックに実行します。
qartez_insert_before_symbolアンカーシンボルの直前に新しいコードを挿入します。アンカーはインデックス化されたシンボルテーブルから検索されるため、周辺の正確なコンテキストを指定する必要はありません。
qartez_insert_after_symbolアンカーシンボルの直後に新しいコードを挿入します。アンカーベースの指定方法はqartez_insert_before_symbolと同じです。
qartez_safe_deleteシンボルを削除する前に、現在もそのシンボルをインポートしているすべてのファイルを報告します。force=trueを指定しない限り、インポート元が残っている場合は適用を拒否します。
メタ(qartez_toolsで有効化)
ツール機能
qartez_projectツールチェーン(Cargo、npm/bun/yarn、Go、Python、Make、Gradle)を自動検出し、単一のツールでテスト/ビルド/リント/型チェックを実行します。
qartez_wikiインポートグラフに対するLeidenコミュニティ検出を使って、Markdown形式のアーキテクチャ Wiki を生成します。ファイルをクラスターに分割して各クラスターに名前を付け、クラスター間のエッジを記載したARCHITECTURE.mdを出力します。
qartez_workspace実行時にワークスペースのドメインを追加または削除します。外部ディレクトリをカスタムエイリアスで.qartez/workspace.tomlに登録してインデックス化し、削除時にはインデックスから消去します。
qartez_add_root実行時に追加のプロジェクトルートを登録します。ディレクトリをインデックス化し、PageRank/変更共起情報を更新して、ファイルウォッチャーを動的に接続します。エイリアスは任意で(指定しない場合はパスのベース名から生成)、一時的なルートでは永続化のオン/オフを切り替えられます。
qartez_list_roots現在サーバーが追跡しているすべてのプロジェクトルートを、エイリアス、ソース(cli/config/runtime)、ウォッチャーの接続状態、ファイル数、最終インデックス作成時刻とともに一覧表示します。
qartez_maintenance.qartez/index.dbを検査し、コンパクト化します。デフォルトのアクションstatsでは、DB/WAL のサイズ、サイズ上位のテーブル、現在のワークスペースフィンガープリント、最後に全体を再インデックスした時刻を報告します。その他のアクション:checkpoint、optimize_fts(FTS5 セグメントを統合)、vacuum_incremental、vacuum、convert_incremental(auto_vacuum=INCREMENTALに一度だけ変換)、purge_stale(ワークスペースに存在しなくなったルートの行を削除)。肥大化した DB には、.qartez/index.dbを手動で削除する代わりにこのツールを使用してください。
ティア管理
ツール機能
qartez_tools**常に表示されます。**すべてのティアとそのツールを一覧表示します。enable: ["analysis"]、enable: ["all"]、またはdisable: ["refactor"]を指定して、エージェントに公開するツールを制御します。コアツールは無効にできません。

ワークフロープロンプト

上記のツールを適切な順序で連携させる、すぐに使える 6 つのレシピです。Claude Code またはプロンプトに対応する任意の MCP クライアントで、スラッシュコマンドとして呼び出してください。

プロンプト機能
/qartez_review <file>コードレビュー:影響範囲、概要、参照、変更共起を確認し、重点チェックリストを提示します。
/qartez_architecture [top_n]PageRank データに基づいて、1 分で把握できるアーキテクチャの概要を提示します。
/qartez_debug <symbol>定義、呼び出し元、呼び出し先、参照を一度に提示します。
/qartez_onboard [area]新しいコントリビューター向けに、重要度順の 5 ファイルの読書リストを提示します。
/qartez_pre_merge <files>マージ前の安全性を確認し、リリース/保留の推奨を提示します。
/qartez_arch_review [focus]アーキテクチャのリスクを監査します:脆弱なハブ、複雑に絡み合った境界、セキュリティ上の露出範囲、複雑性の負債。

変更ガード

Qartez には、AI が重要なファイルをむやみに編集するのを防ぐ安全策が備わっています。

qartez-guard バイナリは Claude Code の PreToolUse システムにフックし、PageRank または影響範囲のしきい値を超えるファイルに対する Edit/Write/MultiEdit を、AI が最初に qartez_impact を呼び出してリスクを確認するまでブロックします。

仕組み:

  1. AI が src/server/mod.rs を編集しようとします
  2. ガードが確認します:PageRank 0.23(しきい値 0.05 超)、影響範囲 10(しきい値 10 以上)
  3. どのしきい値に該当したかを示す説明とともに、編集がブロックされます
  4. AI が qartez_impact file_path=src/server/mod.rs を呼び出し、影響範囲を確認します
  5. ガードがそのファイルの10分間の編集ウィンドウを許可します
  6. AI が編集を再試行すると、許可されます

設定は不要です。QARTEZ_GUARD_PAGERANK_MIN、QARTEZ_GUARD_BLAST_MIN、QARTEZ_GUARD_ACK_TTL_SECS で調整するか、QARTEZ_GUARD_DISABLE=1 で無効にできます。


ベンチマーク

主張ではありません。測定済みで、再現可能です。make bench を実行して、ご自身で確認してください。

概要

Glob + Grep + Read + git log と比べた、トークンの総削減率:+91.8% (Qartez のセルフベンチマークにおける全28シナリオで、MCP の合計は 38,789 トークン、非 MCP の合計は 472,109 トークンです。控えめな過小集計:28シナリオ中10シナリオでは非 MCP のシミュレーションが不完全ですが、これらの行の MCP トークンも両方の合計に算入しています。トークン同士を公平に比較できる18シナリオでは、削減率は**+94.5%**に上昇します。)

LLM による品質評価(claude-opus-4-6): 5つの評価軸(正確性、網羅性、使いやすさ、根拠との整合性、簡潔さ)において、MCP は 8.3/10、非 MCP は 4.3/10(n=28)。

セッションコストの参考情報。 一般的な Claude Code セッションでは、プロンプトのオーバーヘッドとして約20,000トークンから始まります。make bench を1回実行すると約433,000トークンを節約できます。適切なツールを使って質問を処理するだけで、約21回分の空のセッションに相当する予算を取り戻せます。

ツールごとの内訳(Rust の自己ベンチマーク)

MCP を使わない完全なシミュレーションを含む 18 個のツール(トークン数を同じ条件で比較):

ツールMCP のトークン数MCP なし削減率高速化
qartez_cochange9214,622+99.4%2x
qartez_context1074,489+97.6%533x
qartez_find521,490+96.5%210x
qartez_impact3529,243+96.2%140x
qartez_outline3,00977,843+96.1%5x
qartez_project681,394+95.1%0x
qartez_unused4686,750+93.1%22x
qartez_deps1662,286+92.7%118x
qartez_map87674+87.1%1x
qartez_rename_file27185+85.4%211x
qartez_grep127763+83.4%72x
qartez_stats155848+81.7%1x
qartez_move161701+77.0%159x
qartez_calls5642,409+76.6%3x
qartez_refs201692+71.0%26x
qartez_read150495+69.7%100x
qartez_hierarchy7352,056+64.3%127x
qartez_rename439648+32.3%11x

さらに 10 個の分析ツールには、grep/read に相当する有意な機能がありません。これらは、MCP なしのスタックではまったく解決できない問題に対応します。

qartez_hotspots、qartez_clones、qartez_smells、qartez_test_gaps、qartez_wiki、qartez_boundaries、qartez_trend、qartez_knowledge、qartez_diff_impact、qartez_security。

多言語ベンチマーク

make bench-all は、5 つのバージョンを固定した OSS フィクスチャ(colinhacks/zod(TypeScript)、spf13/cobra(Go)、encode/httpx(Python)、FasterXML/jackson-core(Java)、および Qartez の自己ベンチマーク(Rust))に対して、同じ 28 シナリオのハーネスを実行します。その後、言語横断のサマリーを reports/benchmark-<lang>.md と統合マトリックスに出力します。すべてのツール、すべての言語、すべてのシナリオを、忠実な Glob + Grep + Read + git log シミュレーションに対して cl100k_base トークナイザーで測定します。

make bench          # Rust self-bench only - fresh measurements
make bench-all      # All 5 languages (Rust, TypeScript, Python, Go, Java) + cross-language summary
make bench-fixtures # Clone and index the pinned fixture repos

単一言語の実行では、レポートは reports/benchmark.md/reports/benchmark.json に出力されます。bench-all では、reports/benchmark-<lang>.md と統合された言語横断サマリーに出力されます。


内部の仕組み

4 つのレイヤーを一度だけ計算し、各ツール呼び出し時に SQLite からクエリします。

1. Tree-sitter による解析

すべてのソースファイルを、言語固有の Tree-sitter 文法で解析します。LSP サーバーも、言語ごとの SDK のインストールも、コールドスタートのオーバーヘッドもありません。パーサーはシンボル(関数、メソッド、型、定数)、シグネチャ、行範囲、エクスポートの可視性、インポート関係を抽出します。また、命令型言語 21 種については、関数ごとの循環的複雑度も抽出します。

2. 構造形状のハッシュ化

関数本体を AST の骨格に正規化し(識別子、リテラル、コメントは正規化で除去)、ハッシュ化します。同じハッシュを持つ 2 つのシンボルは、構造上のクローンです。qartez_clones はこれをクエリします。

3. グラフ分析

インポートのエッジで有向グラフを構成します。その上で 3 つのアルゴリズムを実行します。

  • PageRank - Google がウェブページに使用したものと同じランダムウォークアルゴリズムです。インポートグラフに適用すると、プロジェクトのアーキテクチャを支えるファイルが明らかになります。
  • 影響範囲 - 変更によって推移的に影響を受けるファイル数を数える逆方向 BFS です。qartez_impact は、編集前の警告にこれを使用します。
  • Leiden クラスタリング - コードベースを論理モジュールに分割するコミュニティ検出手法です。自動生成されるアーキテクチャ Wiki と、qartez_boundaries の初期設定に利用されます。
4. Git 履歴のマイニング

直近 N 件のコミット(デフォルトは 300 件)を調べ、同じコミットに含まれるファイルのペアを数えます。これにより、インポートグラフでは把握できない論理的な結び付き、つまり、インポートでつながっていないにもかかわらず、常に一緒に編集されるファイルを明らかにします。

qartez_impact、qartez_context、qartez_hotspots は、Pagerank、影響範囲、同時変更、複雑度の各シグナルを統合し、ランキング形式で結果を返します。この 4 つすべてを組み合わせる MCP サーバーは、ほかにありません。

ストレージ

すべてのデータは .qartez/index.db に保存されます。これは、FTS5 の全文検索インデックスを備えた単一の SQLite ファイルです。起動時には、更新時刻が変わったファイルだけを Qartez が再解析します。サーバーの実行中はファイルウォッチャーが自動的に有効になり、ファイルの編集や新規作成をバックグラウンドで再インデックスするため、ダウンタイムは発生しません。無効にするには --no-watch を渡します。

トランスポート

Qartez は、標準的な MCP トランスポートである stdio(stdin/stdout を使った JSON-RPC)で通信します。HTTP サーバーもポートの割り当てもなく、ネットワークに公開されることもありません。IDE は qartez バイナリを子プロセスとして起動し、パイプ経由でメッセージをやり取りします。


サポート対象の言語

バイナリは1つ。言語ごとのセットアップは不要です。37言語すべてを tree-sitter で解析します(互換性のある文法がない形式には正規表現によるフォールバックを使用します)。命令型言語21言語では、関数ごとの循環的複雑度も算出し、qartez_hotspots に活用します。

全言語の表(37言語)
言語拡張子/ファイル名
TypeScript / JavaScript.ts .tsx .js .jsx .mts .cts .mjs .cjs
Rust.rs
Go.go
Python.py .pyi
Java.java
Kotlin.kt .kts
Swift.swift
C#.cs
C.c .h
C++.cpp .cc .cxx .hpp .hh .hxx
Ruby.rb
PHP.php
Bash.sh .bash
CSS.css .scss
Scala.scala .sc - クラス、トレイト、オブジェクト、ケースクラス
Dart.dart - クラス、ミックスイン、列挙型、アンダースコアによるプライバシー
Lua.lua - 関数、メソッド(M.f/M:f)、require インポート
Elixir.ex .exs - defmodule、def/defp、defstruct、alias/use/import
Zig.zig - pub fn、構造体、列挙型、共用体、@import
Nix.nix - 属性バインディング、関数、import パス
Haskell.hs .lhs - トップレベル関数、data、newtype、type、型クラス、import
OCaml.ml .mli - let バインディング、type、module、class、exception、open/include
R.r .R - 関数/変数の代入、S4/R6 クラス、library/require/source
Protobuf.proto - message、service、rpc、enum、import
SQL.sql - CREATE TABLE/VIEW/FUNCTION/PROCEDURE、ALTER、BEGIN...END ブロック
HCL / Terraform.tf - ファイル間の var/local/module/data/resource 参照
YAML.yaml .yml - K8s、GitHub Actions、GitLab CI、docker-compose、Ansible
DockerfileDockerfile、Dockerfile.*、.dockerfile - マルチステージの COPY --from 参照
MakefileMakefile、GNUmakefile、.mk - ターゲット、変数、include インポート
TOML.toml - テーブル、キー、テーブル配列
Nginx.conf、.nginx - server、location、upstream ブロック
Helm / Go テンプレート.tpl - define/include/template ブロック
Jenkinsfile / GroovyJenkinsfile、.groovy - pipeline、stage、node、def
Starlark / BazelBUILD、BUILD.bazel、WORKSPACE、WORKSPACE.bazel、.bzl、.star、.bazel - load、name= を持つルール、def
Jsonnet.jsonnet .libsonnet - local 関数/変数、フィールド、import/importstr
CaddyfileCaddyfile、.caddyfile - サイトブロック、handle、reverse_proxy、スニペット
Systemd ユニット.service .timer .socket .mount .target .path .slice .scope - セクション、ExecStart、ディレクティブ

主な対応言語: TypeScript、Rust、Go、Python、Java、Kotlin、Swift、C#、C/C++、Ruby、PHP、Dart、Scala、Elixir、Zig、Lua、Haskell、OCaml、R、ほか17言語。命令型言語21言語すべてで、循環的複雑度をスコア化します。


代替製品との比較

2026年のMCPコードベースインテリジェンス分野は競争が激しくなっています。このセクションでは、直接競合するOSS、エンタープライズプラットフォーム、隣接エコシステムを取り上げます。スター数はすべて、2026年4月に各プロジェクトのGitHubリポジトリと照合して確認しました。

直接競合するOSSのMCP

「コードベースインテリジェンス向けMCPサーバー」というニッチを共有する9つのプロジェクトを、GitHubのスター数順に並べています。

ProjectStarsImpl.Indexing approachLanguagesMCP tools
Qartez (this repo)newRusttree-sitter + SQLite + PageRank + blast radius + co-change + complexity + clones + boundaries3730
Serena23kPythonLSP (per-language language servers)46+~35
code-review-graph10.4kPythontree-sitter + SQLite + Leiden clustering23+28
Claude-Context5.9kTypeScriptEmbeddings + Milvus/Zilliz vector DB144
CodeGraphContext3kPythontree-sitter + KuzuDB / FalkorDB / Neo4j1421
Codebase-Memory MCP1.6kCtree-sitter + SQLite + hybrid type resolution6614
Repowise1.2kPythonDependency graph + git history + LLM-generated docs147
Code Index MCP903Pythontree-sitter (10 langs) + ripgrep fallback for 50+10 + 5011
Codanna651Rusttree-sitter + tantivy FTS + fastembed15~9
Feature-by-feature comparison
機能QartezSerenacode-review-graphClaude-ContextCodeGraphContextCodebase-MemoryRepowiseCode Index MCPCodanna
Tree-sitter による解析はいいいえ(LSP)はいチャンク化のみはいはいいいえはい(10 言語)はい
PageRank による重要度ランキングはいいいえいいえいいえいいえいいえいいえいいえいいえ
影響範囲(推移的な依存先)はいいいえはいいいえいいえはいいいえいいえはい
Git の同時変更マイニングはいいいえいいえいいえいいえはいはいいいえいいえ
関数ごとのサイクロマティック複雑度はい(21 言語)いいえいいえいいえいいえいいえいいえいいえいいえ
ホットスポットのスコアリング(複雑度 × PR × 変更頻度)はいいいえいいえいいえいいえいいえいいえいいえいいえ
構造的なコードクローン検出はいいいえいいえいいえいいえいいえいいえいいえいいえ
アーキテクチャ境界の適用はいいいえいいえいいえいいえいいえいいえいいえいいえ
4 シグナルによる影響分析(PR + 影響範囲 + 同時変更 + 複雑度)はいいいえいいえいいえいいえいいえいいえいいえいいえ
コードスメル検出(巨大関数、フィーチャーエンヴィ)はいいいえいいえいいえいいえいいえいいえいいえいいえ
テストカバレッジのギャップ分析はいいいえいいえいいえいいえいいえいいえいいえいいえ
バスファクター/知識分析はいいいえいいえいいえいいえいいえいいえいいえいいえ
型階層クエリはいLSP 経由いいえいいえいいえいいえいいえいいえいいえ
呼び出しグラフ(呼び出し元/呼び出し先)はい部分対応はいいいえはいはいいいえいいえはい
リファクタリング(名前変更/移動/ファイル名変更)はい(プレビュー+適用)名前変更のみ(LSP);移動は JetBrains プラグイン経由(有料)名前変更のプレビューのみいいえいいえいいえいいえいいえいいえ
ツールチェーンのコマンド実行(テスト/ビルド/lint)はいシェルのみいいえいいえいいえいいえいいえいいえいいえ
スマートなマルチシグナル・コンテキストビルダーはいいいえ部分対応いいえいいえいいえいいえいいえいいえ
一括差分の影響分析はいいいえいいえいいえいいえいいえいいえいいえいいえ
MCP プロンプトテンプレートはい(6 個)いいえはい(5 個)いいえいいえいいえいいえいいえいいえ
ワンコマンドでの複数 IDE へのインストールはい(19 IDE、Rust ウィザード)いいえ(手動)はい(9 IDE)いいえ(手動)はい(10 IDE)はい(10 エージェント)いいえいいえいいえ
セキュリティスキャン(正規表現+PageRank スコアリング)はいいいえいいえいいえいいえいいえいいえいいえいいえ
Git 履歴における複雑度の推移はいいいえいいえいいえいいえいいえいいえいいえいいえ
段階的なツール開示(ティア)はい(4 ティア)いいえいいえいいえいいえいいえいいえいいえいいえ
セマンティック検索/ベクトル検索はい(オプトイン、ローカル埋め込み)いいえオプション(FTS5 ハイブリッド)はい(Milvus)いいえいいえいいえいいえはい(fastembed)
コミュニティ検出+自動 Wiki 生成はい(Leiden+Wiki)いいえはい(Leiden+Wiki)いいえいいえ部分対応(Louvain、Wiki なし)いいえいいえいいえ
グラフの可視化いいえいいえはい(D3.js)いいえはい(Neo4j+HTML)はい(3D インタラクティブ)いいえいいえいいえ
ウォッチモード(増分再インデックス)はい(自動有効)部分対応はい部分対応はいはいいいえはいはい
LLM 評価者によるツールごとのベンチマークを公開はい(28 シナリオ、4.3/10 に対して 8.3/10)第三者によるもののみはい(6 リポジトリ、平均 8.2 倍)限定的(約 40%と主張)いいえはい(arXiv 論文、トークン数 10 倍)いいえいいえ部分対応(criterion)
変更ガード(リスクの高い編集をブロック)はいいいえいいえいいえいいえいいえいいえいいえいいえ
埋め込みモデル/ベクトル DB が必要いいえいいえオプションはいいいえいいえいいえいいえはい
クラウド依存いいえいいえいいえはい(デフォルト)いいえいいえいいえいいえオプション
### エンタープライズ向けおよび IDE ネイティブの代替製品

ローカルファーストやオープンソースを諦めてでも、洗練された機能や複数リポジトリにまたがる規模を求めるユーザー向けに、同じ課題を解決する商用プラットフォームです。

  • Sourcegraph Cody / Amp - コンパイラー品質の SCIP インデクサーを提供し、2026 年から公式 MCP サーバーに対応しています。クラウドファーストで、エンタープライズ向けの価格設定です。
  • Augment Code - シリーズ B で 2 億 2,700 万ドルを調達しました。40 万以上のファイルにまたがるリアルタイムのセマンティックインデックスとコード関係グラフを提供し、2025 年 10 月から公式 MCP サーバーに対応しています。クラウドへの依存があります。
  • Deep Graph MCP (CodeGPT) - 392 スター。クラウドホスト型のナレッジグラフバックエンドです。任意のリポジトリ URL の github.com を deepgraph.co に置き換えると、構築済みのコードグラフを利用できます。ローカルでのインデックス作成は不要です。
  • JetBrains AI Assistant (IntelliJ 2025.2+) - IDE 品質のシンボルと診断情報を公開する、組み込み型 MCP サーバーです。JetBrains 製品専用です。
  • Cursor - 独自の埋め込みモデルと、Turbopuffer を使ったチーム共有インデックスを提供します。クローズドな IDE で、MCP による公開には対応していません。
  • Windsurf Cascade - RAG ベースの M-Query 検索を提供します。クローズドな IDE で、MCP サーバーはありません。

Qartez は、これらのプラットフォームが提供するのと同じ構造的なインテリジェンスを、完全にお使いのノートパソコン上で、無料で提供します。

その他の注目プロジェクト(小規模)
プロジェクトスター数実装言語得意分野
Drift772TS / Rustコードベースのパターンや規約を学習し、セッションをまたいで AI に伝えます
Octocode319RustGraphRAG ナレッジグラフとハイブリッドセマンティック検索(MCP ツール 4 個)
mcp-server-tree-sitter287Pythonエージェントが独自の分析を組み立てられる、tree-sitter クエリの直接公開(約 20 個のツール)
CodeGraph179RustSurrealDB、LSP、ReAct / LATS エージェント型アーキテクチャ、一部の影響範囲分析
RepoMapper150PythonAider の tree-sitter に対する PageRank を、単一の MCP ツールとして提供
Narsil-MCP134Rust90 個の MCP ツール、32 言語、呼び出しグラフ、汚染分析、SBOM セキュリティスキャン
Code Pathfinder118GoMCP 経由のファイル間汚染・データフロー分析を備えた、セキュリティ重視の SAST
Code Graph RAG MCP86TypeScriptグラフと RAG のハイブリッド、26 個の MCP メソッド、クローン検出
Tree-sitter Analyzer20PythonPageRank と、安全でない編集をブロックする modification_guard(17 言語)
AiDex25TypeScript30 個の MCP ツール、タスク管理、スクリーンショットのキャプチャ、Log Hub(11 言語)
隣接するエコシステム(カテゴリは異なりますが、同じ課題に取り組んでいます)
  • Aider repo-map - Paul Gauthier の CLI は、2023 年 10 月に tree-sitter と PageRank を先駆けて採用しました。MCP サーバーではなく、aider CLI の内部で動作します。RepoMapper は、単一の repo_map 出力を MCP として提供します。
  • Continue.dev - MCP のクライアントであり、サーバーではありません。ドキュメントでは、Continue と専用のコードグラフ MCP サーバーを組み合わせることを明示的に推奨しています。この役割を担うのが Qartez です。
  • Context7、Mem0、Pieces LTM - メモリとドキュメントのツールであり、コードベースのインデクサーではありません。競合ではなく、相互補完的なツールです。
  • Block Goose、Cline、Codebuff - MCP サーバーを利用するコーディングエージェントのクライアントです。Qartez のようなツールの利用者です。

Qartez の特長

1. 4 つのシグナルを統合した影響分析。 qartez_impact、qartez_diff_impact、qartez_context、qartez_hotspots は、PageRank による重要度、静的な影響範囲、Git の共変更、サイクロマティック複雑度を統合し、順位付けされた結果を返します。この 4 つすべてを組み合わせたプロジェクトはほかにありません。

2. ホットスポット、クローン、境界、セキュリティ、コードスメル、テストの不足、ナレッジ、トレンドを 1 つのサーバーに集約。 qartez_hotspots は、複雑度 × 結合度 × 変更頻度を基に、リポジトリ内の最も危険な関数を順位付けします。qartez_clones は、AST の形状ハッシュを使って重複したロジックを検出します。qartez_boundaries は、.qartez/boundaries.toml で宣言されたアーキテクチャルールを適用します。qartez_security は、PageRank でスコア付けした脆弱性パターンをスキャンします。qartez_smells は、巨大な関数、長いパラメーターリスト、フィーチャーエンビーを検出します。qartez_test_gaps は、リスク順に順位付けした未テストのソースファイルを見つけます。qartez_knowledge は、git blame からバス係数のリスクを明らかにします。qartez_trend は、関数の複雑度がコミットごとにどう変化したかを追跡します。ほかでは別々の 8 つの商用製品が提供する機能を、ここではそれぞれ 1 回の MCP 呼び出しで利用できます。

3. プレビューと適用が可能な、MCP 経由のリファクタリング。 qartez_rename、qartez_move、qartez_rename_file を使うと、アシスタントから 1 回の MCP 呼び出しで、レビュー可能なアトミックなリファクタリングを実行できます。Serena は LSP 経由の名前変更を提供しますが、言語ごとのサーバーをインストールする必要があります。それ以外のサーバーには、リファクタリングツールがありません。

4. 安全策を内蔵。 変更ガードにより、影響範囲を事前に確認せずに AI が影響の大きいファイルを編集することを防ぎます。主要な競合製品の比較表にあるサーバーで、これを備えているものはほかにありません。

5. 主張ではなく、測定結果で評価。 28 のシナリオ、LLM による判定で品質は 10 点中 8.3 点(比較対象は 4.3 点)、ツールごとのトークン数とレイテンシを測定しています。すべて make bench(単一言語)または make bench-all(5 言語、言語横断の概要付き)で再現できます。

6. Rust ネイティブ、ローカル優先、クラウド依存ゼロ。 バイナリは 3 つ(qartez、qartez-guard、qartez-setup)です。Python ランタイムも、ベクトルデータベースも、クラウドアカウントも不要です。すべてマシン上で動作し、コードが外部に送信されることはありません。オプションの semantic cargo feature を有効にするとローカルの埋め込み検索を追加できますが、デフォルトのビルドではモデルのダウンロードは不要です。


コマンドラインオプション

Qartez はスタンドアロン CLI としても動作します。qartez <tool_name>(例:qartez map、qartez find Config、qartez impact src/server/mod.rs)を実行すると、MCP クライアントを使わず、コアツールや分析ツールをターミナルから直接利用できます。

オプション説明デフォルト
--root <path>インデックス対象のプロジェクトルート(モノレポでは複数指定可能)自動検出
--reindexインデックスをすべて再作成オフ
--git-depth <n>共変更の分析対象とするコミット数300
--db-path <path>インデックスの保存先を上書き.qartez/index.db
--no-watch自動ファイル監視を無効化(デフォルトでは有効)監視オン
--wiki <path>インデックス作成後にアーキテクチャ Wiki を生成オフ
--leiden-resolution <f>クラスターの粒度(値が大きいほどクラスター数が増加)1.0
--format <format>CLI サブコマンドの出力形式:human、json、compacthuman
--log-level <level>error、warn、info、debug、trace(任意の tracing ディレクティブを受け付けます)info

プロジェクトの構成
src/
  main.rs                  Entry point: index, compute, start server
  lib.rs                   Library root (re-exports)
  cli.rs                   CLI argument parsing (19 subcommands)
  cli_runner.rs            CLI subcommand dispatcher
  config.rs                Project configuration and root detection
  error.rs                 Error types
  str_utils.rs             String utilities (stable floor_char_boundary polyfill)
  toolchain.rs             Toolchain detection (Cargo, npm, Go, etc.)
  watch.rs                 File watcher for incremental re-indexing
  guard.rs                 Modification guard evaluation engine
  embeddings.rs            Local embedding model for qartez_semantic (opt-in)
  server/
    mod.rs                 MCP server entrypoint - dispatches to per-tool handlers
    tools/                 30 per-tool handler modules (one file per MCP tool)
    prompts.rs             6 workflow prompt templates
    tiers.rs               Progressive tool disclosure (core/analysis/refactor/meta)
    cache.rs               Tree-sitter parse cache
    helpers.rs             Shared handler utilities
    overview.rs            Overview/map generation
    params.rs              Tool parameter structs
    treesitter.rs          Tree-sitter integration helpers
    mcp_instructions.md    Embedded MCP server instructions
  index/
    mod.rs                 Core indexing engine (full + incremental, import resolution)
    walker.rs              File discovery (respects .gitignore + .qartezignore)
    parser.rs              Tree-sitter parser pool
    symbols.rs             Symbols / imports / references + AST shape hashing
    languages/             37 language adapters (21 with cyclomatic complexity)
  graph/
    mod.rs                 Graph module root
    pagerank.rs            PageRank on import graph
    blast.rs               Blast radius BFS
    leiden.rs              Community detection (Leiden clustering)
    boundaries.rs          Architecture-boundary rules engine
    security.rs            Security rule engine (powers qartez_security)
    wiki.rs                Architecture wiki renderer
  git/
    mod.rs                 Git module root
    cochange.rs            Co-change pair mining
    diff.rs                Diff range analysis (for qartez_diff_impact)
    trend.rs               Complexity trend over git history
    knowledge.rs           Code authorship and bus-factor analysis
  storage/
    mod.rs                 Storage module root
    schema.rs              SQLite + FTS5 schema
    read.rs / write.rs     Query and mutation helpers
    models.rs              Row structs
  bin/
    setup.rs               Interactive IDE setup wizard (19 IDEs)
    guard.rs               PreToolUse modification guard
    benchmark.rs           Benchmark harness entry point
  benchmark/               Benchmark internals (cargo feature)
    profiles/              Per-language benchmark profiles (Rust, TS, Python, Go, Java)
    scenarios.rs           28 benchmark scenarios
    judge.rs               LLM-judge harness
    report.rs              Markdown / JSON report writers
    tokenize.rs            cl100k_base token accounting
scripts/                   Hook + snippet assets embedded by qartez-setup
benchmarks/fixtures.toml   Pinned OSS repos for multi-language benchmarks
reports/                   Generated benchmark.md / benchmark.json artifacts

コントリビューション

バグを見つけましたか?issue を作成してください。言語の追加、パーサーの修正、ツールの改善を希望しますか?プルリクエストを歓迎します。まず CONTRIBUTING.md と CODE_OF_CONDUCT.md をお読みください。大規模な PR では CLA.md への署名が必要です。

git clone https://github.com/kuberstar/qartez-mcp.git
cd qartez-mcp
cargo build
cargo test

各バージョンのリリースノートは CHANGELOG.md にあります。


セキュリティ

脆弱性を見つけましたか?公開の issue は作成しないでください。 SECURITY.md の脆弱性開示ポリシーに従ってください。


ライセンス

Qartez Small Team License(個人および小規模チームは無料)とQartez Commercial License(それ以外のすべてのユーザー向け)のデュアルライセンスです。全文はLICENSEで、商用ライセンスの概要はCOMMERCIAL.mdでご確認ください。SPDX 識別子:LicenseRef-Qartez-Dual。


Grep は人間向けでした。Qartez はエージェント向けです。

Qartez によって AI の月額料金が 10% でも節約できたら、リポジトリにスターを付けてください。このアプローチを試す価値があると、ほかの開発者に伝える唯一の方法です。

コメント

MCP は初めてですか?

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

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