The Vibgrate CLI scans your codebase for upgrade drift — the gap between the dependency versions you run and the versions you should run. It produces a deterministic Upgrade Drift Score (0–100), a full context-aware dependency graph, and actionable findings enriched with AI-assisted upgrade guidance to help you maintain a healthy, secure codebase.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · http
verified
reported
listed in the official MCP registry counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 24db069 · analyzer v27 · 1w ago
skills & prompt files 3
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 560
filesystem 70
- fs vibgrate-cli-24db069/src/cli.ts :2
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/commands/attest-actions.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/commands/benchmark.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/commands/build.ts :2
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/commands/bundle.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/commands/doctor.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/commands/export.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/commands/lib.ts :16
import fs from 'node:fs'; - fs vibgrate-cli-24db069/src/commands/push.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/commands/serve.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/commands/share.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/commands/status.ts :2
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/core-open/config.ts :5
import * as fs from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/core-open/package-version-manifest.ts :4
import { mkdtemp, readFile, rm } from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/core-open/runtimes/client.ts :6
import { readFile, writeFile, mkdir } from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/core-open/scanners/upgrade-impact.ts :4
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/core-open/ui/scan-history.ts :4
import * as fs from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/core-open/ui/trace.ts :4
import { writeFileSync, mkdirSync } from 'node:fs'; - fs vibgrate-cli-24db069/src/core-open/utils/fs.ts :5
import * as fs from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/core-open/utils/repo-fingerprint.ts :5
import * as fs from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/core-open/utils/update-check.ts :4
import * as fs from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/core-open/utils/vcs.ts :5
import * as fs from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/core-open/utils/version-timeline.ts :4
import * as fs from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/engine/artifacts.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/build.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/cache.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/coverage.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/discover.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/drift.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/embeddings.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/freshness.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/grammars.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/hosted-cache.ts :12
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/lib.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/literal-scan.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/load.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/lock.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/lockfile.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/models.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/module-resolver.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/parse-worker.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/pool.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/refresh.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/savings.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/search.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/standards.ts :1
import fs from 'node:fs'; - fs vibgrate-cli-24db069/src/engine/stats-share.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/install/registry.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/lsp/scan-cache.ts :15
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/lsp/server.ts :22
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/mcp/ledger-tail.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/mcp/live-stats.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/mcp/server.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/mcp/vuln-data.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/reporting/commands/update.ts :2
import * as fsSync from 'node:fs'; - fs vibgrate-cli-24db069/src/reporting/config.ts :2
import * as fs from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/reporting/credentials.ts :23
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/reporting/package-version-manifest.ts :1
import { mkdtemp, readFile, rm } from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/reporting/planning/contracts.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/reporting/planning/usage.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/reporting/reachability.ts :26
import * as fs from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/reporting/scanners/architecture.ts :2
import * as fs from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/reporting/scanners/file-hotspots.ts :1
import * as fs from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/reporting/scanners/platform-matrix.ts :2
import * as fs from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/reporting/ui/scan-history.ts :1
import * as fs from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/reporting/utils/fs.ts :2
import * as fs from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/reporting/utils/gitignore.ts :11
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/reporting/utils/scan-freshness.ts :1
import * as fs from 'node:fs'; - fs vibgrate-cli-24db069/src/reporting/utils/update-check.ts :1
import * as fs from 'node:fs/promises'; - fs vibgrate-cli-24db069/src/util/cli-invocation.ts :1
import * as fs from 'node:fs';
shell / exec 18
- shell vibgrate-cli-24db069/src/commands/attest-actions.ts :4
import { execFile } from 'node:child_process'; - shell vibgrate-cli-24db069/src/commands/build.ts :3
import { spawn } from 'node:child_process'; - shell vibgrate-cli-24db069/src/commands/share.ts :3
import { execFileSync } from 'node:child_process'; - shell vibgrate-cli-24db069/src/core-open/package-version-manifest.ts :7
import { spawn } from 'node:child_process'; - shell vibgrate-cli-24db069/src/core-open/scanners/npm-cache.ts :4
import { spawn } from 'node:child_process'; - shell vibgrate-cli-24db069/src/core-open/utils/fs.ts :4
import { execFile } from 'node:child_process'; - shell vibgrate-cli-24db069/src/core-open/utils/git-history.ts :4
import { execFile } from 'node:child_process'; - shell vibgrate-cli-24db069/src/engine/lib.ts :4
import { execFileSync } from 'node:child_process'; - shell vibgrate-cli-24db069/src/engine/lookup.ts :75
return new RegExp(`^${escaped}$`, 'i'); - shell vibgrate-cli-24db069/src/engine/push.ts :1
import { execFileSync } from 'node:child_process'; - shell vibgrate-cli-24db069/src/engine/search.ts :3
import { spawnSync } from 'node:child_process'; - shell vibgrate-cli-24db069/src/reporting/commands/update.ts :1
import { execSync } from 'node:child_process'; - shell vibgrate-cli-24db069/src/reporting/package-version-manifest.ts :4
import { spawn } from 'node:child_process'; - shell vibgrate-cli-24db069/src/reporting/planning/apply.ts :1
import { spawnSync } from 'node:child_process'; - shell vibgrate-cli-24db069/src/reporting/planning/contracts.ts :71
const fromRe = new RegExp(`^\\s*from\\s+${e}(?:\\.[\\w.]+)?\\s+import\\s+(.+)$`, 'gm'); - shell vibgrate-cli-24db069/src/reporting/utils/fs.ts :1
import { execFile } from 'node:child_process'; - shell vibgrate-cli-24db069/src/reporting/utils/open-url.ts :1
import { spawn } from 'node:child_process'; - shell vibgrate-cli-24db069/src/util/cli-invocation.ts :2
import { execFileSync } from 'node:child_process';
network 29
- net vibgrate-cli-24db069/src/commands/doctor.ts :213
await fetch(base, { method: 'HEAD', signal: controller.signal }); - net vibgrate-cli-24db069/src/core-open/scanners/cargo-cache.ts :56
const response = await fetch(url, { - net vibgrate-cli-24db069/src/core-open/scanners/changelog-signals.ts :187
const res = await fetch(url, { - net vibgrate-cli-24db069/src/core-open/scanners/composer-cache.ts :57
const response = await fetch(url, { - net vibgrate-cli-24db069/src/core-open/scanners/docker-cache.ts :71
const response = await fetch(url, { - net vibgrate-cli-24db069/src/core-open/scanners/go-cache.ts :60
const response = await fetch(url, { - net vibgrate-cli-24db069/src/core-open/scanners/helm-cache.ts :40
const response = await fetch(searchUrl, { - net vibgrate-cli-24db069/src/core-open/scanners/hex-cache.ts :37
const response = await fetch(url, { - net vibgrate-cli-24db069/src/core-open/scanners/maven-cache.ts :85
const response = await fetch(url, { - net vibgrate-cli-24db069/src/core-open/scanners/npm-cache.ts :317
const res = await fetch('https://registry.npmjs.org/npm/latest', { - net vibgrate-cli-24db069/src/core-open/scanners/nuget-cache.ts :57
const response = await fetch(url, { - net vibgrate-cli-24db069/src/core-open/scanners/pub-cache.ts :56
const response = await fetch(url, { - net vibgrate-cli-24db069/src/core-open/scanners/pypi-cache.ts :74
const response = await fetch(url, { - net vibgrate-cli-24db069/src/core-open/scanners/rubygems-cache.ts :79
const response = await fetch(url, { - net vibgrate-cli-24db069/src/core-open/scanners/swift-cache.ts :63
const response = await fetch(url, { - net vibgrate-cli-24db069/src/core-open/scanners/terraform-cache.ts :40
const response = await fetch(url, { - net vibgrate-cli-24db069/src/core-open/scanners/vulnerability-scanner.ts :301
const res = await fetch(url, { ...init, signal: controller.signal }); - net vibgrate-cli-24db069/src/core-open/utils/scan-preflight.ts :79
const response = await fetch(url.toString(), { - net vibgrate-cli-24db069/src/core-open/utils/symbols-preflight.ts :97
const response = await fetch(url, { - net vibgrate-cli-24db069/src/core-open/utils/update-check.ts :50
response = await fetch(REGISTRY_URL, { - net vibgrate-cli-24db069/src/engine/hosted.ts :47
/** Injectable for tests; defaults to global fetch (undefined → disabled, returns null). */ - net vibgrate-cli-24db069/src/engine/parse.ts :82
// (`repo.fetch()` / `repo:method()` carry table:, bare `foo()` has only name:). - net vibgrate-cli-24db069/src/engine/stats-share.ts :271
const res = await fetch(statsEndpoint(), { - net vibgrate-cli-24db069/src/lsp/enrich.ts :103
const res = await fetch(OSV_QUERY_URL, { - net vibgrate-cli-24db069/src/reporting/commands/dsn.ts :51
const response = await fetch(url, { - net vibgrate-cli-24db069/src/reporting/commands/login.ts :67
const res = await fetch(`${base}/start`, { - net vibgrate-cli-24db069/src/reporting/utils/fix-plan.ts :31
return fetch(`${input.scheme}://${host}/v1/fix/plan`, { - net vibgrate-cli-24db069/src/reporting/utils/update-check.ts :47
response = await fetch(REGISTRY_URL, { - net vibgrate-cli-24db069/src/reporting/utils/upload.ts :48
return fetch(url, {
secrets 5
- secrets vibgrate-cli-24db069/src/commands/attest-actions.ts :53
const explicitKey = opts.key ?? process.env.VG_ATTEST_KEY; - secrets vibgrate-cli-24db069/src/commands/doctor.ts :187
process.env.VIBGRATE_CREDENTIALS ? 'env' : file === projectCredentialsPath(root) ? 'project' : 'home'; - secrets vibgrate-cli-24db069/src/reporting/commands/push.ts :117
runToken: process.env.VIBGRATE_SCAN_RUN_TOKEN, - secrets vibgrate-cli-24db069/src/reporting/commands/scan.ts :178
runToken: process.env.VIBGRATE_SCAN_RUN_TOKEN, - secrets vibgrate-cli-24db069/src/reporting/credentials.ts :69
const override = process.env.VIBGRATE_CREDENTIALS?.trim();
install hooks 1
- postinstall vibgrate-cli-24db069/package.json :50
node scripts/postinstall.mjs
declared dependencies 45
- @modelcontextprotocol/sdk@^1.19.0
- @noble/hashes@^2.2.0
- chalk@^5.3.0
- commander@^15.0.0
- fast-xml-parser@^5.0.0
- gpt-tokenizer@^3.0.0
- graphology@^0.26.0
- graphology-communities-louvain@^2.0.2
- graphology-metrics@^2.4.0
- graphology-shortest-path@^2.1.0
- graphology-traversal@^0.3.1
- ignore@^7.0.6
- semver@^7.8.5
- smol-toml@^1.7.0
- tinypool@^2.1.0
- tree-sitter-wasms@^0.1.13
- typescript@^6.0.0
- web-tree-sitter@0.25.10
- yaml@^2.6.1
- @types/node@^26.1.1
- @types/semver@^7.5.0
- @typescript-eslint/eslint-plugin@^8.64.0
- @typescript-eslint/parser@^8.64.0
- eslint@^10.7.0
- graphology-types@^0.24.8
- tsup@^8.0.0
- tsx@^4.23.1
- vitest@^4.1.10
- fastembed@^2.1.0
- org.springframework.boot:spring-boot-starter-web@*
- org.springframework.boot:spring-boot-starter-data-jpa@*
- org.springframework.boot:spring-boot-starter-validation@*
- org.springframework.boot:spring-boot-starter-security@*
- org.springframework.boot:spring-boot-starter-actuator@*
- org.postgresql:postgresql@*
- org.projectlombok:lombok@*
- org.mapstruct:mapstruct@*
- org.springdoc:springdoc-openapi-starter-webmvc-ui@*
- org.springframework.boot:spring-boot-starter-test@*
- org.springframework.security:spring-security-test@*
- com.h2database:h2@*
- Microsoft.AspNetCore.OpenApi@8.0.0
- Swashbuckle.AspNetCore@6.5.0
- MediatR@12.2.0
- FluentValidation.AspNetCore@11.3.0