Skip to main content
Glama

Verum

CI crates.io docs.rs Marketplace Glama

Verum은 결정적(deterministic) 동작을 보장하는 전체 프로그램 코드 분석기입니다. 코드베이스를 하나의 중간 표현(IR) 심볼, 호출 그래프, 라우트, 데이터 흐름으로 매핑한 다음, 그 맵 위에서 죽은 코드, 중복, 오염(taint) 기반 보안 검사, 복잡도, 네이밍, 인프라(Kubernetes, Dockerfile, Terraform) 분석을 수행합니다. 단일 정적 바이너리이며 빌드 단계나 언어 서버가 필요 없으므로 새로 체크아웃한 저장소에서 1초도 채 안 되는 시간에 실행됩니다.

동일한 입력에는 동일한 출력이 나옵니다. 모든 심볼 ID, 검출 항목, 리포트는 소스의 안정적 해시에서 파생되므로, 같은 트리에서 두 번 실행하면 바이트 단위로 동일한 결과가 나옵니다. 이를 통해 Verum은 CI 게이트, diff 기준이 될 베이스라인, 그리고 도구와 에이전트가 신뢰할 수 있는 팩트 레이어(fact layer)로 사용할 수 있습니다.

지원 언어: PHP, Rust, JavaScript, TypeScript, Python, Go, Java, 그리고 Kubernetes YAML, Dockerfile, Terraform.

예시

취약한 PHP 픽스처에 대한 verum audit: 죽은 코드, 보안 검출 결과, 점수

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용 사전 빌드 바이너리는 각 release에 첨부되어 있습니다.

cargo install을 실행하면 PATH에 verum 바이너리가 빌드됩니다(Verum은 stable Rust 1.82 이상에서 빌드됨). 대신 소스 체크아웃에서 빌드하려면 cargo install --path crates/verum을 사용하세요. 다음은 어디에나 복사할 수 있는 정적 Linux 바이너리를 만드는 방법입니다.

cargo build --release --target x86_64-unknown-linux-musl

같은 크레이트는 라이브러리로도 제공됩니다. 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.json

audit은 코드에 점수를 매기고 심각도별로 검출 항목을 나열합니다. clean은 적용 가능한 수정 사항, 호출자가 없는 심볼, 재매핑할 중복 본문 등을 보고하고 각 항목을 파일과 라인으로 식별합니다. 보고 전용으로 실행되며 파일을 수정하지 않으므로, 그 출력을 코드 목록으로 사용하고 직접 적용해야 합니다.

지속적 통합(CI)

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 .을 한 번 실행해 현재 검출 항목을 스냅숏으로 만들고 결과를 커밋하면 됩니다. 그렇게 하면 gate는 베이스라인에 새로 추가된 항목에 대해서만 실패하므로, 검출된 모든 문제를 먼저 수정하지 않아도 Verum을 도입할 수 있습니다.

verum report <path> --format sarif는 SARIF 2.1.0을 출력하므로 검출 항목이 풀 리퀘스트 인라인 주석과 저장소의 Security 탭에 표시됩니다.

      - 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 참조 기준으로 변경된 파일에만 존재하는 검출), 그리고 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은 결정적 분석만으로는 판별할 수 없는 모호한 검출 항목을 언어 모델로 보내 유지/삭제/지원 중단(keep/delete/deprecate)을 판단하게 할 수 있습니다. 공급업체에 중립적이며 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 initver normalize.standard.json 파일을 작성합니다. 여기에는 분석 임계값, 언어별 네이밍 규칙, 취약한 암호화 허용 목록(weak-crypto allowlist), 배포 게이트 상한이 포함됩니다. 모든 항목에는 좋은 기본값이 있으므로 이 파일은 생략 가능합니다.

동작 방식

files -> map (mappa) -> IR -> analyse (lumen) -> findings + score
                            -> plan (faber)    -> fix worklist

mappa는 트리시터(tree-sitter)로 파일을 병렬 분석하고 하나의 IR로 병합합니다. ID는 경로의 안정적 FNV-1a 해시이므로 재현 가능하고, 모든 파일이 공유 카운터 없이 독립적을 파싱됩니다. lumen은 병합된 IR에 대한 분석을 실행하고, faber는 안전한 검출 항목을 구체적인 수정 목록으로 변환합니다(이 릴리스에서는 보고전용).

워크스페이스는 이 파이프라인을 따라 분리됩니다: verum-nucleus(공유 IR과 검출 형식), verum-mappa(파서), verum-lumen(분석), verum-faber(수정 계획), verum-arbiter(선택 AI), 그리고 verum(바이너리 및 라이브러리 퍼사드).

라이선스

다음 중 하나를 선택하는 이중 라이선스로 제공됩니다.

사용자가 선택할 수 있습니다.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
3Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    An 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.
    69
    1,115
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that extracts complete knowledge from any codebase — architecture, patterns, dependencies, API surface. Combines static analysis with AI-powered deep interpretation.
    8
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An 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
  • F
    license
    A
    quality
    C
    maintenance
    MCP 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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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