AI agents and token efficiency
An AI coding agent writes code fast, but to reason about a change it usually reads a lot of files, and every file it reads costs tokens. Vulkro hands the agent the map of your application instead: what a symbol depends on, what a change will touch, and whether that change is safe. The agent works from a small, ranked answer rather than the whole repository.
Answering "what does this change affect?" from that map, instead of reading every file, took up to 98% fewer tokens on our benchmark repositories. Every count the map returns says what it could not resolve, so a number is never mistaken for the whole picture.
It runs on your machine. Scan content never leaves it, the answers are
deterministic, and with --offline there is no network call at all.
Wire it into your agent
Run Vulkro as a Model Context Protocol (MCP) server. Your agent calls small, structured tools and gets compact JSON back, instead of you pasting scan output into the chat or the agent reading file after file.
Claude Code
claude mcp add vulkro -- vulkro mcp serve --offline
Cursor
Add the server to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per
project), then turn it on under Settings -> MCP:
{
"mcpServers": {
"vulkro": {
"command": "vulkro",
"args": ["mcp", "serve", "--offline"]
}
}
}
Claude Desktop, Windsurf and Continue use the same command in their own MCP configuration.
Inline, as you type
The editor extension shows findings inline with one-click fixes. Cursor, Windsurf and VSCodium are VS Code forks, so it installs straight in:
vulkro install-extension --editor cursor
The tools that save the tokens
The three change-intelligence tools below (code_graph, assess_change,
from_trace) are part of Vulkro Pro: the Code-structure map. On Free the MCP
server still runs and the scanning tools work; these three return a short
message naming what they need and where to get it. See Pricing.
code_graphbuilds a ranked, scan-free map of your symbols and what depends on what. The agent navigates from the map instead of reading every file.assess_changetakes a diff and returns the blast radius, the tests that cover it, and whether the change is safe or introduced a finding: a short verdict, not a full re-scan.from_tracetakes a production stack trace and maps each frame to the function it names, with the findings already on that line.
The full input and output shape of every tool is in the MCP server reference.
The lean loop
- Before an edit, call
code_graphfor the map, andassess_changeon the symbol you are about to touch for its blast radius and the tests that cover it. - After an edit, scan only what changed at
--min-confidence high, so the agent sees the proof-backed findings and not the noise. - On a crash, paste the stack trace into
from_traceto land on the function and its findings.
Two habits carry the savings: let the agent work from the map and the diff rather than the whole repository, and filter to high-confidence findings.
It stays on your machine
--offline (or VULKRO_OFFLINE=1) hard-disables every outbound call: the CVE
feed, the update check, the usage heartbeat, and any cloud AI endpoint. Even
without it, dependency-CVE matching runs against the local bundle, so nothing
about your code or your dependency tree is uploaded. The answers are
deterministic, so the same code always produces the same map.