mcpField
C
Ckb   Code Knowledge Backend

Ckb Code Knowledge Backend

本地服务
github.com/SimplyLiz记忆与知识1116 周前更新

关于 Ckb Code Knowledge Backend

CKB(Code Knowledge Backend)将代码库转换为可查询的知识库,可通过命令行、HTTP API 或 AI 助手提问。主要面向需要评估变更影响、查找代码所有者和检测死代码的开发者与团队。

主要功能

  1. 01调用图与符号引用查询
  2. 02变更影响分析与风险评分
  3. 03所有者查询与评审者建议
  4. 04死代码检测与热点分析
  5. 05密钥扫描与安全敏感代码识别
  6. 06通过 MCP 提供预设工具集

适用场景

  1. 01修改代码前评估影响范围并选择需要运行的测试
  2. 02在 PR 审查中识别破坏性变更与风险区域
  3. 03快速了解陌生代码库的架构与调用关系

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"CodeMCP": {
"command": "npx",
"args": [
"-y",
"@tastehub/ckb"
]
}
}
}
启动命令npx -y @tastehub/ckb

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@tastehub/ckb8.0.3

工具

19

收录的工具列表 · 更新于 2 周前

参数类型必填说明
depthenum否探索深度:shallow(快速概览)、standard(均衡)、deep(全面)shallow | standard | deep
focusenum否要重点关注的方面:structure(符号/类型)、dependencies(导入/导出)、changes(热点/历史)structure | dependencies | changes
targetstring是要探索的文件、目录或模块路径

详细介绍

CKB — 代码知识后端

了解你的代码。安全地修改它。自信地交付。

npm version Website Documentation MCP Badge LIP LIP docs

CKB 将你的代码库转变为可查询的知识库。通过命令行、API 或 AI 助手提问、了解影响、查找负责人、检测无用代码。

可以把它想象成一位资深工程师,了解每一行代码、每个决策和每位负责人,全天候为你解答问题。


即时解答棘手问题

问题不使用 CKB使用 CKB
“如果我修改这里,会导致什么问题?”搜索代码并祈祷精确分析影响范围并提供风险评分
“谁应该评审这个 PR?”根据 git blame 猜测基于数据推荐评审者
“这段代码还在使用吗?”删除后看看哪里出问题通过置信度评分检测无用代码
“我应该运行哪些测试?”运行所有测试(30 分钟)仅运行受影响的测试(2 分钟)
“这个系统如何工作?”花几小时阅读代码即时查询架构
“谁负责这段代码?”手动搜索 CODEOWNERS查看负责人并检测信息偏差
“是否有暴露的机密信息?”手动 grep 搜索模式使用 26 种模式自动扫描

你可以做什么

🔍 了解 — 语义搜索、调用图、使用情况追踪、架构图

⚡ 分析 — 影响分析、风险评分、热点检测、耦合分析

🛡️ 保护 — 检测受影响的测试、破坏性变更警告、PR 风险评估

🔐 保障安全 — 机密信息检测、凭证扫描、安全敏感代码识别

👥 协作 — 负责人查询、评审者推荐、架构决策记录(ADR)

📊 改进 — 无用代码检测、技术债务追踪、文档覆盖率

🚀 组合操作 — 单次调用工具(explore、understand、prepareChange)可将 AI 工具调用减少 60-70%

🔗 集成 — 命令行、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、GrokGitHub Actions、GitLab CI命令行、HTTP API、脚本

使用智能预设可减少 83% 的令牌用量——只加载所需的工具。

# One command to connect to Claude Code
ckb setup

正在构建自己的工具? 通过命令行、HTTP API 或 MCP 将 CKB 用作后端。示例请参阅 集成指南,其中涵盖 Node.js、Python、Go 和 shell 脚本。


了解更多

资源说明
📖 功能指南完整功能列表及示例
💬 提示词手册解决实际问题的实用提示词
🔌 集成指南在你自己的工具和脚本中使用 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 要求先信任第三方 tap,才会加载其中的内容;通过这种方式安装,即表示仅对这一个 formula 授予信任。先添加 tap,再使用短名称安装会失败,并显示 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 以语义方式导航
“找到了 47 个 Handler 匹配项”“HandleRequest 由 3 个路由通过 CheckoutService 调用”
猜测影响范围通过风险评分了解影响范围
为了获取上下文而阅读整个文件只获取真正相关的内容
“谁负责维护这个?”→ 搜索 CODEOWNERS立即了解维护负责人并获得审阅者建议
“这样改安全吗?”→ 只能寄希望于没问题热点趋势 + 影响分析

