LynxMCP 是一个 100% 本地运行的 MCP(Model Context Protocol)服务器,旨在回答 grep 无法处理的代码问题,例如:谁调用了这个函数?修改它会影响什么?执行某项行为的代码在哪里?当前实际使用的库版本行为如何?它适用于任何 MCP 客户端,包括 Claude Code、Cursor、Windsurf、Antigravity 等。
主要能力:
- 行为检索:当标识符不存在于代码字面中时,例如“我们是在哪里限制相机缩放的?”,grep 无法匹配任何内容,而 LynxMCP 通过语义检索找到相关代码。
- 结构查询:支持调用图、继承关系、多态分派等无文本痕迹的结构问题,以及修改代码后的影响范围(blast radius)。
- 知识补充:可索引你实际使用的库版本文档和 PDF,弥补模型训练截止后的知识空白。
- AST 感知分块:使用 Tree-sitter 解析 18+ 种语言(19 个语法,含 TSX),索引整个函数和类,而非任意文本窗口。
- 混合检索:稠密向量嵌入与代码分词的 BM25 结合,通过 RRF 融合,可选交叉编码器重排序。
- 代码知识图谱(可选):记录调用关系、继承和导入,回答“修改这个会破坏什么?”并给出实际影响范围。
- 多源索引:代码库、公共文档站点(按需抓取一次,JS 渲染的 SPA 可通过可选的无头 Chromium 处理)和 PDF 可并排搜索。
- 自动重建:文件监视器在保存文件后约 2 秒重新索引,无需手动重建。
- HTTP API 与集成:搜索和图谱以本地 HTTP API 提供 NDJSON 行,可与 SQL 引擎、Coral、DuckDB、Steampipe、GitHub Action 等集成,将代码与工单、PR、日志关联。
- 浏览器管理界面:lynx manager ui 提供引导式设置、查询演练场、诊断和客户端配置片段。
- 本地运行:HuggingFace 模型下载一次后切换离线模式,无遥测、无云端索引、无代码上传。仅有的网络访问是模型下载和用户显式触发的 webdoc 抓取。
- 轻量依赖:基于 ONNX Runtime,安装约 460 MB,Linux 下载约 165 MB,无需 PyTorch 带来的 4 GB CUDA 库。
- 并发会话:一个索引可同时服务多个会话,只有索引过程是独占的。
使用方式:
- 通过 lynx manager init 初始化,可选择打开 Web UI,通过引导表单添加源。
- 每个 AI 工具也是一个命令,如 lynx find-definition ApplyDamage、lynx impact ApplyDamage、lynx graph query --op callers --symbol ApplyDamage,添加 --json 用于脚本。
- 在 MCP 客户端中注册 Lynx,Claude Code、Cursor、Antigravity 和通用 stdio 客户端均有完整指南,或让 lynx manager ui 生成配置片段。
- 服务器约一秒内响应 MCP 握手,后台打开索引,提前到达的调用会返回加载状态并重试。
- 提供 macOS 和 Windows 双击安装程序。
- 工具集固定,不随源数量增长,分为 core(5 个工具,约 1300 token)、standard(10 个工具,约 2800 token,默认)和 full(17 个工具,约 4150 token)。可在 config.json 设置 tools.profile 或通过 lynx serve --profile full 指定,tools.include 可添加单个工具。
- 检索工具带有 MCP readOnlyHint 注解,客户端可自动批准;唯一的写入工具是 export_graph。
- 服务器在 MCP 握手时提供使用手册(instructions 加 lynx://guide 资源),代理无需规则文件即可良好查询。
- 图谱工具需要为源启用可选的代码知识图谱。
- 可共享图谱视图:lynx graph export --symbol GetVoxel 生成自包含的离线文件,展示符号的影响范围、调用者和被调用者,可附在 PR 或存档审计。
适用场景:
- 大型代码库中,内置工具或 grep 效率低下时。
- 模型训练数据过时的框架文档查询。
- 重复会话中,避免从头重新探索。
- 需要理解代码结构、影响范围和跨源知识(代码、文档、PDF)的开发者。
限制:
- 在类名自解释的代码库(如 Guava 的 BloomFilter、RateLimiter)上,grep 排名更高(hit@1 73% 对 60%)。
- 对于能完全放入代理上下文的仓库,内置工具已足够。
- 由单个作者开发,API 在 1.x 稳定前可能变动。
- 基准测试显示排名随代码自文档化程度波动,在 C# 上领先,Python 上混合,Guava 上落后;但 token 成本每次降低 58% 到 86%。
- 工具定义消耗 token:core 1300、standard 2800、full 4150,会话在一两次检索后即可回本。
- 成本节省计算器:python benchmarks/savings_calculator.py --devs N 或交互式计算器,预设价格可编辑。
- outline 模式:search(query, outline=true) 或 ?view=outline 返回不带正文的排名结果,仅一行签名和文档字符串首行,代理可扫描候选后按 file:line 读取所需正文。在 psf/requests 上搜索步骤 token 减少 2.4 倍。
- 集成:Coral 注册表中的社区源,DuckDB 的 read_ndjson_auto,Steampipe 插件,GitHub Action 在 PR 上评论影响范围,MCP 配方组合 GitHub、Sentry、Jira。
- 防火墙或气隙环境:模型可来自镜像、GitHub Releases 自动回退或携带的存档。
- 仅有的网络访问是模型下载和显式 webdoc 抓取;其余全部本地。