Ckb Code Knowledge Backend について
CKB(Code Knowledge Backend)は、コードベースをクエリ可能なナレッジベースに変換し、コマンドライン、HTTP API、AI アシスタントから利用できるようにします。変更の影響分析、オーナー特定、デッドコード検出が必要な開発者やチーム向けです。
主な機能
- 01コールグラフとシンボル参照のクエリ
- 02リスクスコア付きの影響分析
- 03オーナー検索とレビュアー提案
- 04デッドコードとホットスポットの検出
- 05シークレットスキャンとセキュリティ関連コードの特定
- 06MCP 経由で公開されるプリセットツールセット
活用シーン
- 01コード変更前に影響範囲を評価し、実行すべきテストを選ぶ
- 02PR レビューで破壊的変更やリスクの高い箇所を特定する
- 03不慣れなコードベースのアーキテクチャと呼び出し関係を把握する
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
19掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| depth | enum | いいえ | 探索の詳細度:shallow(簡易概要)、standard(バランス型)、deep(包括的)shallow | standard | deep |
| focus | enum | いいえ | 重点を置く側面:structure(シンボル/型)、dependencies(インポート/エクスポート)、changes(ホットスポット/履歴)structure | dependencies | changes |
| target | string | はい | 探索するファイル、ディレクトリ、またはモジュールのパス |
詳細
CKB — Code Knowledge Backend
コードを把握し、安全に変更し、自信を持ってリリースしましょう。
CKB は、コードベースを検索可能なナレッジベースに変換します。CLI、API、AI アシスタントを通じて、質問への回答、影響範囲の把握、担当者の特定、デッドコードの検出ができます。
あらゆるコード行、あらゆる決定、あらゆる担当者を把握していて、質問に24時間いつでも答えてくれる、シニアエンジニアのようなものだと考えてください。
難しい質問にもすぐに回答
| 質問 | CKB なし | CKB あり |
|---|---|---|
| 「これを変更したら、何が壊れますか?」 | Grep して、あとは祈る | リスクスコア付きの正確な影響範囲 |
| 「この PR は誰にレビューしてもらうべきですか?」 | git blame から推測 | データに基づくレビュアーの提案 |
| 「このコードはまだ使われていますか?」 | 削除して、何が壊れるか確認 | 信頼度スコア付きのデッドコード検出 |
| 「どのテストを実行すべきですか?」 | すべて実行(30分) | 影響を受けるテストだけを実行(2分) |
| 「このシステムはどのように動作しますか?」 | 何時間もコードを読む | アーキテクチャをすぐに検索 |
| 「このコードの担当者は誰ですか?」 | CODEOWNERS を手動で検索 | ドリフト検出付きの担当者情報 |
| 「公開されたシークレットはありますか?」 | パターンを手動で Grep | 26種類のパターンによる自動スキャン |
できること
🔍 把握 — セマンティック検索、呼び出しグラフ、使用状況のトレース、アーキテクチャマップ
⚡ 分析 — 影響分析、リスクスコアリング、ホットスポット検出、結合度分析
🛡️ 保護 — 影響を受けるテストの検出、破壊的変更の警告、PR リスク評価
🔐 セキュリティ確保 — シークレット検出、認証情報のスキャン、セキュリティ上重要なコードの特定
👥 共同作業 — 担当者の検索、レビュアーの提案、アーキテクチャ上の決定(ADR)
📊 改善 — デッドコード検出、技術的負債の追跡、ドキュメントカバレッジ
🚀 複合操作 — 単一呼び出しのツール(explore、understand、prepareChange)により、AI ツールの呼び出しを60~70%削減
🔗 連携 — CLI、HTTP API、AI ツール向け MCP、CI/CD パイプライン、カスタムスクリプト
今すぐ試す
# See what's risky in your codebase
ckb hotspots --format=human
# Check what changed and what might break
ckb diff-summary --format=human
# Scan for exposed secrets
ckb audit --format=human
# Check architecture at a glance
ckb arch --format=human
# Check system status
ckb status
あらゆる環境で動作
| AI アシスタント | CI/CD | お使いのツール |
|---|---|---|
| Claude Code、Cursor、Windsurf、VS Code、Grok | GitHub Actions、GitLab CI | CLI、HTTP API、スクリプト |
スマートプリセットによりトークンを83%削減し、必要なツールだけを読み込みます。
# One command to connect to Claude Code
ckb setup
独自のツールを構築していますか? CLI、HTTP API、または MCP を介して、CKB をバックエンドとして使用できます。Node.js、Python、Go、シェルスクリプトの例については、**連携ガイド**をご覧ください。
詳細情報
| リソース | 説明 |
|---|---|
| 📖 機能ガイド | 例を含む機能の全一覧 |
| 💬 プロンプト集 | 実際の問題に役立つ実用的なプロンプト |
| 🔌 連携ガイド | CKB を独自のツールやスクリプトで使用する方法 |
| ⚡ 影響分析 | 影響範囲、影響を受けるテスト、PR リスク |
| 🔧 CI/CD 連携 | GitHub Actions、GitLab CI のテンプレート |
クイックスタート
オプション 1:npm(推奨)
# Install globally
npm install -g @tastehub/ckb
# Or run directly with npx (no install needed)
npx @tastehub/ckb init
オプション 2:Homebrew(macOS/Linux)
brew install simplyliz/ckb/ckb
完全修飾名を使用してください。Homebrew 6.0 では、読み込み前にサードパーティーのタップを信頼する必要があります。この方法でインストールすると、このフォーミュラに限って信頼が付与されます。先にタップしてから短縮名でインストールすると、
Refusing to load formula ... from untrusted tapというエラーが発生します。
オプション 3:ソースからビルド
git clone https://github.com/SimplyLiz/CodeMCP.git
cd CodeMCP
go build -o ckb ./cmd/ckb
セットアップ
# 1. Initialize in your project
cd /path/to/your/project
ckb init # or: npx @tastehub/ckb init
# 2. Generate SCIP index (optional but recommended)
ckb index # auto-detects language and runs appropriate indexer
# 3. Connect to Claude Code
ckb setup # creates .mcp.json automatically
# Or manually:
claude mcp add --transport stdio ckb -- npx @tastehub/ckb mcp
起動時に表示されるトークン効率:
CKB MCP Server v9.3.1
Active tools: 25 / 110 (22%)
Estimated context: ~4k tokens
Preset: core
これで Claude は、次のような質問に回答できるようになります。
- 「HandleRequest 関数を呼び出しているのは何ですか?」
- 「API から ProcessPayment にはどのように到達しますか?」
- 「UserService を変更した場合の影響範囲はどのくらいですか?」
- 「internal/api モジュールの担当者は誰ですか?」
- 「このレガシーコードはまだ使われていますか?」
CKB を使う理由
| CKB なし | CKB あり |
|---|---|
| AI がパターンを grep します | AI が意味に基づいてナビゲートします |
| 「Handler が 47 件見つかりました」 | 「HandleRequest は CheckoutService 経由で 3 つのルートから呼び出されています」 |
| 影響を推測します | リスクスコアで影響範囲を把握できます |
| コンテキストを把握するためにファイル全体を読みます | 関連する情報だけを取得できます |
| 「担当者は誰ですか?」→ CODEOWNERS を検索 | レビュアーの候補とともに、担当者をすぐに把握できます |
| 「安全に変更できますか?」→ 祈る | ホットスポットの傾向と影響分析 |
3 つの利用方法
| インターフェース | 主な用途 |
|---|---|
| MCP | AI 支援開発 — Claude、Cursor、Windsurf、VS Code、OpenCode、Grok |
| CLI | ターミナルからの簡単な検索、スクリプト作成 |
| HTTP API | IDE プラグイン、CI 連携、カスタムツール |
インデックス作成の仕組み
CKB は SCIP インデックスを使ってコードを理解します。すべての関数の定義場所、呼び出し元、そしてコード全体のつながりを把握するデータベースのようなものです。
基本
# 1. Generate an index (auto-detects language)
ckb index
# 2. Check if your index is fresh
ckb status
インデックスがなくても、CKB は tree-sitter 解析を使って動作します(基本モード)。ただし、インデックスがあれば、次の機能を利用できます。
- ファイルをまたいだ参照(「この関数を呼び出しているのは誰ですか?」)
- 正確な影響分析
- 呼び出しグラフのナビゲーション
言語サポート
言語によってサポート状況は異なります。CKB は、インデクサーの成熟度に基づいて言語を品質ティアに分類しています。
| ティア | 品質 | 言語 |
|---|---|---|
| ティア 1 | 完全サポート、すべての機能に対応 | Go |
| ティア 2 | 完全サポート、一部の例外的なケースあり | TypeScript、JavaScript、Python |
| ティア 3 | 基本サポート、呼び出しグラフが不完全な場合あり | Rust、Java、Kotlin、C++、Ruby、Dart |
| ティア 4 | 実験的 | C#、PHP |
主な制限事項:
- インクリメンタルインデックス作成に対応しているのは Go のみです。他の言語ではインデックスをすべて作り直す必要があります。
- TypeScript のモノレポでは
--infer-tsconfigフラグが必要な場合があります。 - C/C++ では
compile_commands.jsonが必要です。 - Python は仮想環境を有効化した状態での使用が最適です。
ckb doctor --tier standard を実行して、言語ツールが正しくインストールされているか確認してください。
インデクサーのインストール方法、既知の問題、機能の全一覧については、**言語サポート**をご覧ください。
インデックスを最新に保つ
コミットを作成すると、インデックスが古くなります。CKB では、次の方法で最新の状態を保てます。
| 方法 | コマンド | 使用する場面 |
|---|---|---|
| 手動 | ckb index | 単発の更新、スクリプト |
| 監視モード | ckb index --watch | 開発中の自動更新 |
| MCP 監視 | ckb mcp --watch | AI セッション中の自動更新 |
| CI webhook | POST /api/v1/refresh | CI/CD からの実行 |
AI セッションですぐに使うには:
ckb mcp --watch # Auto-reindexes every 30s when stale
古くなっているか確認するには:
ckb status
# Shows: "5 commits behind HEAD" or "Up to date"
Go プロジェクトでは、CKB はインクリメンタルインデックス作成を使用します。変更されたファイルだけを処理するため、更新が速くなります。
詳細については、**インデックス管理ガイド**をご覧ください。
機能
| 機能 | 説明 |
|---|---|
| 複合操作 | explore、understand、prepareChange — AI のオーバーヘッドを 60~70% 削減する単一呼び出しのツール |
| コードナビゲーション | セマンティック検索、呼び出しグラフ、使用箇所の追跡、エントリーポイントの検索 |
| 影響分析 | 影響範囲、リスクスコアリング、影響を受けるテスト、破壊的変更(compareAPI) |
| アーキテクチャ | モジュール概要、ADR、依存関係グラフ、起源の説明 |
| 所有権 | CODEOWNERS + git blame、レビュアーの提案、乖離の検出 |
| コード品質 | デッドコードの検出(findDeadCode)、結合度分析、複雑度 |
| セキュリティ | シークレットの検出、認証情報のスキャン、許可リスト |
| ドキュメント | ドキュメントとシンボルのリンク、陳腐化の検出、カバレッジ指標 |
| マルチリポジトリ | フェデレーション、API コントラクト、リモートインデックスの提供 |
| ランタイム | OpenTelemetry の統合、観測された使用状況、本番環境のデッドコード |
| ストリーミング | findReferences、searchSymbols の SSE ストリーミングとリアルタイムの進捗表示 |
| 自動化 | デーモンモード、監視モード、Webhook、増分インデックス作成 |
📖 機能ガイド全文 — 例を含む詳細なドキュメント
📋 変更履歴 — バージョン履歴
PR レビュー
CKB のレビューは、シークレット、破壊的変更、デッドコード、複雑度、テストの不足、バグのパターンなど、21 項目の品質チェックを 5 秒で実行します。トークンも API 呼び出しも不要です。
AI アシスタント(Claude Code、Cursor、Windsurf)が PR をレビューするとき、まず CKB を呼び出し、約 1k トークンで構造化された分析結果を取得します。その後、重要なファイルだけを読み取るため、大規模な PR ではトークンを 50~80% 節約できます。
ckb review --base=main # Human-readable review
ckb review --base=main --ci # CI mode (exit codes)
ckb review --base=main --post=123 # Post as PR comment
LLM を使わずに CI で動作します。
- run: npx @tastehub/ckb review --base=main --ci --format=sarif > review.sarif
| CKB なし | CKB あり | |
|---|---|---|
| 100 ファイルの PR で使用する LLM トークン | ~200k | ~50k |
| LLM が読み取るファイル | すべて | ~10(CKB がフラグを付けたもの) |
| シークレット/破壊的変更/デッドコードのチェック | いいえ | はい(全ファイル) |
📖 AI レビューへの活用方法 · ベンチマーク · CI の統合 · クイックスタート
CLI
ckb status # System health (with remediation suggestions)
ckb search Handler # Find symbols
ckb diff-summary # Analyze what changed
ckb hotspots # Risky areas
ckb arch # Architecture overview
ckb ownership # File/path ownership
ckb mcp # Start MCP server
複合操作(MCP 経由):
# These tools combine multiple queries into single calls
explore # Area exploration: symbols, dependencies, hotspots
understand # Symbol deep-dive: refs, callers, explanation
prepareChange # Pre-change analysis: impact, tests, risk
batchGet # Fetch up to 50 symbols at once
batchSearch # Run up to 10 searches at once
📖 ユーザーガイド — CLI コマンドとオプションの一覧
HTTP API
# Start the HTTP server
ckb serve --port 8080
# Example calls
curl http://localhost:8080/health
curl http://localhost:8080/status
curl "http://localhost:8080/search?q=NewServer"
curl http://localhost:8080/architecture
curl "http://localhost:8080/ownership?path=internal/api"
curl http://localhost:8080/hotspots
# Index Server Mode (v7.3) - serve indexes to remote clients
ckb serve --port 8080 --index-server --index-config config.toml
# Index server endpoints
curl http://localhost:8080/index/repos
curl http://localhost:8080/index/repos/company%2Fcore-lib/meta
curl "http://localhost:8080/index/repos/company%2Fcore-lib/symbols?limit=100"
curl "http://localhost:8080/index/repos/company%2Fcore-lib/search/symbols?q=Handler"
# Upload endpoints (with compression + auth)
curl -X POST http://localhost:8080/index/repos \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ckb_xxx" \
-d '{"id":"my-org/my-repo","name":"My Repo"}'
gzip -c index.scip | curl -X POST http://localhost:8080/index/repos/my-org%2Fmy-repo/upload \
-H "Content-Encoding: gzip" \
-H "Authorization: Bearer ckb_xxx" \
--data-binary @-
# Token management (index server admin)
ckb token create --name "ci-upload" --scope upload # Create API key
ckb token list # List all tokens
ckb token revoke ckb_xxx # Revoke a token
ckb token rotate ckb_xxx # Rotate (new secret, same ID)
MCP 統合
CKB は、MCP 互換の AI コーディングツールであればどれでも使用できます。
Claude Code
# Auto-configure for current project
npx @tastehub/ckb setup
# Or add globally for all projects
npx @tastehub/ckb setup --global
または、.mcp.json に手動で追加します:
{
"mcpServers": {
"ckb": {
"command": "npx",
"args": ["@tastehub/ckb", "mcp"]
}
}
}
Cursor
~/.cursor/mcp.json(グローバル)または .cursor/mcp.json(プロジェクト)に追加します:
{
"mcpServers": {
"ckb": {
"command": "npx",
"args": ["@tastehub/ckb", "mcp"]
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json に追加します:
{
"mcpServers": {
"ckb": {
"command": "npx",
"args": ["@tastehub/ckb", "mcp"]
}
}
}
VS Code
VS Code の settings.json に追加します:
{
"mcp": {
"servers": {
"ckb": {
"type": "stdio",
"command": "npx",
"args": ["@tastehub/ckb", "mcp"]
}
}
}
}
OpenCode
プロジェクトのルートにある opencode.json に追加します:
{
"mcp": {
"ckb": {
"type": "local",
"command": ["npx", "@tastehub/ckb", "mcp"],
"enabled": true
}
}
}
Grok
# Auto-configure for current project
npx @tastehub/ckb setup --tool=grok
# Or add globally
npx @tastehub/ckb setup --tool=grok --global
または、.grok/settings.json(プロジェクト)または ~/.grok/user-settings.json(グローバル)に手動で追加します:
{
"mcpServers": {
"ckb": {
"name": "ckb",
"transport": "stdio",
"command": "npx",
"args": ["@tastehub/ckb", "mcp"]
}
}
}
Claude Desktop
Claude Desktop にはプロジェクトコンテキストがないため、リポジトリのパスを指定する必要があります。
自動セットアップ(推奨):
cd /path/to/your/repo
ckb setup --tool=claude-desktop
手動設定 — ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows)に追加します:
{
"mcpServers": {
"ckb": {
"command": "npx",
"args": ["-y", "@tastehub/ckb", "mcp"],
"env": {
"CKB_REPO": "/path/to/your/repo"
}
}
}
}
CKB_REPO 環境変数で、解析するリポジトリを CKB に指定します。Claude Desktop で同時に扱えるリポジトリは 1 つだけです。
Windows
上記のどの設定でも、cmd /c ラッパーを使用します:
{
"mcpServers": {
"ckb": {
"command": "cmd",
"args": ["/c", "npx", "@tastehub/ckb", "mcp"]
}
}
}
プリセット(トークンの最適化)
CKB は 110 個以上のツールを提供していますが、ほとんどのセッションで必要なのはその一部だけです。プリセットを使うと、トークンのオーバーヘッドを最大 77% 削減できます:
# List all available presets with tool counts and token estimates
ckb mcp --list-presets
# Default: core preset (25 essential tools)
ckb mcp
# Workflow-specific presets
ckb mcp --preset=core # 25 tools - search, explain, impact (default)
ckb mcp --preset=review # 42 tools - core + diff, ownership, PR review
ckb mcp --preset=refactor # 42 tools - core + coupling, dead code
ckb mcp --preset=federation # 46 tools - core + cross-repo
ckb mcp --preset=docs # 34 tools - core + doc-symbol linking
ckb mcp --preset=ops # 43 tools - core + jobs, webhooks, metrics
ckb mcp --preset=full # 110 tools - complete feature set
MCP の設定に追加します:
{
"mcpServers": {
"ckb": {
"command": "npx",
"args": ["@tastehub/ckb", "mcp", "--preset=review"]
}
}
}
AI は expandToolset ツールを使って、セッション中にツールセットを動的に拡張できます。
内部の仕組み
CKB は複数のコードインテリジェンスバックエンドを統合し、利用可能なものを使いながら、それぞれの強みを組み合わせます。実行するバックエンドが増えるほど、回答も充実します:
- Cartographer — アーキテクチャ、依存関係、影響範囲、結合度、ディレクトリの集計を高速に構造解析します。インデックスは不要で、CKB のインストール直後から使用できます。バイナリにコンパイルされるため、npm および Homebrew のビルドにデフォルトで含まれます。
- SCIP — 定義、参照、呼び出しグラフを正確に取得するための、事前インデックス化済みのシンボルデータです(
ckb indexを実行) - LSP — リアルタイムの言語サーバークエリ
- Git — Blame、履歴、変更頻度の分析、所有権
- LIP — 最近傍検索と再ランキングを行うセマンティック埋め込みデーモンです。別個のオプションデーモンとして動作するため、CKB と併せてインストールして起動してください。
結果はインテリジェントに統合され、LLM のコンテキスト上限に合わせて圧縮されます。Git 以外のバックエンドはすべてオプションです。CKB は利用可能なバックエンドに応じて、機能を損なわずに動作します。
LIP はセマンティック検索、PR の新規性検出、テストの検出、ファイル境界の分析、アーキテクチャの結合度シグナルを強化します。 LIP を CKB と併せて実行すると、特にシンボル名と文字どおりには一致しない自然言語のクエリで、検索品質が大幅に向上します。詳しくは、ハイブリッド検索またはLIP のドキュメントをご覧ください。
永続的なナレッジはセッションをまたいで保持されます:
- モジュールレジストリ — 境界、責務、タグ
- 所有権レジストリ — CODEOWNERS と git-blame(時間減衰を適用)
- ホットスポットトラッカー — トレンド分析付きの過去のスナップショット
- 意思決定ログ — 全文検索に対応した ADR
CKB はどのような人に適していますか?
- AI アシスタントを使う開発者 — AI ツールに強力な機能を追加できます
- 大規模なコードベースを扱うチーム — 複雑さを効率的に把握できます
- リファクタリングを行う人 — 変更前に影響を把握できます
- コードレビュー担当者 — 変更の全体像を確認できます
- テックリード — アーキテクチャの健全性を継続的に追跡できます
制限事項(率直な評価)
CKB が得意なこと:
- 静的コードナビゲーション — 定義、参照、呼び出しグラフの検索
- 安全なリファクタリングのための影響分析
- 所有者の検索(CODEOWNERS + git blame)
- アーキテクチャとモジュールの理解
CKB では対応できないこと:
- 動的ディスパッチ/実行時の動作(デバッガーを使用してください)
- インデックスされていない生成コード
- コード生成、リント、フォーマット
- リポジトリをまたいだ呼び出し(その場合はフェデレーションを使用してください)
CKB は静的解析であり、魔法ではありません。重要な判断を下す際は、必ず実際のコードを読んで確認してください。
📖 実践的な制限事項 — 精度、見落としやすい点、結果を信頼できる場面についての完全ガイド
ドキュメント
以下については、**ドキュメント Wiki 全体**をご覧ください。
- クイックスタート — インストール手順
- プロンプト集 — 実際の問題に使えるプロンプト
- 言語サポート — SCIP インデクサーとサポートレベル
- 実践的な制限事項 — 精度に関する注意点、見落としやすい点
- ユーザーガイド — CLI コマンドとベストプラクティス
- インデックス管理 — インデックス作成の仕組み、自動更新の方法
- 増分インデックス作成 — Go プロジェクト向けの高速なインデックス更新
- ドキュメントとシンボルのリンク — ドキュメント内のシンボル検出、古さの確認
- 認証 — API トークン、スコープ、レート制限
- MCP 統合 — Claude Code のセットアップ、110 以上のツール
- API リファレンス — HTTP API ドキュメント
- デーモンモード — スケジューラーと Webhook を備えた常時稼働サービス
- 設定 — MODULES.toml を含むすべてのオプション
- アーキテクチャ — システム設計とコンポーネント
- セキュリティ — シークレット検出、認証情報のスキャン
- テレメトリー — 実行時の可観測性、デッドコード検出
- フェデレーション — リポジトリをまたいだクエリ
- CI/CD 統合 — GitHub Actions、PR 分析
要件
npm を使用する場合(推奨):
- Node.js 16+
- Git
ソースからビルドする場合:
- Go 1.21+
- Git
任意(分析機能を強化する場合):
- 使用する言語向けの SCIP インデクサー(scip-go、scip-typescript など) —
ckb indexを実行すると自動インストールされます - LIP v2.3+ セマンティック埋め込みデーモン(Rust/cargo が必要) — 検索品質を最大限に高めるため、強く推奨します(ドキュメント、crates.io):
cargo install lip-cli lip daemon --socket ~/.local/share/lip/lip.sock
ライセンス
以下の用途は無料です:
- 個人利用
- オープンソースプロジェクト
- 年間収益が 25,000 ドル未満のスタートアップおよび中小企業
年間収益が 25,000 ドル以上の組織には、商用ライセンスが必要です。Team および Enterprise プランについては料金をご覧ください。ライセンス条件の全文はLICENSEをご確認ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。