李布雷恩
即时代码库知识图MCP服务器。
把它放到任何项目中。它会自动检测语言,为每个函数、类和调用链建立索引,然后通过MCP(模型上下文协议)为其提供服务——这样你的LLM就可以在几毫秒内导航代码,而不是读取数千行。
为什么
阅读5000行代码来理解一个调用链需要大约5万个代币。一个图查询大约需要200个令牌。 成本降低了250倍。
LiLBrain将任何代码库转换为零配置的可查询知识图。
支持的语言(20+)
Python、Rust、Go、TypeScript、JavaScript、Java、C、C++、C#、Ruby、PHP、Swift、Kotlin、Scala、Zig、Lua、Elixir、Dart、Vortex——加上别名(.jsx、.tsx、.mjs、.hpp、.cc、.exs)。
安装
pip install lilbrain或克隆:
git clone https://github.com/MangoByteLabs/LiLBrain.git
cd LiLBrain
pip install -e .快速开始
作为MCP服务器(用于Claude等)
添加到您的 .mcp.json:
{
"mcpServers": {
"lilbrain": {
"command": "lilbrain",
"args": ["/path/to/your/project"]
}
}
}或者直接使用Python:
{
"mcpServers": {
"lilbrain": {
"command": "python3",
"args": ["-m", "lilbrain", "/path/to/your/project"]
}
}
}命令行接口命令模式
# Stats overview
lilbrain /path/to/project --stats
# Quick function lookup
lilbrain /path/to/project --query main
# Dump full graph JSON
lilbrain /path/to/project --dump它索引了什么
| 特性 | 描述 |
|---|---|
| 函数 | 名称、参数、返回类型、位置、文档字符串、复杂性得分 |
| 类 | 结构、枚举、特征、接口、模块 |
| 调用图 | 谁呼叫谁--完全呼叫者/被呼叫者边缘 |
| 子系统 | 根据目录结构自动分类 |
| 管道 | 从函数命名模式中自动检测 |
| 常量 | UPPER_CASE常量、类型化常量、finals |
| 交叉边缘 | 跨子系统依赖关系图 |
| 章节 | 标有以下内容的代码段 // SECTION 或 # SECTION |
| 复杂性 | 每个函数的圈动+认知复杂性 |
| 语义索引 | 基于意义搜索的TF-IDF向量 |
MCP工具(24)
核心图(12)
| 工具 | 说明 |
|---|---|
lilbrain_overview | 项目概述:文件、函数、语言、子系统 |
lilbrain_function | 查找任何函数——签名、位置、调用者、被调用者 |
lilbrain_callers | 函数的完整调用图 |
lilbrain_search | 搜索所有内容:函数、类、节、常量 |
lilbrain_file | 文件信息:函数、类、节、语言 |
lilbrain_read | 读取函数或文件区域的源代码 |
lilbrain_subsystem | 深入子系统 |
lilbrain_pipeline | 跟踪管道(解析、验证、编译等) |
lilbrain_dataflow | 上游呼叫者和下游被呼叫者 |
lilbrain_trace | 深度受限的呼叫链追踪 |
lilbrain_hotspots | 大多数连接功能(最高风扇输入+风扇输出) |
lilbrain_architecture | 架构图:子系统和交叉依赖关系 |
影响与质量(4)
| 工具 | 说明 |
|---|---|
lilbrain_impact | 爆炸半径分析——更改函数,查看所有受影响的内容 |
lilbrain_deadcode | 查找零调用者+LOC浪费估算的函数 |
lilbrain_clones | 检测近乎重复的函数(标记Jaccard相似性) |
lilbrain_diagram | 自动生成Mermaid或D2架构图 |
情报(4)
| 工具 | 说明 |
|---|---|
lilbrain_complexity | 圈动+认知复杂性排名 |
lilbrain_complexity_velocity | 跟踪git历史中的复杂性变化 |
lilbrain_semantic | 语义搜索——按含义而非名称查找函数 |
lilbrain_federation | 跨代码库的多仓库联合搜索 |
第3层——人工智能原生(4)
| 工具 | 说明 |
|---|---|
lilbrain_ask | 自然语言问题——通往正确分析的自动途径 |
lilbrain_diff | Git感知图差异:更改函数、爆炸半径、风险 |
lilbrain_pr_review | 自动生成带有风险评估的PR审查上下文 |
lilbrain_runtime | 将OpenTetry跟踪与静态调用图相关联 |
特性
影响分析
更改功能?LiLBrain告诉您中断的具体内容:
lilbrain_impact("parse_request")
→ 47 functions affected across 5 subsystems
→ Risk: HIGH
→ Subsystems: api, auth, middleware, handlers, tests汽车架构图
从实时代码生成始终准确的美人鱼图:
lilbrain_diagram("architecture")
→ graph TD
api["api\n120 fns | 3400 LOC"]
auth["auth\n45 fns | 1200 LOC"]
api -->|12| auth死代码和克隆检测
lilbrain_deadcode()
→ 847/3200 functions unreachable (26.5%)
→ 12,400 LOC wasted
lilbrain_clones()
→ adam_step adamw_step (88.5% similar)
→ tcp_recv udp_recv (83.3% similar)语义搜索
根据函数的功能而不是名称查找函数:
lilbrain_semantic("handle user authentication")
→ verify_token (auth/jwt.py:45) score=14.2
→ check_session (middleware/session.rs:120) score=11.8
→ validate_credentials (api/login.go:33) score=9.4自然语言查询
lilbrain_ask("what is the most complex code?")
→ eval_stmt: cyclomatic=189, cognitive=198
→ lex: cyclomatic=171, cognitive=182
lilbrain_ask("show me dead code")
→ 847 functions with zero callers...
lilbrain_ask("who calls parse_request?")
→ handle_http, route_api, middleware_chain...Git时间旅行与公关评论
lilbrain_diff("main", "feature-branch")
→ 12 files changed, 34 functions modified
→ Blast radius: 156 functions affected
→ Risk: HIGH
→ New cross-subsystem edge: api -> payments (didn't exist before!)
lilbrain_pr_review()
→ **8 files changed**, **23 functions modified**
→ **Blast radius**: 89 functions potentially affected
→ **Risk**: MEDIUM
→ **New cross-subsystem edges**: auth -> billing
→ **Complexity in changed code**: 45多代表联盟
一次搜索所有存储库:
lilbrain_federation(query="authenticate", repos=["/app/api", "/app/auth", "/app/gateway"])
→ api: 3 matches
→ auth: 12 matches
→ gateway: 5 matches运行时相关性
将静态分析与生产现实联系起来:
lilbrain_runtime(trace_dir="traces/")
→ Hot paths: handle_request (45,000 calls, avg 2.3ms)
→ Cold code: legacy_handler (0 invocations — truly dead)自动重新索引
LiLBrain观察文件更改和 .graph-dirty 哨兵档案。触摸 .graph-dirty 在项目根目录中(例如,从git post提交钩子),图形会在下一次查询时自动重建。
# Add to .git/hooks/post-commit:
touch .graph-dirty演出
| 项目大小 | 文件 | 函数 | 索引时间 |
|---|---|---|---|
| 小(1K LOC) | ~10 | ~40 | \<0.1s |
| 中等(50K LOC) | ~200 | ~2000 | ~0.5秒 |
| 大(360K LOC) | ~550 | ~16800 | ~2.2秒 |
零依赖。纯Python 3.10+。无处不在。
运作原理
- 走 --递归查找所有源文件,跳过
node_modules,.git,__pycache__等等。 - 检测 --根据文件扩展名识别语言,加载正确的正则表达式模式
- 提取 --从每个文件中提取函数、类、节和常量
- 连接 --通过扫描函数体以查找已知函数名来构建调用图
- 分析 --计算复杂性得分,构建TF-IDF语义索引
- 分类 --基于目录结构自动将文件分组到子系统中
- 服务 --通过JSON-RPC stdin/stdout上的24个MCP工具公开所有内容
许可证
麻省理工学院