三种使用方式

接口适用场景
MCPAI 辅助开发 — Claude、Cursor、Windsurf、VS Code、OpenCode、Grok
CLI在终端中快速查询、编写脚本
HTTP APIIDE 插件、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 根据索引器的成熟度,将语言划分为不同的质量级别:

级别质量语言
Tier 1完全支持所有功能Go
Tier 2完全支持,只有少量边缘情况TypeScript、JavaScript、Python
Tier 3基本支持,调用图可能不完整Rust、Java、Kotlin、C++、Ruby、Dart
Tier 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 --watchAI 会话期间自动刷新
CI webhookPOST /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 — 单次调用的工具,可减少 60-70% 的 AI 开销
代码导航语义搜索、调用图、追踪用法、查找入口点
影响分析影响范围、风险评分、受影响的测试、破坏性变更(compareAPI)
架构模块概览、ADR、依赖图、解释来源
所有权CODEOWNERS + git blame、审阅者建议、漂移检测
代码质量死代码检测(findDeadCode)、耦合分析、复杂度
安全密钥检测、凭据扫描、允许列表
文档文档与符号关联、过时检测、覆盖率指标
多仓库联邦、API 契约、远程索引服务
运行时OpenTelemetry 集成、观测到的用法、生产环境死代码
流式处理为 findReferences、searchSymbols 提供 SSE 流式处理和实时进度
自动化守护进程模式、监视模式、webhook、增量索引

📖 完整功能指南 — 包含示例的详细文档

📋 更新日志 — 版本历史

PR 审查

CKB 审查可在 5 秒内运行 21 项质量检查,包括密钥、破坏性变更、死代码、复杂度、测试缺口、错误模式等。零令牌,零 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 一次只能处理一个仓库。

Windows

在上述任意配置中使用 cmd /c 包装器:

{
  "mcpServers": {
    "ckb": {
      "command": "cmd",
      "args": ["/c", "npx", "@tastehub/ckb", "mcp"]
    }
  }
}
预设(Token 优化)

CKB 提供 110 多种工具,但大多数会话只需要其中一部分。使用预设最多可减少 77% 的 Token 开销:

# 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 — 责任归属、历史记录、变更频率分析、所有权
  • LIP — 用于近邻搜索和重新排序的语义嵌入守护进程。它作为独立的可选守护进程运行——请与 CKB 一起安装并启动。

结果会经过智能合并,并压缩以适应大模型的上下文限制。除 Git 外,所有后端均为可选;CKB 会根据可用后端灵活调整。

LIP 可增强语义搜索、PR 新颖性检测、测试发现、文件边界分析和架构耦合信号。 当 LIP 与 CKB 同时运行时,搜索质量会显著提升,尤其是对于与符号名称不完全匹配的自然语言查询。详情请参阅混合检索,或查看 LIP 文档。

持久化知识可跨会话保留:

  • 模块注册表 — 边界、职责、标签
  • 所有权注册表 — CODEOWNERS + 带时间衰减的 git-blame
  • 热点跟踪器 — 带趋势分析的历史快照
  • 决策日志 — 支持全文搜索的 ADR

谁适合使用 CKB?

  • 使用 AI 助手的开发者 — 为 AI 工具赋予超能力
  • 拥有大型代码库的团队 — 高效应对复杂性
  • 进行重构的任何人 — 修改前了解影响
  • 代码审查者 — 全面了解变更
  • 技术负责人 — 持续跟踪架构健康状况

局限性(坦诚说明)

CKB 擅长:

  • 静态代码导航——查找定义、引用和调用图
  • 影响分析,帮助安全重构
  • 所有权查询(CODEOWNERS + git blame)
  • 理解架构和模块

CKB 无法帮助:

  • 动态分派/运行时行为(请使用调试器)
  • 未编入索引的生成代码
  • 代码生成、lint 或格式化
  • 跨仓库调用(请使用联邦功能)

CKB 是静态分析工具,并非万能。对于关键决策,请务必阅读实际代码进行验证。

📖 实用局限性 — 关于准确性、盲点以及何时可以信任结果的完整指南

文档

请参阅**完整文档 Wiki**,了解:

要求

使用 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
    

许可证

以下用途免费:

  • 个人使用
  • 开源项目
  • 年收入低于 $25k 的初创公司和小型企业

年收入达到 $25k+ 的组织需要商业许可证。请参阅定价了解 Team 和 Enterprise 计划,或查看LICENSE了解完整条款。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。