关于 Lybrary
Lybrary 是面向 Codex、Claude Code 等 MCP 编码 Agent 的本地代码库索引与搜索服务。它映射代码符号和源码位置,监视文件变化,并结合精确、词法和语义搜索。
主要功能
- 01索引代码库结构和符号
- 02通过精确及语义匹配搜索代码
- 03返回排序后的路径和行片段
- 04监视文件并刷新索引
- 05配置解析器、嵌入模型和排除项
适用场景
- 01编辑代码前定位函数
- 02跨代码库文件追踪功能
- 03文件变更时刷新索引
- 04通过命令行搜索已索引代码库
MCP 相关
Lybrary 通过 `lybrary mcp` 运行本地 stdio MCP 服务。其工具可查询代码库记忆、报告索引状态,并触发增量、完整或指定路径的重新索引。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| params | any | 是 |
详细介绍
Lybrary — 面向编码 Agent 的本地代码库记忆
Lybrary 按代码结构为代码库建立索引,为 Codex、Claude Code 和其他 MCP 客户端提供可搜索的函数、类和文件地图。它在本地运行、监视变更,并让 Agent 在打开整个文件之前找到相关源代码行。
PyPI · 文档 · Agent 设置指南 · 源代码 · 问题反馈
如果你想让编码 Agent 帮你完成设置,请让它为代码库查找并安装本地 MCP 代码搜索工具,并指向Agent 设置指南。该指南列出了 PyPI 包、源代码仓库、安装命令,以及用于确认 Agent 正在使用此代码库索引的检查方法。
在任何代码库中启动
安装一次,然后在每个要建立索引的文件夹中运行 lybrary start:
pip install lybrary
cd /path/to/your/repo
lybrary start
lybrary status
如有需要,start 会创建 .lybrary/,构建索引,并在后台运行文件监视守护进程。终端关闭后,该进程仍会继续运行。在该代码库中运行 lybrary stop 即可停止。首次建立索引时可能会下载本地嵌入模型;后续运行会使用缓存。
每个代码库都有自己的索引和 .lybrary/config.toml。索引保存在你的计算机上;无需 API 密钥或托管数据库。
连接 Agent
在你的计算机上注册一次 MCP 服务。在已建立索引的代码库中启动 Agent,然后让它调用 memory_status,以确认根目录和分块数量。
Codex
Codex 用户可以通过代码库的插件市场安装 Lybrary 的设置技能:
codex plugin marketplace add vibhu-dixit/lybrary
codex plugin add lybrary@lybrary
该插件可协助设置;本地 MCP 服务需另行注册:
codex mcp add lybrary -- lybrary mcp
codex mcp list
如果你希望 Codex 始终使用记忆功能,可以将以下内容添加到该代码库的 AGENTS.md:
When .lybrary/index.db exists, use Lybrary memory_query before broad code searches or reading multiple files. Inspect the returned source paths and lines before editing. If the index is absent or the tool fails, use normal search.
Claude Code
Claude Code 用户可以安装代码库的插件,该插件会注册 MCP 服务并包含设置技能:
claude plugin marketplace add vibhu-dixit/lybrary
claude plugin install lybrary@lybrary
还必须使用 pip install lybrary 安装 Python 包。也可以不安装插件,直接注册 MCP 服务:
claude mcp add --scope user --transport stdio lybrary -- lybrary mcp
claude mcp list
在 Claude Code 中,/mcp 会显示连接状态。将相同的说明放入代码库的 CLAUDE.md。注册后即可使用该工具;这条说明则有助于 Agent 在合适时选择使用它。
对于其他 stdio MCP 客户端,请将命令配置为 lybrary,参数配置为 mcp。请参阅设置指南。
Agent 可获得的内容
memory_query 会先检查精确符号和 SQLite FTS5 索引。强匹配的词法结果无需加载嵌入模型;当措辞与代码不匹配时,语义搜索仍可作为后备方案。默认响应会提供按相关性排序的路径、符号、行范围和简洁的编号摘录。如果调用链涉及首条结果中缺失的已命名调用,请针对该符号再查询一次。需要完整分块时,设置 include_content=true。
memory_status 会报告当前代码库和索引状态。memory_update 可触发增量、全量或限定路径的重新索引。
这可以避免反复进行宽泛搜索和读取大型文件,尤其是在 Agent 需要跨多个会话定位某项功能时。实际令牌用量取决于任务、Agent 选择的工具,以及仍需检查的源代码量。基准测试指南介绍了如何比较完整运行过程,而不是根据单次响应的大小推断节省量。
让它适配你的代码仓库
编辑 .lybrary/config.toml,选择嵌入模型和设备、分块大小、索引语言、排除路径以及文件监视器的防抖时间。将 Git 风格的忽略模式添加到 .lybrary/ignore。更改会影响已存储分块或嵌入的设置后,重新运行 lybrary index --full。
支持的解析器:Python、JavaScript、TypeScript、TSX、Go、Rust、Java、C 和 C++。索引器使用 tree-sitter 边界,并在守护进程运行时刷新已更改的文件。
CLI
| 命令 | 用途 |
|---|---|
lybrary start | 初始化、建立索引并监视当前代码仓库 |
lybrary stop | 停止其后台守护进程 |
lybrary status | 显示守护进程和索引状态 |
lybrary query "authentication flow" | 从终端进行搜索 |
lybrary index --full | 重建索引 |
lybrary logs | 显示守护进程日志 |
lybrary mcp | 运行 stdio MCP 服务 |
如果 Agent 在已建立索引的代码仓库目录之外启动,请将该代码仓库的绝对路径作为 repo_root 传递给 MCP 工具,或在该代码仓库目录内启动 Agent。
衡量效果
在源代码检出目录中,对比使用和不使用 Lybrary 时对同一个只读问题的回答:
python benchmark.py /path/to/indexed/repo "Trace how interview invitations are sent"
脚本会将两种回答、工具调用次数,以及输入 token 总数、缓存 token 数和未缓存 token 数记录到 .lybrary/benchmarks/。请先检查回答是否正确;仅凭一个问题无法确定典型的节省幅度。
参与贡献
欢迎提交问题和拉取请求。要进行本地检出:
pip install -e ".[dev]"
pytest
Lybrary 采用 MIT 许可证。请参阅更新日志了解各版本信息。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。