mcpField
D
DevLens

DevLens

本地服务
github.com/devlensio开发工具61今天更新

关于 DevLens

DevLens 为代码仓库构建预计算的语义代码图,并向 AI Agent 和开发者提供排序后的代码上下文。其 MCP 工具支持符号查询、调用流程、变更影响及节点安全摘要,覆盖五类语言。

主要功能

  1. 01构建可搜索的代码图
  2. 02按任务排序并限制上下文令牌预算
  3. 03查找符号并查看调用者或被调用者
  4. 04追踪变更影响和提交差异
  5. 05查看节点级安全摘要
  6. 06通过交互式 Web UI 浏览代码图

适用场景

  1. 01为 Agent 任务查找相关代码
  2. 02追踪符号的调用流程
  3. 03评估代码修改前的影响
  4. 04检查代码图节点的安全问题

MCP 相关

stdio 或 HTTP MCP 服务提供五种自描述工具,用于查询代码图、查找符号、查看节点详情、分析影响和管理仓库。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"devlensio-devlens": {
"command": "npx",
"args": [
"-y",
"@devlensio/cli"
]
}
}
}
启动命令npx -y @devlensio/cli

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

安装包
npm@devlensio/cli0.7.2

工具

5

收录的工具列表 · 更新于 今天

参数类型必填说明
taskstring是用通俗语言描述的实际问题或任务
focusarray否用于聚焦数据包的 nodeIds、符号名称或 filePaths
intentenum否默认值:exploratorypinpoint | reference-list | flow | overview | concept | security-audit | exploratory
repoPathstring否仅当分析了多个仓库且工作文件夹不明确时才需要
commitHashstring否默认为最近分析的提交
tokenBudgetnumber否500..100000;默认值随仓库大小调整。代码主体计入此预算之外。

详细介绍

DevLens 徽标

DevLens

为 AI Agent 和开发者提供代码库智能分析。

只需分析一次代码库。之后,AI Agent 就能通过 MCP 查询预先计算好的代码图谱,获取排名靠前的文件、调用流程、影响范围和安全信息,而不必逐个文件重新读取代码库。提供 5 个自描述的 MCP 工具,纯文本数据包的 token 数仅为读取代码的三分之一,且在基准测试中响应体积最小。

许可证:AGPL v3 npm:@devlensio/cli 使用 Bun 构建

加入 DevLens Cloud 候补名单 →


DevLens 演示

点击图片观看演示


为什么选择 DevLens?

  • 让 Agent 不再浪费 token。 一次 MCP 调用即可返回符合任务需求的数据包,其中包含相关文件和符号,并按重要性排序,且不超出 token 预算。无需反复执行 grep,也无需重新读取文件。
  • 基准测试中表现领先。 在正确性、F1、召回率和精确率方面位列 9 款工具之首,是唯一在所有质量指标上都领先的工具。
  • 快速且轻量。 每次调用仅需 67 ms,数据包比最接近的图谱竞品小 6.7×,并且绝不会超出你设定的 token 预算。
  • 开发者也能从中受益。 提供交互式图谱可视化、修改符号前的影响范围分析、PR 审查数据包,以及逐节点安全分析。

基准测试

我们在一个无头编码 Agent、一个模型、一个真实的 TypeScript 代码库上,使用根据实际拉取请求和符号编写的 133 个真实问题,对 DevLens MCP 与其他代码图谱和检索工具——Graphify、codegraph、semble、bm25——进行了基准测试:

DevLens V3(5 个工具)Graphifycodegraphsemblebm25
正确性(Agent 循环,同一轮运行)0.6430.6190.6670.7140.667
F1(Agent 循环,同一轮运行)0.5290.5260.6040.6360.581
正确性(检索层)0.6940.6620.6740.6520.664
响应数据包2,230 token15,020 token6,339 token736 token721 token
每次调用延迟67 ms2,469 ms2,736 ms508 ms108 ms

与Graphify正面对比——它是最直接的竞品(tree-sitter 图谱、MCP 服务)——DevLens 在所有方面都胜出:在 Agent 循环中的正确性更高(0.643 对 0.619,同一轮运行),在检索层中的正确性也更高(0.694 对 0.662,在相同问题上的配对测试中 15 胜、9 负);数据包小 6.7×(2,230 对 15,020 token,在全部 54 道可比问题上都更小);每次调用快 约 37×(67 ms 对 2,469 ms)。Graphify 的图谱也大 64%,边数是其 3.6×(16,999 个节点 / 71,694 条边,对比 10,346 个节点 / 19,847 条边),但质量更低。

