关于 Coderag
Locus 是面向编码 Agent 的本地 BM25 代码搜索 MCP 服务,提供仓库搜索和相关代码查找,并支持配置项目根目录与文件筛选。
主要功能
- 01使用 BM25 搜索索引代码
- 02查找文件位置相关代码
- 03按扩展名和路径筛选
- 04配置仓库根目录
适用场景
- 01按查询搜索仓库代码
- 02探索特定行附近的相关代码
- 03将搜索限制在指定文件类型或路径
MCP 相关
Locus 向 MCP 客户端提供 `codebase_search` 和 `find_related` 工具。默认使用 stdio,也可选择 HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Locus (@sylphx/locus)
面向编码 Agent 的本地 BM25 搜索。提供两个工具:codebase_search 和 find_related。路由 ID rust-tfidf 是该排序器的历史名称。
npx -y @sylphx/locus --root=/absolute/path/to/project
规范包名为 @sylphx/locus,可执行文件为 locus,MCP 名称为 io.github.SylphxAI/locus。文档:https://sylphxai.github.io/locus/.
请勿安装 @sylphx/coderag-mcp。该 ID 已弃用。
根目录
Locus 不会默认使用当前目录。
- 工具调用中的
root - 启动参数
--root(--root=PATH或--root PATH) LOCUS_ROOT;若未设置LOCUS_ROOT,则使用CODERAG_ROOT
启动参数仅有 doctor 和 --root。
codebase_search
必填项 query(非空字符串)。limit 默认值为 10,且必须是 1 到 100 之间的整数。include_content 默认值为 true。
可选筛选条件会在限制结果数量前执行:
file_extensions:ts和.ts都只匹配.ts,不会匹配.tsx。区分大小写。不接受空数组。path_filter:区分大小写的路径子串。反斜杠会转换为斜杠。exclude_paths:使用相同的子串规则,但用于排除路径。
排序采用 BM25(k1 = 1.2,b = 0.75),针对长度超过一个字符的 ASCII 词元。login 不会找到 authenticate。结果中的 route 是字符串 rust-tfidf。
find_related
传入相对于仓库的路径(使用正斜杠)以及区块内一个大于 0 的行号。limit 默认值为 10,且不限制为 100 以内。结果中的 route 是字符串 rust-related。如果没有匹配项,则会报错:No related chunks found for that location。
索引
会建立索引的扩展名:.ts、.tsx、.js、.jsx、.mjs、.cjs、.rs、.md、.py、.go。
跳过的路径段:node_modules、dist、target、.git。不会遵循 gitignore。大于 1,048,576 字节的文件会被跳过。新索引写入 .locus/rust-index.json 和 .locus/file-hashes.json。仅当 .locus/rust-index.json 不存在时才会读取 .coderag/。请勿提交这两个目录。
平台
@sylphx/locus-darwin-arm64、@sylphx/locus-darwin-x64、@sylphx/locus-linux-x64-gnu、@sylphx/locus-linux-arm64-gnu。不发布 Windows 版本。
默认传输方式为 stdio。仅当 MCP_TRANSPORT=http(或 CODERAG_MCP_TRANSPORT=http)时,HTTP 才会监听 127.0.0.1:8080。
npx -y @sylphx/locus doctor
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。