克劳德LFR MCP
Claude code的闪电般快速的基于CPU的语义代码搜索。使用可配置的嵌入模型和Qdrant矢量数据库提供智能代码检索,而不需要GPU资源。
快速开始
先决条件
需要一个正在运行的Qdrant实例。从Docker开始:
docker run -p 6333:6333 qdrant/qdrant安装
uv tool install claude-lfr-mcpClaude代码设置
将MCP服务器添加到Claude Code项目中:
claude mcp add claude-lfr -- claude-lfr-mcp验证安装:
/mcp你应该看看 claude-lfr 列出了可用的工具。
然后请克劳德 index codebase.
嵌入模型
此工具支持多种嵌入模型,允许您为用例选择速度、内存使用和检索质量之间的最佳折衷。
模型比较
| 型号 | 尺寸 | 大小 | 速度 | 质量 | 最适合 |
|---|---|---|---|---|---|
all-MiniLM-L6-v2 | 384 | ~90MB | 最快 | 良好 | 快速原型制作、CI管道、大型代码库 |
bge-small-en-v1.5 | 384 | ~67MB | 快速 | 良好+ | 速度和精度的平衡 |
snowflake-arctic-embed-xs | 384 | ~90MB | 快速 | 良好+ | MiniLM的现代替代品 |
snowflake-arctic-embed-s | 384 | ~130MB | 中等 | 更好 | 生产使用,速度需要 |
bge-base-en-v1.5 | 768 | ~438MB | 较慢 | 最好 | 默认 -最佳检索质量 |
nomic-embed-text-v1.5 | 768 | ~130MB | 中等 | 较好 | 使用Nomic生态系统时 |
型号详细信息
全迷你LM-L6-v2
- ✅ 推理速度最快,内存占用最小
- ✅ 无需查询前缀(使用更简单)
- ❌ 检索精度低于大型模型
- 最适合:CI/CD管道、快速迭代、速度很重要的超大代码库
bge-small-en-v1.5
- ✅ 速度极快,精度优于MiniLM
- ✅ 最小下载大小(约67MB)
- ❌ 需要“query:”前缀(自动处理)
- 最适合:日常开发,速度和质量的良好平衡
雪花北极嵌入xs/雪花实际嵌入s
- ✅ 现代建筑,有竞争力的性能
- ✅ 无需前缀
- ❌ 不如BGE家族成熟
- 最适合:需要现代替代品的生产部署
bge-base-en-v1.5 (默认)
- ✅ 最佳检索质量,经过充分测试
- ✅ 在代码搜索任务上表现出色
- ❌ 模型尺寸较大(~438MB),推理速度较慢
- 最适合:当精度是首要任务时,较小的代码库
nomic-embed-ext-v1.5
- ✅ 尺寸和质量的良好平衡
- ✅ 768尺寸紧凑~130MB封装
- ❌ 使用不同的前缀约定(search_query/search_document)
- 最适合:Nomic生态系统用户、中大型代码库
选择模型
| 优先级 | 推荐型号 |
|---|---|
| 速度优先 | all-MiniLM-L6-v2 |
| 质量第一 | bge-base-en-v1.5 (默认) |
| 平衡的 | bge-small-en-v1.5 或 snowflake-arctic-embed-s |
| 现代+紧凑 | nomic-embed-text-v1.5 |
配置模型
通过CLI标志:
claude-lfr-index --model all-MiniLM-L6-v2 -r /path/to/code通过环境变量:
EMBEDDING_MODEL=bge-small-en-v1.5 claude-lfr-index列出可用型号:
claude-lfr-index --list-models注: 每个模型使用单独的Qdrant集合(例如。,code_bge_base_en_v15,code_minilm_l6_v2).你可以用以下命令覆盖它QDRANT_COLLECTION.
MCP工具
| 工具 | 说明 |
|---|---|
search_code | 通过自然语言查询和排名结果搜索索引代码 |
index_directory | 为代码库目录建立索引以进行语义搜索 |
get_index_status | 检查Qdrant收集状态和点数 |
高级用法
CLI工具
索引代码库:
REPO_ROOT=/path/to/your/codebase claude-lfr-index搜索索引代码:
claude-lfr-search "authentication logic"
claude-lfr-search "database connection"环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
QDRANT_URL | http://localhost:6333 | Qdrant服务器URL |
QDRANT_API_KEY | 无 | Qdrant API密钥(可选) |
QDRANT_COLLECTION | 自动生成 | 集合名称(例如。, code_bge_base_en_v15) |
EMBEDDING_MODEL | bge-base-en-v1.5 | 嵌入要使用的模型(请参见 嵌入模型) |
REPO_ROOT | . | 要索引的目录 |
MAX_FILES | 0 | 要索引的最大文件数(0=无限制) |
手动MCP配置
项目特定 (.mcp.json 在项目根中)或 用户全局 (~/.mcp.json):
{
"mcpServers": {
"claude-lfr": {
"command": "claude-lfr-mcp"
}
}
}使用uvx(无需安装):
{
"mcpServers": {
"claude-lfr": {
"command": "uvx",
"args": ["--from", "claude-lfr-mcp", "claude-lfr-mcp"]
}
}
}替代克劳德代码命令:
# Add to project scope
claude mcp add claude-lfr -s project -- claude-lfr-mcp
# Add globally
claude mcp add claude-lfr -s user -- claude-lfr-mcp
# Using uvx
claude mcp add claude-lfr -- uvx --from claude-lfr-mcp claude-lfr-mcp技术细节
运作原理
- 索引:遍历代码库,将文件分为80行,生成嵌入(384或768维,具体取决于型号),并分批向Qdrant升级256个
- 搜索:用模型适当的前缀嵌入查询,通过余弦相似度找到最相似的代码块
支持的文件类型
.py, .ts, .tsx, .js, .jsx, .rs, .go, .java, .cs, .php, .c, .cpp, .h, .hpp
忽略的目录
.git, node_modules, .venv, dist, build, __pycache__
发展
从源码安装
git clone https://gitlab.com/derico/claude-lfr-mcp.git
cd claude-lfr-mcp
uv sync
uv tool install -e .在本地运行MCP服务器
uv run claude-lfr-mcp开发MCP配置:
{
"mcpServers": {
"claude-lfr": {
"command": "uv",
"args": ["run", "claude-lfr-mcp"]
}
}
}运行测试
安装开发依赖项并运行测试:
uv sync --extra dev
uv run pytest运行覆盖率报告:
uv run pytest --cov=claude_lfr_mcp运行特定测试文件:
uv run pytest tests/test_mcp_server.py -v需求
- Python 3.10+
- 正在运行Qdrant实例
