DevLens について
DevLensはリポジトリを事前解析して意味情報を含むコードグラフを構築し、AIエージェントや開発者に関連度順のコード情報を返します。5つの言語系に対応し、MCPツールでシンボル検索、呼び出し経路、変更影響、ノードごとのセキュリティ概要を調べられます。
主な機能
- 01検索可能なコードグラフの構築
- 02トークン予算内でタスク別の情報を返却
- 03シンボル検索と呼び出し元・先の確認
- 04変更影響とコミット差分の追跡
- 05ノード単位のセキュリティ概要
- 06インタラクティブなWeb UIでグラフを表示
活用シーン
- 01エージェントのタスクに関係するコードの特定
- 02シンボルの呼び出し経路の追跡
- 03コード変更前の影響評価
- 04コードグラフのノードにあるセキュリティ問題の確認
MCP 対応
stdioまたはHTTPのMCPサーバーが、コードグラフ検索、シンボル検索、ノード詳細、影響分析、リポジトリ管理向けの自己記述型ツールを5つ提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 今日に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| task | string | はい | 平易な言葉で記述した実際の質問またはタスク |
| focus | array | いいえ | パケットの中心にする nodeIds、シンボル名、または filePaths |
| intent | enum | いいえ | デフォルト:exploratorypinpoint | reference-list | flow | overview | concept | security-audit | exploratory |
| repoPath | string | いいえ | 複数のリポジトリを分析していて、作業フォルダーが曖昧な場合にのみ必要です |
| commitHash | string | いいえ | デフォルトは最後に分析されたコミットです |
| tokenBudget | number | いいえ | 500..100000。デフォルト値はリポジトリのサイズに応じて変わります。コード本体はこの予算に加算されます。 |
詳細
DevLens
AI エージェントと開発者のためのコードベースインテリジェンス。
リポジトリを一度分析すれば、AI エージェントはMCP経由で事前計算済みのコードグラフを照会できるため、コードベースをファイルごとに読み直す代わりに、ランキング済みのファイル、呼び出しフロー、影響範囲、セキュリティ情報を取得できます。自己記述型のMCPツールを5つ備え、コードを読む場合の3分の1のトークン数で済むプレーンテキストのパケットを返し、ベンチマーク対象の中で最小のレスポンスを実現します。
画像をクリックしてデモをご覧ください
DevLensを選ぶ理由
- エージェントがトークンを浪費しなくなります。 1回のMCP呼び出しで、タスクに合わせたパケットが返されます。重要なファイルとシンボルがランキングされ、トークン予算内に収まります。grepの繰り返しや、ファイルの読み直しは不要です。
- ベンチマークで勝っています。 正確性、F1、再現率、適合率のすべてで、9つのツール中トップです。品質に関するすべての項目でリードする唯一のツールです。
- 高速かつコンパクトです。 呼び出しあたり67 msで、パケットは最も近いグラフ競合製品より6.7倍小さく、設定したトークン予算を超えることはありません。
- 開発者にも役立ちます。 インタラクティブなグラフの可視化、シンボル変更前の影響範囲、PRレビュー用パケット、ノードごとのセキュリティ分析を利用できます。
ベンチマーク
DevLens MCPを、他のコードグラフおよび検索ツールである Graphify、codegraph、semble、bm25 と比較しました。ヘッドレスのコーディングエージェント1つ、モデル1つ、実際のTypeScriptリポジトリ1つを使い、実際のプルリクエストとシンボルをもとに作成した133件の質問で評価しました。
| DevLens V3(ツール5つ) | Graphify | codegraph | semble | bm25 | |
|---|---|---|---|---|---|
| 正確性(エージェントループ、同一実行) | 0.643 | 0.619 | 0.667 | 0.714 | 0.667 |
| F1(エージェントループ、同一実行) | 0.529 | 0.526 | 0.604 | 0.636 | 0.581 |
| 正確性(検索レイヤー) | 0.694 | 0.662 | 0.674 | 0.652 | 0.664 |
| レスポンスパケット | 2,230 tokens | 15,020 tokens | 6,339 tokens | 736 tokens | 721 tokens |
| 呼び出しあたりのレイテンシ | 67 ms | 2,469 ms | 2,736 ms | 508 ms | 108 ms |
最も直接的な競合製品である Graphify(tree-sitterグラフ、MCP サーバー)との直接比較では、DevLensがすべての指標で勝っています。エージェントループでの正確性(0.643対0.619、同一実行)、検索レイヤーでの正確性(0.694対0.662、同一の質問で勝ち15・負け9のペア比較)、6.7倍小さいパケット(2,230対15,020トークン。比較可能な54件すべてで小さい)、そして呼び出しあたり約37倍高速(67 ms対2,469 ms)です。さらにGraphifyのグラフは、品質が低いにもかかわらず、ノード数が64%多く、エッジ数は3.6倍です(16,999ノード/71,694エッジ対10,346ノード/19,847エッジ)。
数値の背景にある傾向:構文解析ツールは、大きな塊や行番号だけのリストを返します。DevLensは、型解決済みのグラフからタスクに合わせたパケットを返します。重要なファイルをランキングし、トークン予算内に収めて、数ミリ秒で届けます。
詳細な方法論、種類別の表、9ツールの比較ラウンド: docs/PUBLIC-BENCHMARKS.md
DevLens の比較
DevLens は、この分野で唯一、ネイティブなセマンティック解析、ノードごとの AI 要約とセキュリティ分析、フレームワークを考慮したデータエッジを組み合わせたツールです。また、AGPL の下で商用利用できる唯一の選択肢です。
| 項目 | DevLens | Graphify | GitNexus | Sourcegraph | DeepWiki |
|---|---|---|---|---|---|
| 解析の深さ | ネイティブなセマンティックパーサー(TS コンパイラー、Python ast、go/types、JavaParser、syn)を使用し、型を解決 | tree-sitter(構文解析のみ。型情報なし) | tree-sitter + ネイティブバインディング(型情報なし) | SCIP/LSIF シンボルインデックス + 言語サーバー(セマンティック解析なし) | LLM がソースを直接読み取る(構造化パーサーなし) |
| エッジの品質 | 型チェック済みの IMPLEMENTS/EXTENDS、フレームワークのルート(Next.js、Django、Spring、Gin、axum)、ORM データエッジ(READS_FROM/WRITES_TO) | EXTRACTED/INFERRED/AMBIGUOUS タグ。型やフレームワークの認識なし | 呼び出しチェーン、クラスター、route_map。ORM やデータエッジなし | 正確なシンボルの相互参照(SCIP)。型チェック済みの継承なし | ドキュメントレベルの関係(構造化グラフなし) |
| ノードごとの AI 要約 | 技術・ビジネス・セキュリティの各要約を、すべてのノードに重要度付きで提供 | なし(LLM はドキュメントと概念に使用) | なし(セマンティック検索に埋め込みを使用) | Cody 経由(ホバー表示とインラインドキュメント、チャットレベル) | シンボルごとのドキュメントを自動生成(セキュリティなし、技術とビジネスの区別なし) |
| セキュリティ分析 | ノードごとの重要度 + 影響範囲。実際のエクスプロイトの説明付き | なし | 一部対応(オプトインの PDG/taint) | なし(コンプライアンス認証のみ) | なし |
| エージェント / MCP 統合 | CLI + 自己記述型 MCP サーバー + Web UI | CLI + ローカルスキル(MCP なし) | CLI + 17 ツールの MCP + フック(AGENTS.md) | MCP サーバー(リポジトリ横断検索。リポジトリごとのグラフクエリーには非対応) | 不明(公開された MCP 統合なし) |
| 言語対応 | TS/JS、Python、Java、Go、Rust。それぞれにネイティブパーサーを搭載 | 12 のコードファミリー + ドキュメント/画像(浅い構文解析) | tree-sitter により多数に対応(Dart/Kotlin/Swift)。浅い構文解析 | 言語サーバーにより 30 以上に対応(シンボルレベル。セマンティックエッジなし) | 任意の言語(LLM がソースを読み取る。構造化抽出なし) |
| ライセンス / 価格 | AGPL-3.0、無料、商用利用も可能 | Apache-2.0 | PolyForm Noncommercial(商用利用不可) | オープンソースのコア。有料の Enterprise 版あり | 公開リポジトリは無料。エンタープライズ向けプランは非公開 |
(公開情報に基づく機能比較。2026 年 8 月。)
チームが DevLens を選ぶ理由: 構文解析ツールでは生成できないセマンティックエッジ、他のオープンソースツールにはないノードごとのセキュリティ分析、ベンチマークで最も優れた検索品質、そして単一の MCP 入口を提供し、商用利用も無料です。
クイックスタート
ステップ 1 — CLI をインストールする
npm install -g @devlensio/cli
または、スタンドアロンバイナリをインストールします(Node.js は不要です)。
# Linux / macOS
curl -fsSL https://raw.githubusercontent.com/devlensio/devlensOSS/main/scripts/install.sh | sh
# Windows (PowerShell)
irm https://raw.githubusercontent.com/devlensio/devlensOSS/main/scripts/install.ps1 | iex
ステップ 2 — モデルを設定する(任意)
AI 要約が必要な場合のみ設定します。構造のみの分析は、API キーなしでオフラインでも動作します。
devlens init
プロバイダー、API タイプ、キー、エンドポイント、モデルの選択を対話形式で案内します。各ステップで ESC を押すと、前の段階に戻れます。推奨モデルについては、設定を参照してください。
ステップ 3 — リポジトリを分析する
cd your-project
devlens analyze . --summarize
グラフを構築し、要約を生成して、検索インデックスを作成します。これらの処理は一度だけ行います。以降は、以下のすべてをすぐに利用できます。
ステップ 4 — AI エージェントを接続する
MCP サーバーを起動します:
devlens mcp
次に、エージェントに登録します。使用するツールを選択してください:
Claude Code / Claude Desktop
claude mcp add devlens -- devlens mcp
Cursor — .cursor/mcp.json に追加します:
{
"mcpServers": {
"devlens": { "command": "devlens", "args": ["mcp"] }
}
}
Codex — ~/.codex/config.toml に追加します:
[mcp_servers.devlens]
command = "devlens"
args = ["mcp"]
Hermes — config.yaml に追加します:
mcp:
servers:
devlens:
command: devlens
args: [mcp]
その他の MCP クライアント — このサーバーは、stdio 経由の標準 MCP に対応しています。クライアントからコマンド devlens mcp を指定してください。代わりに HTTP トランスポートを使用する場合:
devlens mcp http -p 7000
サーバーは tools/list を通じてツールの全リストを自動で提供するため、エージェントはすべてのツールを自分で検出できます。これで完了です。エージェントに「このリポジトリの認証の仕組みは?」と尋ねて、ファイルを読む代わりにグラフを検索する様子を確認してください。
エージェントに質問できること
サーバーは tools/list を通じて各ツールのパラメーターを自動で提供するため、エージェントが自動的に値を設定します。ツールは 5 つで、graphId は一切ありません — 作業フォルダーからリポジトリが解決されます。
| ツール | 主な引数 | 内容 |
|---|---|---|
resolve_context | task(必須)、intent?、focus?、tokenBudget? | 最初の窓口です。 1 回の呼び出しで、タスクに沿ったプレーンテキストのパケットを返します。ANSWER 行、順位付けされたノードと 1 行の説明、呼び出しフロー、該当行のスニペットを含む関連ファイル、ID マップが、すべてトークン予算内に収まります。インテント:pinpoint、reference-list、flow、overview、concept、security-audit、exploratory。 |
find_symbols | query(必須)、limit? | 低コストな BM25F 名称検索です。nodeIds と file:line を返し、グラフやソースは返しません。 |
get_node | node(必須)、include? | 1 つのノードの詳細情報を返します。技術面、ビジネス面、セキュリティ面の要約に加え、呼び出し元、呼び出し先、および(オプトイン時には)生ソースが含まれます。 |
impact | target? またはコミットの from+to | 変更の影響を調べます。シンボルを変更した場合に何が壊れるかを確認できます。2 つの解析済みコミットを指定するコミット範囲差分モードにも対応しています。 |
repo | action | 解析済みグラフを管理します:list、analyze、freshness、health。 |
すべてのレスポンスには provenance ブロック(commitHash、analyzedAt、hasGit)が含まれるため、エージェントはどのスナップショットに基づいて回答したかを常に把握できます。
詳細なリファレンス:
docs/mcp-reference.md
対応言語
DevLens はネイティブパーサーで 5 つの言語ファミリーを解析し(AI、正規表現、tree-sitter は使用しません)、それらのフレームワークも理解します。要約は確認なしに生成されることはありません。トークンを使用する前に確認でき、構造のみの解析にはプロバイダーは不要です。
| 言語 | グラフが理解するフレームワーク/スタック | 解析対象 |
|---|---|---|
| TypeScript / JavaScript | React、Next.js(app router と pages router)、Express/Hono/Fastify、React Router、TanStack Router、あらゆる Node | コンポーネント、フック、状態ストア、クラス、メソッド、関数、ルート |
| Python | FastAPI、Flask、Django(+DRF)、SQLAlchemy / Django ORM、Celery、Pydantic | クラス、メソッド、関数、ルート、データモデル |
| Java | Spring Boot(コントローラー、JPA、Spring Data リポジトリ) | クラス、メソッド、インターフェース、列挙型、ルート |
| Go | net/http、Gin、Echo、chi、Fiber、GORM、database/sql | 構造体、インターフェース、メソッド、関数、ルート |
| Rust | axum、actix-web、rocket、utoipa、Diesel | 構造体、列挙型、トレイト、impl ブロック、メソッド、関数、ルート |
各リポジトリは、それぞれの言語固有のパーサー(Python の ast、JavaParser、Go の go/ast と go/types、Rust の syn、TS compiler API)で解析されるため、エッジは実際のコードに基づきます。型チェック済みインターフェース(IMPLEMENTS)、フレームワークのルート(HANDLES)、ORM のデータレイヤー(READS_FROM、WRITES_TO)を把握できます。
開発者向け:Web UI
コードベースをインタラクティブなグラフとして表示したい場合に使います。
Web UIを開き、リポジトリのパスを貼り付けて、力学ベースのキャンバスを探索します。ノードをクリックすると、その要約、呼び出し元、呼び出し先、セキュリティフラグが表示されます。バージョンをまたいで検索、絞り込み、コミットの差分を確認できます。プロジェクトパネルには、検索インデックスの準備状況が表示され、ワンクリックで再インデックスを実行できます。
bun start # from the source repo: API + Web UI on one port (http://localhost:3000)
Web UIはソースツリーから実行され、インストール済みのCLIバイナリには同梱されていません。
CLI
スクリプト、CI、ターミナルから離れずに素早く回答を得る場合に使います。すべてのコマンドが、スクリプトへの受け渡し用の--json、診断用の-v/--verbose、最小限の出力にする--quietに対応しています。
分析と要約
| コマンド | 機能 |
|---|---|
devlens detect [path] [--deps] | 分析前にリポジトリを検査します:言語、マニフェスト、依存関係の数、ソースファイル |
devlens analyze [path] [--summarize] [--force-summarize] | グラフと検索インデックスを構築します(必要に応じてAI要約を追加) |
devlens summarize [target] | 技術、ビジネス、セキュリティの要約を(再)生成します |
devlens status | 分析済みのリポジトリ、その言語、要約のカバレッジを表示します |
devlens doctor | 環境のヘルスチェック:git、ストレージ、LLMプロバイダー、4つのエクストラクターランタイム(go、rust、java、python) |
devlens init | 初回セットアップ:LLMプロバイダーを対話形式で設定します |
探索と理解
| コマンド | 機能 |
|---|---|
devlens overview | 全体像:言語、フレームワーク、統計、中心的なノード |
devlens top-nodes [-l <n>] | スコアが最も高い(最も中心的な)ノード |
devlens find-nodes <name> [-t <type>] | 名前、タイプ、ファイル、または深刻度で検索します(例:-t ROUTE) |
devlens nodes-in-path <path> | ファイルまたはフォルダー内のすべてのノード |
devlens get-node <id> | 1つのノードの詳細:要約、呼び出し元、呼び出し先 |
devlens node-code <id> | ノードのソースコード(コストが高いため、get-nodeを推奨) |
devlens architecture | 1回の呼び出しで取得できるアーキテクチャ概要:モジュール、ルート、フロー、健全性 |
devlens get-context <query> | エージェント向けのトークン予算に合わせたコンテキストパケット |
影響と品質
| コマンド | 機能 |
|---|---|
devlens blast-radius <id> | これを変更した場合に何が壊れるか(上流の依存先) |
devlens khop <id> | 何に依存しているか(下流) |
devlens subgraph <seed> | ノードが属するまとまりのあるクラスター(モジュール) |
devlens cycles | 循環依存 |
devlens security [--min-severity ...] | 深刻度と説明を含むセキュリティ検出結果 |
devlens security-brief | 影響範囲を含む、優先度順のセキュリティレポート |
devlens diff <from> <to> | 分析済みの2つのコミットを比較します |
devlens review-pr <from> <to> | PRレビュー用パケット:差分、影響、テスト、セキュリティの変化 |
devlens check-freshness | グラフがHEADと比べて古くなっているか確認します |
管理と統合
| コマンド | 機能 |
|---|---|
devlens config | LLMプロバイダーの設定(~/.devlens/config.json)を表示または設定します |
devlens repos | 分析済みのリポジトリを一覧表示します |
devlens graphs list | delete | 保存済みグラフを管理します |
devlens reindex [graphId] [commitHash] [--force] | 再分析せずにローカル検索インデックス(.search.json)を再構築します。引数を指定しない場合、すべてのグラフの最新コミットを再インデックスします |
devlens serve | バックエンドHTTP APIのみを起動します(MCP サーバーとWeb UIで使用) |
devlens mcp | MCP サーバーを実行します(クイックスタートを参照) |
devlens update [--check] | CLIを最新の公開バージョンに更新します。パッケージマネージャーは自動検出されます(npm/pnpm/yarn/bun)。--checkは確認と結果の報告のみを行います(--jsonでパイプ可能)。オフライン、最新状態、ソースチェックアウト、グローバルではないインストールの場合は、それぞれ明示的なメッセージが表示されます |
実践例
devlens analyze . --summarize # graph + summaries + search index
devlens find-nodes -t ROUTE # every route in the app
devlens blast-radius "src/auth/login.ts::login"
devlens reindex # index everything up front
完全なリファレンス: 各コマンドのオプションと使用例については、
src/cli/README.mdを参照してください。
要約する方法
要約はノードごとの AI による説明で、クエリをより豊かなものにします。分析時に実行するか、後からいつでも実行できます。
devlens analyze . --summarize # during analysis (recommended)
devlens summarize . # current directory's repo
devlens summarize <graphId> # a stored graph
devlens summarize . --force-summarize # re-generate even if summarized
devlens summarize . --provider openai --provider-name deepseek --model deepseek-v4-flash
リポジトリを再要約する際は、要約がないノードのみが処理されるため、トークンが二重に消費されることはありません。devlens init でプロバイダーを一度設定してください。
設定
設定は ~/.devlens/config.json に保存され、devlens init または devlens config で設定できます。各プロバイダーの /models エンドポイントからモデルが動的に検出されるため、ハードコードされたモデルリストはありません。予算と品質基準に合うものを選んでください。
devlens config --set # interactive setup
devlens config --provider openai --provider-name deepseek --model deepseek-v4-flash --api-key <key>
devlens config --active openai:deepseek # switch saved provider
devlens doctor # health check
DevLens が理解するもの
グラフはリポジトリと言語ごとに作成されます。ノードの種類には、言語に応じて FILE、FUNCTION、METHOD、CLASS、INTERFACE、STRUCT、ENUM、TRAIT、IMPL_BLOCK、ROUTE、COMPONENT、HOOK、STATE_STORE、UTILITY、TEST、STORY、THIRD_PARTY が含まれます。各ノードには重要度スコアが付与され、要約後は機能、技術、セキュリティに関する要約も保持されます。
エッジの種類(グラフが描画する接続):CALLS、IMPORTS、READS_FROM、WRITES_TO、PROP_PASS、EMITS、LISTENS、WRAPPED_BY、GUARDS、HANDLES、TESTS、USES、NEXTJS_API_CALL、NAVIGATES_TO、IMPLEMENTS(クラスからインターフェース、トレイト、または ABC への接続)、EXTENDS(クラスから基底クラスへの接続)。EXPORTS、THROWS、MODULE、PACKAGE は、今後対応する言語向けに予約されています。
ルーターの認識:Next.js(app と pages)、React Router、TanStack Router、wouter、Express、Fastify、Hono、Koa、Django URLconf と DRF、Flask ブループリント、@RestController(Spring)、Gin、Echo、chi、プレーンな HTTP ハンドラー、axum、actix、rocket のルートが実際のグラフノードになります。
検索インデックス
分析した各コミットには、グラフの隣に派生 BM25F 検索インデックスが作成されます。保存先は ~/.devlens/graphs/<graphId>/commits/<commitHash>.search.json です。
devlens analyzeとdevlens summarizeを実行するたびに、生成されたコミットのインデックスが再構築されるため、すぐに検索できます。- 古いバージョンの DevLens で構築されたグラフにはインデックスがありません。初回検索時に遅延インデックス作成されます。または、
devlens reindexですべてをあらかじめインデックス化できます。 - インデックスは派生データです。削除しても問題なく、必要に応じて再構築されます。
devlens reindex # latest commit of every graph
devlens reindex <graphId> # every commit of one graph
devlens reindex <graphId> <commitHash> --force # one commit, rebuilt even if present
同じ操作は HTTP 経由でも利用できます:POST /api/reindex および POST /api/reindex/:graphId?commitHash=...&force=1。
スクリーンショット
グラフエクスプローラー · 要約とセキュリティリスクを表示するノードインスペクター · フォーカスしたサブグラフ · セキュリティ上の検出事項
高速で低コストな理由
ノードの要約はおよそ 50 トークンです。説明対象のファイルはおよそ 2,000 トークンです。要約とグラフの一部をクエリするコストは、ファイルを読む場合のごく一部なので、人間はより早く回答を得られ、AI エージェントは同じタスクで消費するトークンを大幅に減らせます。
対象ユーザー
- 開発者とチーム:数週間ではなく数時間でオンボーディングを済ませ、影響範囲を把握して PR をレビューし、循環依存や巨大ファイルを検出して、生きたドキュメントを維持できます。
- エンジニアリングリーダー:アーキテクチャを俯瞰し、技術的負債が危機になる前に発見できます。
- AI 活用開発者:エージェントがファイルを読み直してトークンを浪費するのをやめさせ、代わりにグラフをクエリさせられます。
リポジトリの構成
devlensOSS/
├── src/
│ ├── cli/ # `devlens` CLI (commander program + commands)
│ ├── core/ # Shared query core (CLI + MCP, they never drift)
│ ├── mcp/ # MCP server (stdio + HTTP) and packet renderer
│ ├── search/ # Local BM25F search stack (index, query, cache)
│ └── server/ # HTTP API for the Web UI + Next.js proxy
├── frontend/ # Next.js graph visualizer (Cytoscape)
├── plugins/devlens/ # Deprecated agent skill source (old installs)
├── packages/skill-installer/ # @devlensio/skill (deprecated)
├── bin/ + npm/<platform>/ # Launcher and prebuilt binary packages
├── scripts/ # Release tooling + start.mjs (bun start build-or-skip)
└── server.json # MCP registry manifest
分析エンジン(ネイティブパーサーとグラフ構築)は、独立した devlensio パッケージとして提供されます。
DevLens Cloud
ホスト版を開発中です。共有可能なグラフ、チームのワークスペース、ノードの要約を含むコミットごとのライブドキュメント、詳細なPR分析(要約、影響、セキュリティ)、追加・変更・削除されたノードを示すコミット差分、コードベースを対象としたAIネイティブなチャットを利用でき、ローカルでのセットアップは不要です。
ライセンス
AGPL-3.0。ツールファミリー devlensio の一部です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
