mcpField
D
dep-scope

dep-scope

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

dep-scope について

dep-scopeは、TypeScriptおよびJavaScriptプロジェクトの依存関係をシンボル単位で分析します。CLIとMCPサーバーを備え、重複やネイティブな代替候補を調べ、移行用プロンプトを生成します。

主な機能

  1. 01シンボル単位で依存関係の使用状況を分析
  2. 02重複依存関係と推移的依存関係を検出
  3. 03ネイティブな代替候補と統合候補を検索
  4. 04設定ファイルとmonorepoのワークスペースをスキャン
  5. 05LLM向け移行プロンプトを生成

活用シーン

  1. 01レガシー依存関係のネイティブな代替を調査
  2. 02複数ライブラリを統合できるか評価
  3. 03依存関係移行のコンテキスト付きプロンプトを作成

MCP 対応

MCPサーバーはAIエディター向けに、プロジェクトスキャン、パッケージ分析、移行候補の一覧、プロンプト生成、重複検出のツールを提供します。

設定

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

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

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

パッケージ
npm@florianbruniaux/dep-scope0.4.2

ツール

5

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
srcPathsarrayいいえスキャンするソースディレクトリ(例:['src', 'app'])。プロジェクトのルート全体をスキャンするには ['.'] を使用します。
withKnipbooleanいいえ事前分析に Knip を使用します(デフォルトで自動検出)。
thresholdnumberいいえRECODE 判定のシンボル数のしきい値(デフォルトは 5)。
includeDevbooleanいいえdevDependencies を含めます。
projectPathstringいいえプロジェクトの絶対パス(デフォルトは cwd)。
checkDuplicatesbooleanいいえライブラリの重複検出を含めます。
checkTransitivebooleanいいえネイティブな代替手段があるパッケージについて、推移的依存関係をスキャンします。

詳細

dep-scope

Florian Bruniaux Florian BRUNIAUX · Méthode Aristote の AI 創業エンジニア @ Méthode Aristote
開発者から CTO/VP Eng まで 13 年 · ブログ ↗ · プロジェクト ↗

CI npm version MCP Registry License: MIT Node.js

TypeScript/JavaScript プロジェクト向けのシンボルレベルの依存関係分析+LLM 対応の移行プロンプトです。

「Knip は未使用のものを教えてくれます。dep-scope は、残したものをどのように使っているかを教え、それを削除するためのプロンプトを生成します。」

dep-scope を使う場面

適した用途:

  • レガシープロジェクトの監査:lodash の関数に、ネイティブの代替機能が登場していないか確認する
  • ライブラリの統合:アイコンライブラリが 3 つも本当に必要でしょうか?
  • 移行:コンテキストを考慮したプロンプトを生成し、Claude Code にリファクタリングを任せる
  • 興味・関心:「この 50KB のライブラリから、実際にどのシンボルを使っているのでしょうか?」

適したツールではない場合:

  • 未使用の依存関係だけを調べたい → 代わりに Knip を使ってください
  • コードベースがすでに適切に保守されている → dep-scope はほとんどの場合「KEEP」と表示します

簡単な例

$ dep-scope scan

═══════════════════════════════════════════
  dep-scope Analysis Report
═══════════════════════════════════════════

Summary:
  Total dependencies: 45
  ✓ Keep:          38
  ↻ Recode Native: 3
  ✗ Remove:        2
  ⊕ Peer Dep:      4

Action Items:
  Remove (unused):
    ✗ moment
    ✗ has-flag

  Recode to native:
    ↻ lodash.debounce (1 symbol) → custom debounce function
    ↻ array-includes (1 symbol) → Array.prototype.includes
    ↻ left-pad (1 symbol) → String.prototype.padStart

比較

