mcpField
L
Lybrary

Lybrary

本地服务
github.com/vibhu-dixit记忆与知识03 天前更新

关于 Lybrary

Lybrary 是面向 Codex、Claude Code 等 MCP 编码 Agent 的本地代码库索引与搜索服务。它映射代码符号和源码位置,监视文件变化,并结合精确、词法和语义搜索。

主要功能

  1. 01索引代码库结构和符号
  2. 02通过精确及语义匹配搜索代码
  3. 03返回排序后的路径和行片段
  4. 04监视文件并刷新索引
  5. 05配置解析器、嵌入模型和排除项

适用场景

  1. 01编辑代码前定位函数
  2. 02跨代码库文件追踪功能
  3. 03文件变更时刷新索引
  4. 04通过命令行搜索已索引代码库

MCP 相关

Lybrary 通过 `lybrary mcp` 运行本地 stdio MCP 服务。其工具可查询代码库记忆、报告索引状态,并触发增量、完整或指定路径的重新索引。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"vibhu-dixit-lybrary": {
"command": "uvx",
"args": [
"lybrary"
]
}
}
}
启动命令uvx lybrary

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

安装包
pypilybrary0.3.2

工具

3

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

参数类型必填说明
paramsany是

详细介绍

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 许可证。请参阅更新日志了解各版本信息。

评论

支持 Markdown

第一次接触 MCP?

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

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