数据背后的规律是:语法分析工具返回大块内容或单纯的行号列表。DevLens 则从经过类型解析的图谱中返回符合任务需求的数据包,在毫秒内提供相关文件并排序,同时不超出你的 token 预算。

完整方法说明、各类型表格和 9 款工具的对比结果: docs/PUBLIC-BENCHMARKS.md


DevLens 的对比优势

DevLens 是此领域中唯一集原生语义解析、每个节点的 AI 摘要与安全分析,以及框架感知数据边于一体的工具,也是唯一可在 AGPL 下用于商业用途的选项。

维度DevLensGraphifyGitNexusSourcegraphDeepWiki
解析深度原生语义解析器(TS 编译器、Python ast、go/types、JavaParser、syn),可解析类型tree-sitter(语法解析,不含类型信息)tree-sitter + 原生绑定(不含类型信息)SCIP/LSIF 符号索引 + 语言服务器(无语义解析)LLM 直接读取源代码(无结构化解析器)
边的质量经过类型检查的 IMPLEMENTS/EXTENDS、框架路由(Next.js、Django、Spring、Gin、axum)、ORM 数据边(READS_FROM/WRITES_TO)EXTRACTED/INFERRED/AMBIGUOUS 标签,不支持类型或框架感知调用链、集群、route_map,无 ORM 或数据边精确的符号交叉引用(SCIP),继承关系未经类型检查文档级关系(无结构化图)
每个节点的 AI 摘要每个节点均提供技术、业务和安全摘要,并标注严重性否(LLM 用于文档和概念)否(使用嵌入进行语义查询)通过 Cody 提供(悬停和内联文档,聊天级别)自动为每个符号生成文档(无安全分析,也不区分技术和业务)
安全分析每个节点的严重性 + 爆炸半径影响范围,并提供真实的漏洞利用描述否部分支持(可选择启用 PDG/污点分析)否(仅有合规认证)否
Agent / MCP 集成CLI + 自描述 MCP 服务 + Web UICLI + 本地技能(无 MCP)CLI + 17 工具 MCP + 钩子(AGENTS.md)MCP 服务(跨代码仓库搜索,不支持针对每个代码仓库的图查询)未知(无公开 MCP 集成)
语言覆盖范围TS/JS、Python、Java、Go、Rust,每种语言均有原生解析器12 种代码类别 + 文档/图片(浅层语法解析)通过 tree-sitter 支持多种语言(Dart/Kotlin/Swift),浅层语法解析通过语言服务器支持 30 多种语言(符号级别,无语义边)任意语言(LLM 读取源代码,无结构化提取)
许可证 / 定价AGPL-3.0,免费,包含商业用途Apache-2.0PolyForm Noncommercial(不可用于商业用途)开源核心版,Enterprise 付费公共代码仓库免费,企业版级别未列出

(功能对比基于公开资料,2026 年 8 月。)

**团队选择 DevLens 的原因:**提供语法工具无法生成的语义边,提供其他开源工具均不具备的每个节点安全分析,检索质量在基准测试中领先,并提供统一的 MCP 入口——可免费用于商业用途。


快速开始

步骤 1 — 安装 CLI
npm install -g @devlensio/cli

或者安装独立二进制文件(无需 Node.js):

# Linux / macOS
curl -fsSL https://raw.githubusercontent.com/devlensio/devlensOSS/main/scripts/install.sh | sh

# Windows (PowerShell)
irm https://raw.githubusercontent.com/devlensio/devlensOSS/main/scripts/install.ps1 | iex
步骤 2 — 配置模型(可选)

只有需要 AI 摘要时才需要配置。仅分析代码结构时可离线运行,无需 API 密钥。

devlens init

此过程会交互式引导你选择提供商、API 类型、密钥、端点和模型——在任意步骤按 ESC 即可返回上一步。推荐模型请参阅配置。

步骤 3 — 分析代码仓库
cd your-project
devlens analyze . --summarize

此步骤会构建图、生成摘要并创建搜索索引——只需运行一次。完成后,以下所有操作都会即时完成。

步骤 4 — 连接你的 AI Agent