機能KnipDepcheckModernedep-scope
未使用の検出✅ 優秀✅ 良好❌⚠️ 基本的
設定ファイルのスキャン✅✅❌✅
シンボルレベルの分析❌❌✅✅
ネイティブ代替機能のデータベース❌❌✅ (lodash)✅ 195 パッケージ
e18e マイクロユーティリティの対応❌❌❌✅
推移的グラフの分析❌❌❌✅
モノレポのワークスペース対応⚠️❌❌✅
重複の検出❌❌❌✅
LLM 移行プロンプト❌❌❌✅
MCP サーバー(AI エディター)❌❌❌✅
オープンソース/無料✅✅❌ 企業向け✅

推奨:未使用の検出には Knip、より詳細な分析と移行には dep-scope を使ってください。両者は相性よく連携します(dep-scope は Knip がインストールされていれば自動検出します)。

インストール

CLI(グローバル):

npm install -g @florianbruniaux/dep-scope

インストールせずに使う場合:

npx @florianbruniaux/dep-scope scan

MCP サーバー(AI エディター — CLI 不要):

エディターの MCP 設定に追加すると、必要に応じて npx 経由でサーバーが実行されます。エディターごとの設定例については、以下の MCP サーバー セクションをご覧ください。

ソースから:

git clone https://github.com/FlorianBruniaux/node-dep-scope.git
cd node-dep-scope
npm install && npm run build && npm install -g .

クイックスタート

cd /path/to/your/project

dep-scope init                        # configure dep-scope for your project (interactive)
dep-scope scan                        # full scan
dep-scope scan --root                 # scan full project, including scripts/ tools/ bin/
dep-scope scan --check-duplicates     # include duplicate detection
dep-scope scan --check-transitive     # surface transitive polyfills (e18e database)
dep-scope scan --each-workspace       # monorepo: scan each package individually
dep-scope migrate                     # generate migration prompts for all candidates
dep-scope migrate lodash              # target a specific package
dep-scope report -o ./audit.md        # markdown report

セットアップ:dep-scope init

初めてスキャンする前に dep-scope init を実行してください。ウィザードがプロジェクトを検出し、4 つの質問を通じて設定を生成します。

dep-scope init

  Detected: Next.js project
  Found dirs: src/, scripts/, app/

? Source directories to scan:
  ● Auto-detected: src/, scripts/, app/  (recommended)
  ○ Full project root (.) — includes everything
  ○ Choose directories manually...

? Include devDependencies in scan? (y/N)
? Symbol threshold for RECODE_NATIVE verdict: (5)
? Config format:
  ● .depscoperc.json  (simple JSON, recommended)
  ○ depscope.config.ts  (TypeScript with autocomplete)

✓ Created .depscoperc.json
  Preset: react  |  Dirs: src, scripts, app  |  Threshold: 5

CI でプロンプトをスキップするには -y を使います:dep-scope init --yes。

正確な結果を得る

自動検出の対象は、src、app、lib、pages、components、hooks、server、scripts、tools、bin、cliです。プロジェクト内にこれ以外の場所にもコードがある場合は、--rootを指定してすべてをスキャンするか、.depscoperc.jsonでsrcPathsを明示的に設定してください。

{
  "srcPaths": ["src", "app", "scripts", "tools"]
}

「未使用」という誤判定ではありませんか? パッケージがスキャン範囲外のディレクトリ(scripts/、tools/など)で使用されている可能性があります。削除する前に、dep-scope scan --rootを実行して確認してください。スキャン範囲が狭い場合に削除が推奨されると、dep-scopeが警告します。

設定ファイルの検出

dep-scopeは、文字列で参照されるパッケージが「未使用」と誤判定されないよう、プロジェクトのルートにある設定ファイルを自動的にスキャンします。これは、CLIツール、テストランナー、フレームワークのプラグインでよく使われるパターンです。

自動検出されるファイル:

