Verum
Verum
Verum 是一个确定性的、全程序的代码分析器。它将代码库映射为单一的中间表示——符号、调用图、路由、数据流——然后在该映射上运行一组分析:死代码、重复、基于污点的安全检查、复杂度、命名和基础设施(Kubernetes、Dockerfile、Terraform)。它是一个无需构建步骤、无语言服务器的单一静态二进制文件,因此能在全新检出上亚秒级运行。
相同输入,相同输出。每个符号 ID、发现和报告都来自源的稳定哈希,因此同一代码树上的两次运行会产生逐字节相同的结果。这使 Verum 可用作 CI 门槛、可与之对比的基线,以及工具和智能体可以依赖的事实层。
支持的语言:PHP、Rust、JavaScript、TypeScript、Python、Go 和 Java,以及 Kubernetes YAML、Dockerfile 和 Terraform。
示例

Related MCP server: Ferret MCP
安装
cargo install verum # compile from crates.io
cargo binstall verum # or grab the prebuilt binary, no compile
docker run --rm -v "$PWD:/work" ghcr.io/ibmark/verum audit . # or no install每个发布版都附带了 Linux(gnu/musl)、macOS(x86_64/arm64)和 Windows 的预编译二进制文件。
cargo install 会在你的 PATH 上构建一个 verum 二进制文件(Verum 在 stable Rust 1.82 或更新版本上构建)。如果要改用检出进行构建,请使用 cargo install --path crates/verum。如需一个可复制到任何地方的静态 Linux 二进制文件:
cargo build --release --target x86_64-unknown-linux-musl同一个 crate 也是一个库。将 verum 添加为依赖项,即可将目录树解析为 IR 并以编程方式运行分析:
use verum::{Atlas, AtlasConfig, Prism, Standard};
let ir = Atlas::new(AtlasConfig { root: ".".into(), ..Default::default() }).build()?;
let result = Prism::analyse(&ir, &Standard::default())?;
println!("score: {}", result.score.overall);用法
verum analyse <path> # map the code into the IR - symbol/call/route counts
verum audit <path> # map + analyse - findings and a score, no changes
verum clean <path> # audit + preview the dead-code/duplicate fixes
verum map <path> # module/symbol graphs, cycles, SPOFs, data flows
verum gate <path> # exit non-zero if the deploy-gate thresholds fail
verum baseline <path> # snapshot findings so gate only fails on new ones
verum report <path> # markdown | json | sarif | a self-contained html report
verum init [path] # write a default verum.standard.jsonaudit 为代码打分,并按严重性列出发现的发现项。clean 报告它将应用的修复——没有调用者的符号、需要重新映射的重复主体——并按文件和行号标识每个修复。它仅运行报告且不修改你的文件;请将其输出视为手工应用的工作清单。
持续集成
verum gate <path> 在部署门禁阈值未达标时退出,返回 1,达标时返回 0,因此流水线可以依赖退出码,而无需解析输出。verum report <path> --format json 会将发现项和评分输出为 JSON,供仪表板或自定义检查使用。
# .github/workflows/verum.yml
name: verum
on: [push, pull_request]
jobs:
gate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: IBMark/verum-action@v1 # runs `verum gate .` by default在现有代码库上,先用 verum baseline . 快照当前发现项并提交结果;此后门禁只在相对于该基线新增的发现项上失败,这样你无需先修复所有报告问题即可采用它。
verum report <path> --format sarif 输出 SARIF 2.1.0,因此发现项会以内联拉取请求注解的形式显示,也会出现在仓库的安全选项卡中:
- run: verum report . --format sarif --out verum.sarif
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: verum.sarif智能体 / MCP
verum mcp <path> 通过 stdio 将分析作为 MCP 工具服务器提供服务,因此智能体可以查询该映射,而不是使用 grep。它暴露调用关系(callers_of、callees_of、impact_of)、dead_code、duplicates、audit、audit_delta(仅在相对 git ref 有所更改的文件中的发现项)和 endpoints(哪些客户端 HTTP 调用命中了哪些路由)。每次调用都会根据树的 mtime 重新检查映射,因此答案紧跟你的编辑。
任何支持 MCP 的客户端都可以通过 stdio 连接。例如,使用 Claude Code:
claude mcp add verum -- verum mcp /path/to/project跨语言
Verum 将所有支持的语言解析为同一个 IR,因此 TypeScript 前端中的 fetch('/api/users') 会关联到提供该服务的路由处理器——即使该处理器是用另一种语言编写的。verum mcp 的 endpoints 工具会报告匹配项,以及未命中任何路由的前端调用(很可能是 404)和没有客户端调用的路由(可能已经失效)。
可选的 AI 层
verum full 可以将模糊发现项——确定性分析无法自行判定的那些——发送给语言模型,以做出保留/删除/弃用的决定。它不依赖任何特定提供商:它使用兼容 OpenAI 的聊天 API,并且完全通过环境变量配置,因此既可以与托管 API 配合使用,也可以与本地运行器(ollama、llama.cpp、vLLM、LM Studio)配合使用。除非你设置了端点,否则不会联系任何外部服务。
export VERUM_AI_ENDPOINT="http://localhost:11434/v1/chat/completions"
export VERUM_AI_MODEL="qwen2.5-coder"
verum full <path>配置
verum init 会写入 verum.standard.json——分析阈值、每种语言的命名规则、弱-密钥允许列表和部署-门限制。一切都带有合理的默认值,因此该文件是可选项的。
工作原理
files -> map (mappa) -> IR -> analyse (lumen) -> findings + score
-> plan (faber) -> fix worklistmappa 通过 tree-sitter 并行解析文件,并将它们合并到一个 IR 中。ID 是路径的稳定 FNV-1a 哈希,这使得 ID 可复现,并允许文件在无需共享计数器的情况下独立解析。lumen 在合并后的 IR 上运行分析;faber 将安全发现转化具体的编辑列表(本发布版仅报告)。
工作区按该流水线进行划分:verum-nucleus(共享 IR 和发现类型)、verum-mappa(解析器)、verum-lumen(分析)、verum-faber(修复规划器)、verum-arbiter(可选的 AI 层)和 verum(二进制文件与库的门面)。
许可证
在以下任一许可证下进行双重许可:
Apache License, Version 2.0 (LICENSE-APACHE)
MIT License (LICENSE-MIT)
由你选择。
This server cannot be installed
Maintenance
Related MCP Servers
- AlicenseBqualityAmaintenanceAn MCP server that provides structural codebase indexing and surgical query tools to drastically reduce token usage through symbol-level searches and transitive impact analysis. It supports multiple languages and integrates with git to help AI agents understand code dependencies and the impact of changes in sub-millisecond time.691,115MIT
- AlicenseAqualityCmaintenanceAn MCP server that extracts complete knowledge from any codebase — architecture, patterns, dependencies, API surface. Combines static analysis with AI-powered deep interpretation.8MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides ultra-efficient code exploration through AST analysis, reducing LLM token usage by up to 95% while enabling instant call graph generation and dependency analysis for massive codebases.MIT

testigo-recall-mcpofficial
FlicenseAqualityCmaintenanceMCP server that exposes pre-extracted facts about code behavior, design decisions, and assumptions to AI agents, saving time and tokens by avoiding direct source file reading.6
Related MCP Connectors
Enterprise code intelligence for M&A, security audits, and tech debt. Hosted server with 200k free.
Deterministic context layer for your codebase: change impact, blast radius, answers with receipts.
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/IBMark/verum'
If you have feedback or need assistance with the MCP directory API, please join our Discord server