启动 MCP 服务:

devlens mcp

然后在你的 Agent 中注册它。选择你的工具:

Claude Code / Claude Desktop

claude mcp add devlens -- devlens mcp

Cursor — 添加到 .cursor/mcp.json:

{
  "mcpServers": {
    "devlens": { "command": "devlens", "args": ["mcp"] }
  }
}

Codex — 添加到 ~/.codex/config.toml:

[mcp_servers.devlens]
command = "devlens"
args = ["mcp"]

Hermes — 添加到 config.yaml:

mcp:
  servers:
    devlens:
      command: devlens
      args: [mcp]

任何其他 MCP 客户端 — 此服务通过 stdio 使用标准 MCP 协议。将客户端指向命令 devlens mcp。若使用 HTTP 传输:

devlens mcp http -p 7000

服务会通过 tools/list 自行描述完整的工具列表,因此你的 Agent 会自动发现所有内容。就是这么简单——问问你的 Agent“这个代码仓库中的身份验证是如何工作的?”,看它如何查询图谱,而不是读取文件。


你的 Agent 可以询问什么

服务会通过 tools/list 自行描述每个工具的参数——你的 Agent 会自动填写。五个工具,完全不需要 graphId——系统会根据你的工作目录解析代码仓库。

工具关键参数功能
resolve_contexttask(必需)、intent?、focus?、tokenBudget?入口工具。 一次调用即可返回符合任务需求的纯文本数据包:ANSWER 行、带有单行释义的排序节点、调用流程、包含匹配行片段的相关文件,以及 ID 映射表——所有内容均在令牌预算范围内。意图:pinpoint、reference-list、flow、overview、concept、security-audit、exploratory。
find_symbolsquery(必需)、limit?低成本 BM25F 名称查找:返回 nodeIds 和 file:line,不包含图谱或源代码。
get_nodenode(必需)、include?获取单个节点的完整详情:技术、业务和安全摘要,以及调用者、被调用者和(选择加入的)原始源代码。
impacttarget? 或 from+to 提交变更影响:更改某个符号会导致哪些问题;可通过两次分析的提交进行提交范围差异分析。
repoaction管理已分析的图谱:list、analyze、freshness、health。

每个响应都包含一个 provenance 区块(commitHash、analyzedAt、hasGit),因此你的 Agent 始终能知道回答问题时使用的是哪个快照。

完整参考: docs/mcp-reference.md


支持的语言

DevLens 使用原生解析器解析五类语言(无需 AI、正则表达式或 tree-sitter),并理解相应的框架。摘要绝不会在后台静默生成:消耗令牌前会先征得你的确认;仅分析代码结构则完全不需要任何提供商。

语言图谱可理解的框架 / 技术栈解析内容
TypeScript / JavaScriptReact、Next.js(app 和 pages 路由器)、Express/Hono/Fastify、React Router、TanStack Router,以及任何 Node 项目组件、hooks、状态存储、类、方法、函数、路由
PythonFastAPI、Flask、Django(含 DRF)、SQLAlchemy / Django ORM、Celery、Pydantic类、方法、函数、路由、数据模型
JavaSpring Boot(控制器、JPA、Spring Data 仓库)类、方法、接口、枚举、路由
Gonet/http、Gin、Echo、chi、Fiber、GORM、database/sql结构体、接口、方法、函数、路由
Rustaxum、actix-web、rocket、utoipa、Diesel结构体、枚举、trait、impl 块、方法、函数、路由

每个代码仓库都会使用对应语言的解析器进行分析(Python ast、JavaParser、Go go/ast 加 go/types、Rust syn、TS compiler API),因此依赖关系都是真实的:经过类型检查的接口(IMPLEMENTS)、框架路由(HANDLES)以及 ORM 数据层(READS_FROM、WRITES_TO)。


面向开发者:Web UI

适合希望以交互式图谱查看代码库的场景。

打开 Web UI,粘贴仓库路径,然后浏览力导向画布。点击任意节点即可查看其摘要、调用方、被调用方和安全标记。搜索、筛选并比较不同版本之间的提交差异。Project 面板会显示搜索索引是否就绪,并提供一键重新索引操作。

bun start   # from the source repo: API + Web UI on one port (http://localhost:3000)

Web UI 直接从源代码树运行,不会打包进已安装的 CLI 二进制文件中。


