loading…
Search for a command to run...
loading…
Code intelligence MCP server with 80+ tools for semantic code search, impact analysis, call graphs, ownership detection, and architectural understanding. Suppor
Code intelligence MCP server with 80+ tools for semantic code search, impact analysis, call graphs, ownership detection, and architectural understanding. Supports Go, TypeScript, Python, Rust, Java via SCIP indexing.
Know your code. Change it safely. Ship with confidence.
npm version Website Documentation LIP LIP docs
CKB transforms your codebase into a queryable knowledge base. Ask questions, understand impact, find owners, detect dead code—all through CLI, API, or AI assistants.
Think of it as a senior engineer who knows every line of code, every decision, and every owner—available 24/7 to answer your questions.
| Question | Without CKB | With CKB |
|---|---|---|
| "What breaks if I change this?" | Grep and hope | Precise blast radius with risk score |
| "Who should review this PR?" | Guess from git blame | Data-driven reviewer suggestions |
| "Is this code still used?" | Delete and see what breaks | Confidence-scored dead code detection |
| "What tests should I run?" | Run everything (30 min) | Run affected tests only (2 min) |
| "How does this system work?" | Read code for hours | Query architecture instantly |
| "Who owns this code?" | Search CODEOWNERS manually | Ownership with drift detection |
| "Are there exposed secrets?" | Manual grep for patterns | Automated scanning with 26 patterns |
🔍 Understand — Semantic search, call graphs, usage tracing, architecture maps
⚡ Analyze — Impact analysis, risk scoring, hotspot detection, coupling analysis
🛡️ Protect — Affected test detection, breaking change warnings, PR risk assessment
🔐 Secure — Secret detection, credential scanning, security-sensitive code identification
👥 Collaborate — Ownership lookup, reviewer suggestions, architectural decisions (ADRs)
📊 Improve — Dead code detection, tech debt tracking, documentation coverage
🚀 Compound Operations — Single-call tools (explore, understand, prepareChange) reduce AI tool calls by 60-70%
🔗 Integrate — CLI, HTTP API, MCP for AI tools, CI/CD pipelines, custom scripts
# 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 Assistants | CI/CD | Your Tools |
|---|---|---|
| Claude Code, Cursor, Windsurf, VS Code, Grok | GitHub Actions, GitLab CI | CLI, HTTP API, Scripts |
83% token reduction with smart presets—load only the tools you need.
# One command to connect to Claude Code
ckb setup
Building your own tools? Use CKB as a backend via CLI, HTTP API, or MCP. See the Integration Guide for examples in Node.js, Python, Go, and shell scripts.
| Resource | Description |
|---|---|
| 📖 Features Guide | Complete feature list with examples |
| 💬 Prompt Cookbook | Real prompts for real problems |
| 🔌 Integration Guide | Use CKB in your own tools and scripts |
| ⚡ Impact Analysis | Blast radius, affected tests, PR risk |
| 🔧 CI/CD Integration | GitHub Actions, GitLab CI templates |
# Install globally
npm install -g @tastehub/ckb
# Or run directly with npx (no install needed)
npx @tastehub/ckb init
brew tap SimplyLiz/ckb
brew install ckb
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
Token efficiency shown at startup:
CKB MCP Server v9.0.0
Active tools: 14 / 76 (18%)
Estimated context: ~1k tokens
Preset: core
Now Claude can answer questions like:
| Without CKB | With CKB |
|---|---|
| AI greps for patterns | AI navigates semantically |
| "I found 47 matches for Handler" | "HandleRequest is called by 3 routes via CheckoutService" |
| Guessing at impact | Knowing the blast radius with risk scores |
| Reading entire files for context | Getting exactly what's relevant |
| "Who owns this?" → search CODEOWNERS | Instant ownership with reviewer suggestions |
| "Is this safe to change?" → hope | Hotspot trends + impact analysis |
| Interface | Best For |
|---|---|
| MCP | AI-assisted development — Claude, Cursor, Windsurf, VS Code, OpenCode, Grok |
| CLI | Quick lookups from terminal, scripting |
| HTTP API | IDE plugins, CI integration, custom tooling |
CKB uses SCIP indexes to understand your code. Think of it like a database that knows where every function is defined, who calls it, and how everything connects.
# 1. Generate an index (auto-detects language)
ckb index
# 2. Check if your index is fresh
ckb status
Without an index, CKB still works using tree-sitter parsing (basic mode), but with an index you get:
Not all languages are equal. CKB classifies languages into quality tiers based on indexer maturity:
| Tier | Quality | Languages |
|---|---|---|
| Tier 1 | Full support, all features | Go |
| Tier 2 | Full support, minor edge cases | TypeScript, JavaScript, Python |
| Tier 3 | Basic support, call graph may be incomplete | Rust, Java, Kotlin, C++, Ruby, Dart |
| Tier 4 | Experimental | C#, PHP |
Key limitations:
--infer-tsconfig flagcompile_commands.jsonRun ckb doctor --tier standard to check if your language tools are properly installed.
See Language Support for indexer installation, known issues, and the full feature matrix.
Your index becomes stale when you make commits. CKB offers several ways to stay current:
| Method | Command | When to Use |
|---|---|---|
| Manual | ckb index |
One-off updates, scripts |
| Watch mode | ckb index --watch |
Auto-refresh during development |
| MCP watch | ckb mcp --watch |
Auto-refresh in AI sessions |
| CI webhook | POST /api/v1/refresh |
Trigger from CI/CD |
Quick start for AI sessions:
ckb mcp --watch # Auto-reindexes every 30s when stale
Check staleness:
ckb status
# Shows: "5 commits behind HEAD" or "Up to date"
For Go projects, CKB uses incremental indexing—only changed files are processed, making updates fast.
See the Index Management Guide for complete documentation.
| Feature | Description |
|---|---|
| Compound Operations | explore, understand, prepareChange — single-call tools that reduce AI overhead by 60-70% |
| Code Navigation | Semantic search, call graphs, trace usage, find entrypoints |
| Impact Analysis | Blast radius, risk scoring, affected tests, breaking changes (compareAPI) |
| Architecture | Module overview, ADRs, dependency graphs, explain origin |
| Ownership | CODEOWNERS + git blame, reviewer suggestions, drift detection |
| Code Quality | Dead code detection (findDeadCode), coupling analysis, complexity |
| Security | Secret detection, credential scanning, allowlists |
| Documentation | Doc-symbol linking, staleness detection, coverage metrics |
| Multi-Repo | Federation, API contracts, remote index serving |
| Runtime | OpenTelemetry integration, observed usage, production dead code |
| Streaming | SSE streaming for findReferences, searchSymbols with real-time progress |
| Automation | Daemon mode, watch mode, webhooks, incremental indexing |
📖 Full Features Guide — Detailed documentation with examples
📋 Changelog — Version history
CKB review runs 20 quality checks in 5 seconds — secrets, breaking changes, dead code, complexity, test gaps, bug patterns, and more. Zero tokens, zero API calls.
When your AI assistant (Claude Code, Cursor, Windsurf) reviews a PR, it calls CKB first and gets structured analysis in ~1k tokens. Then it only reads the files that matter — saving 50-80% of tokens on large PRs.
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
Works in CI without any LLM:
- run: npx @tastehub/ckb review --base=main --ci --format=sarif > review.sarif
| Without CKB | With CKB | |
|---|---|---|
| LLM tokens on 100-file PR | ~200k | ~50k |
| Files LLM reads | all | ~10 (CKB-flagged) |
| Secrets/breaking/dead-code checked | no | yes (all files) |
📖 How it helps AI review · Benchmarks · CI Integration · Quickstart
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
v9.0 Compound Operations (via 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
📖 User Guide — All CLI commands and options
# 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)
CKB works with any MCP-compatible AI coding tool.
# Auto-configure for current project
npx @tastehub/ckb setup
# Or add globally for all projects
npx @tastehub/ckb setup --global
Or manually add to .mcp.json:
{
"mcpServers": {
"ckb": {
"command": "npx",
"args": ["@tastehub/ckb", "mcp"]
}
}
}
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):
{
"mcpServers": {
"ckb": {
"command": "npx",
"args": ["@tastehub/ckb", "mcp"]
}
}
}
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"ckb": {
"command": "npx",
"args": ["@tastehub/ckb", "mcp"]
}
}
}
Add to your VS Code settings.json:
{
"mcp": {
"servers": {
"ckb": {
"type": "stdio",
"command": "npx",
"args": ["@tastehub/ckb", "mcp"]
}
}
}
}
Add to opencode.json in project root:
{
"mcp": {
"ckb": {
"type": "local",
"command": ["npx", "@tastehub/ckb", "mcp"],
"enabled": true
}
}
}
# Auto-configure for current project
npx @tastehub/ckb setup --tool=grok
# Or add globally
npx @tastehub/ckb setup --tool=grok --global
Or manually add to .grok/settings.json (project) or ~/.grok/user-settings.json (global):
{
"mcpServers": {
"ckb": {
"name": "ckb",
"transport": "stdio",
"command": "npx",
"args": ["@tastehub/ckb", "mcp"]
}
}
}
Claude Desktop doesn't have a project context, so you must specify the repository path.
Automatic setup (recommended):
cd /path/to/your/repo
ckb setup --tool=claude-desktop
Manual configuration — add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"ckb": {
"command": "npx",
"args": ["-y", "@tastehub/ckb", "mcp"],
"env": {
"CKB_REPO": "/path/to/your/repo"
}
}
}
}
The CKB_REPO environment variable tells CKB which repository to analyze. Claude Desktop can only work with one repository at a time.
Use cmd /c wrapper in any config above:
{
"mcpServers": {
"ckb": {
"command": "cmd",
"args": ["/c", "npx", "@tastehub/ckb", "mcp"]
}
}
}
CKB exposes 80+ tools, but most sessions only need a subset. Use presets to reduce token overhead by up to 83%:
# List all available presets with tool counts and token estimates
ckb mcp --list-presets
# Default: core preset (14 essential tools)
ckb mcp
# Workflow-specific presets
ckb mcp --preset=core # 14 tools - search, explain, impact (default)
ckb mcp --preset=review # 19 tools - core + diff, ownership
ckb mcp --preset=refactor # 19 tools - core + coupling, dead code
ckb mcp --preset=federation # 28 tools - core + cross-repo
ckb mcp --preset=docs # 20 tools - core + doc-symbol linking
ckb mcp --preset=ops # 25 tools - core + jobs, webhooks, metrics
ckb mcp --preset=full # 80+ tools - all tools (legacy)
In MCP config:
{
"mcpServers": {
"ckb": {
"command": "npx",
"args": ["@tastehub/ckb", "mcp", "--preset=review"]
}
}
}
The AI can dynamically expand the toolset mid-session using the expandToolset tool.
CKB orchestrates multiple code intelligence backends:
Results are merged intelligently and compressed for LLM context limits.
LIP enhances semantic search, PR novelty detection, test discovery, file boundary analysis, and architecture coupling signals. When LIP is running alongside CKB, search quality improves significantly — especially for natural-language queries that don't match symbol names literally. See Hybrid Retrieval for details, or the LIP documentation.
Persistent knowledge survives across sessions:
CKB excels at:
CKB won't help with:
CKB is static analysis, not magic. Always verify critical decisions by reading the actual code.
📖 Practical Limits — Full guide on accuracy, blind spots, and when to trust results
See the Full Documentation Wiki for:
Using npm (recommended):
Building from source:
Optional (for enhanced analysis):
ckb index to auto-installcargo install lip-cli
lip daemon --socket ~/.local/share/lip/lip.sock
Free for:
Commercial license required for organizations with $25k+ annual revenue. See pricing for Team and Enterprise plans, or LICENSE for full terms.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"simplyliz-codemcp": {
"command": "npx",
"args": []
}
}
}