設定ファイル検出例
package.jsonのスクリプト"lint": "oxlint .", "format": "oxfmt ."
vitest.config.*environment: "jsdom", setupFiles: ["@testing-library/jest-dom"]
vite.config.*plugins: ["@vitejs/plugin-vue"]
next.config.*turbo.rules["*.svg"].loaders: ["@svgr/webpack"]
.storybook/main.*addons: ["@storybook/addon-mcp"]

これらのパッケージは、REMOVEではなく、INVESTIGATE(十分に使用されている場合はKEEP)として表示されます。

無効化 — .depscoperc.jsonで特定の検出器を無効にできます。

{
  "stringReferences": {
    "disable": ["storybook-config"]
  }
}

使用できる検出器ID:package-json-scripts、vitest-config、vite-config、next-config、storybook-config。設定ファイルのスキャン全体を無効にするには、"disable": "all"を使用してください。

カスタム検出器を追加 — depscope.config.tsで設定します。

import { defineConfig, defineDetector } from "@florianbruniaux/dep-scope";

export default defineConfig({
  stringReferences: {
    detectors: [
      defineDetector({
        id: "my-tool-config",
        label: "my-tool.config.json",
        filePatterns: ["my-tool.config.json"],
        async detect(filePath, ctx) {
          // return StringReference[] for packages found in this file
          return [];
        },
      }),
    ],
  },
});

MCP サーバー

dep-scopeはModel Context Protocolサーバーを提供しているため、AIエディター(Claude Code、Cursor、Windsurf)から依存関係をインラインで照会できます。CLIやMarkdownファイル、コピー&ペーストは不要です。

公式MCP Registryに掲載されています:io.github.FlorianBruniaux/dep-scope

使用できるツール
ツールパラメーター機能
scan_projectprojectPath、srcPaths、threshold、includeDev、checkDuplicates、checkTransitive、withKnip判定付きで依存関係を完全にスキャン
analyze_packagepackageName、projectPath、srcPaths1つのパッケージをシンボル単位で分析
get_migration_candidatesprojectPathRECODE_NATIVEとCONSOLIDATEのパッケージをすべて一覧表示
generate_migration_promptpackageName、projectPath移行プロンプトをインラインで生成
find_duplicatesprojectPath重複するライブラリを検出
セットアップ

エディターの設定に、以下のmcpServersエントリーを追加してください。サーバーはnpxを使って必要に応じて実行されるため、グローバルインストールは不要です。

Claude Code — ~/.claude.json:

{
  "mcpServers": {
    "dep-scope": {
      "command": "npx",
      "args": ["--package=@florianbruniaux/dep-scope", "-y", "dep-scope-mcp"]
    }
  }
}

Claude Desktop — ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "dep-scope": {
      "command": "npx",
      "args": ["--package=@florianbruniaux/dep-scope", "-y", "dep-scope-mcp"]
    }
  }
}

Cursor — ~/.cursor/mcp.json:

{
  "mcpServers": {
    "dep-scope": {
      "command": "npx",
      "args": ["--package=@florianbruniaux/dep-scope", "-y", "dep-scope-mcp"]
    }
  }
}

Windsurf — ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "dep-scope": {
      "command": "npx",
      "args": ["--package=@florianbruniaux/dep-scope", "-y", "dep-scope-mcp"]
    }
  }
}

接続すると、CLIコマンドを実行しなくても、セッション中にAIエディターへscan_projectやgenerate_migration_promptを直接呼び出すよう依頼できます。

ドキュメント

要件

  • Node.js >= 18.0.0
  • package.jsonを含むTypeScript/JavaScriptプロジェクト

エコシステムを探索する

これらのプロジェクトは、このツールと機能が重複することなく、ワークフローを拡張します。

  • claude-code-pluginsで自動化する:コード品質ワークフローにシンボルレベルの依存関係分析を追加します。
  • Claude Code Ultimate Guideで学ぶ:CLI と MCP のどちらを使うか選び、品質チェックの方針を定めます。

オープンソースのエコシステム全体を見る

ライセンス

MIT

コメント

MCP は初めてですか?

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

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