CLI

适用于脚本、CI,以及无需离开终端即可快速获取答案的场景。每条命令都支持 --json,以便将输出传入脚本;支持 -v/--verbose,用于诊断;还支持 --quiet,以最简输出运行。

分析与摘要

命令功能
devlens detect [path] [--deps]分析前检查仓库:语言、清单文件、依赖数量、源文件
devlens analyze [path] [--summarize] [--force-summarize]构建图谱及其搜索索引(可选添加 AI 摘要)
devlens summarize [target](重新)生成技术、业务和安全摘要
devlens status查看已分析的仓库、其语言及摘要覆盖情况
devlens doctor环境健康检查:git、存储、LLM 提供方,以及四种提取器运行时(go、rust、java、python)
devlens init首次设置:交互式配置 LLM 提供方

探索与理解

命令功能
devlens overview全局概览:语言、框架、统计数据、核心节点
devlens top-nodes [-l <n>]得分最高(最核心)的节点
devlens find-nodes <name> [-t <type>]按名称、类型、文件或严重性搜索(例如 -t ROUTE)
devlens nodes-in-path <path>列出文件或文件夹中的所有节点
devlens get-node <id>查看单个节点的完整详情:摘要、调用方、被调用方
devlens node-code <id>查看节点的原始源代码(开销较大,建议使用 get-node)
devlens architecture一次调用获取架构概要:模块、路由、流程、健康状况
devlens get-context <query>为 Agent 提供受 Token 预算限制的上下文数据包

影响与质量

命令功能
devlens blast-radius <id>更改此项会导致哪些内容出问题(上游依赖方)
devlens khop <id>此项依赖哪些内容(下游)
devlens subgraph <seed>查看节点所属的紧密关联集群(模块)
devlens cycles查看循环依赖
devlens security [--min-severity ...]查看安全发现及其严重性和说明
devlens security-brief查看按风险排序的安全报告及其影响范围
devlens diff <from> <to>比较两个已分析的提交
devlens review-pr <from> <to>PR 审查数据包:差异、影响、测试、安全变化
devlens check-freshness检查图谱是否相对于 HEAD 已过时

管理与集成

命令功能
devlens config查看或设置 LLM 提供方配置(~/.devlens/config.json)
devlens repos列出已分析的仓库
devlens graphs list | delete管理已存储的图谱
devlens reindex [graphId] [commitHash] [--force]重建本地搜索索引(.search.json),无需重新分析。不带参数时,会为每个图谱的最新提交重新建立索引
devlens serve仅启动后端 HTTP API(供 MCP 服务和 Web UI 使用)
devlens mcp运行 MCP 服务(参见快速入门)
devlens update [--check]将 CLI 更新至最新发布版本——自动检测包管理器(npm/pnpm/yarn/bun)。--check 仅检查并报告(可通过 --json 管道传递);离线、已是最新版本、从源码检出的版本和非全局安装均会显示明确消息

操作示例

devlens analyze . --summarize             # graph + summaries + search index
devlens find-nodes -t ROUTE               # every route in the app
devlens blast-radius "src/auth/login.ts::login"
devlens reindex                          # index everything up front

**完整参考:**参阅 src/cli/README.md,查看每条命令及其选项和示例。


如何生成摘要

摘要是针对每个节点生成的 AI 描述,能让查询丰富得多。可在分析期间或之后的任意时间运行:

devlens analyze . --summarize                  # during analysis (recommended)
devlens summarize .                            # current directory's repo
devlens summarize <graphId>                    # a stored graph
devlens summarize . --force-summarize          # re-generate even if summarized
devlens summarize . --provider openai --provider-name deepseek --model deepseek-v4-flash

重新生成仓库摘要时,只会处理尚无摘要的节点,因此不会重复消耗令牌。使用 devlens init 配置一次提供方即可。


配置

配置位于 ~/.devlens/config.json,通过 devlens init 或 devlens config 设置。模型会从各提供方的 /models 端点动态发现,因此没有硬编码的模型列表——可按预算和质量要求选择合适的模型。

devlens config --set                            # interactive setup
devlens config --provider openai --provider-name deepseek --model deepseek-v4-flash --api-key <key>
devlens config --active openai:deepseek         # switch saved provider
devlens doctor                                  # health check

DevLens 能理解什么

每个仓库和每种语言都有各自的图。节点类型包括 FILE、FUNCTION、METHOD、CLASS、INTERFACE、STRUCT、ENUM、TRAIT、IMPL_BLOCK、ROUTE、COMPONENT、HOOK、STATE_STORE、UTILITY、TEST、STORY 和 THIRD_PARTY(取决于语言)。每个节点都有重要性评分;生成摘要后,还会包含功能、技术和安全摘要。

边类型(图中绘制的连接)包括:CALLS、IMPORTS、READS_FROM、WRITES_TO、PROP_PASS、EMITS、LISTENS、WRAPPED_BY、GUARDS、HANDLES、TESTS、USES、NEXTJS_API_CALL、NAVIGATES_TO、IMPLEMENTS(类到接口、trait 或 ABC)、EXTENDS(类到基类)。EXPORTS、THROWS、MODULE 和 PACKAGE 为未来支持的语言预留。

路由识别:路由会作为真实的图节点,支持 Next.js(app 和 pages)、React Router、TanStack Router、wouter、Express、Fastify、Hono、Koa、Django URLconf 和 DRF、Flask 蓝图、@RestController(Spring)、Gin、Echo、chi、普通 HTTP 处理器、axum、actix 和 rocket。


搜索索引

每次分析的提交都会生成派生的 BM25F 搜索索引,与图存放在一起,路径为 ~/.devlens/graphs/<graphId>/commits/<commitHash>.search.json。

  • 每次运行 devlens analyze 和 devlens summarize,都会为其生成的提交重建索引,因此可立即进行搜索。
  • 由旧版 DevLens 构建的图没有索引。首次搜索时会按需生成索引,也可以使用 devlens reindex 预先为所有内容建立索引。
  • 索引是派生数据:删除它是安全的,需要时会按需重建。
devlens reindex                                  # latest commit of every graph
devlens reindex <graphId>                        # every commit of one graph
devlens reindex <graphId> <commitHash> --force   # one commit, rebuilt even if present

也可以通过 HTTP 执行相同操作:POST /api/reindex 和 POST /api/reindex/:graphId?commitHash=...&force=1。


截图

交互式图浏览器 包含摘要和安全风险的节点检查器 聚焦节点子图 安全发现
图浏览器 · 包含摘要和安全风险的节点检查器 · 聚焦子图 · 安全发现

为什么速度快、成本低

一个节点摘要大约需要 50 个令牌,而它描述的文件大约需要 2,000 个令牌。查询摘要和图切片的成本只是读取文件的一小部分,因此人类能更快获得答案,AI Agent 在完成相同任务时也能大幅减少令牌消耗。


适用对象

  • 开发者和团队:数小时而非数周即可熟悉项目;结合影响范围审查 PR;发现循环依赖和巨型文件;维护持续更新的文档。
  • 工程负责人:从全局视角了解架构,在技术债演变成危机前发现问题。
  • 使用 AI 增强开发的开发者:别再让 Agent 为了重新读取文件而消耗令牌;改为查询图。

仓库布局

devlensOSS/
├── src/
│   ├── cli/                  # `devlens` CLI (commander program + commands)
│   ├── core/                 # Shared query core (CLI + MCP, they never drift)
│   ├── mcp/                  # MCP server (stdio + HTTP) and packet renderer
│   ├── search/               # Local BM25F search stack (index, query, cache)
│   └── server/               # HTTP API for the Web UI + Next.js proxy
├── frontend/                 # Next.js graph visualizer (Cytoscape)
├── plugins/devlens/          # Deprecated agent skill source (old installs)
├── packages/skill-installer/ # @devlensio/skill (deprecated)
├── bin/ + npm/<platform>/    # Launcher and prebuilt binary packages
├── scripts/                  # Release tooling + start.mjs (bun start build-or-skip)
└── server.json               # MCP registry manifest

分析引擎(原生解析器和图构建)以独立的 devlensio 包的形式发布。


DevLens Cloud

托管版本正在开发中:可分享的图谱、团队工作区、按提交实时更新并附带节点摘要的文档、详细的 PR 分析(摘要、影响、安全性)、显示新增/修改/删除节点的提交差异、基于 AI 的代码库聊天功能,以及无需本地配置。

加入候补名单 →


许可证

AGPL-3.0。属于 devlensio 工具系列。

评论

支持 Markdown

第一次接触 MCP?

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

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