Repository navigation
v0.3.0 — everything your agent reads
Widens toolprint from "the MCP config in this repo" to everything the agent reads — every agent client on the machine, and the skill bundles your agent loads — then makes findings actionable when they're wrong.
Note: this release supersedes 0.2.0, which was merged but never published. Everything in the 0.2.0 changelog — opt-in
--probe, thecriticaltier,--baseline, PR comments — ships here.
Scan every client, not just this repo
npx toolprint scan --all-clients
npx toolprint scan --client cursor --client zedKnows where 15 agent clients keep their MCP config across macOS, Linux, and Windows, vendored from SkillRoute's harness manifests — so there's still no Python and no install. Server ids are namespaced by client (claude-code:github) so one lockfile holds several clients without collisions.
The four clients that store servers as TOML or YAML are reported as explicitly skipped, never silently counted as covered.
Skill rug-pull detection
npx toolprint pin --skills
npx toolprint scan --skillsA SKILL.md body is text your agent reads and then follows — the same trust surface as a tool description. The entire file is hashed, frontmatter and body, so a bundle whose name and description are untouched while its instructions are rewritten is still caught:
HIGH rug-pull skills:.claude/skills · skill "pdf-export"
Skill "pdf-export" definition changed (body/frontmatter) since it was pinned
CRIT tool-poisoning skills:.claude/skills · skill "pdf-export"
Multiple independent injection vectors in skill "pdf-export"
vectors: Covert precondition referencing other tools, Instruction to read sensitive files
Nothing else covers this today. skillroute validate checks bundles for spec compliance; toolprint checks them for security.
Handle false positives without lowering the gate
Reviewed exceptions go in a committed toolprint.ignore.json, keyed by the stable finding id. A suppressed finding is still reported — just not enforced. reason is required, expired entries warn and re-gate, and unused entries are reported so the file can be pruned.
Adopt on a repo that isn't clean
npx toolprint scan --baseline baseline.json --fail-on-newGates only on findings new since the baseline, so you can block regressions today and work the backlog on your own schedule.
Fixes
- False negative in Claude Code discovery.
~/.claude.jsonhas no top-levelmcpServers; the servers an agent actually reaches live underprojects.<dir>.mcpServers. These were silently missed. Found by dogfooding this release on a real machine. - Non-portable lockfile paths for skills (absolute machine paths would churn across machines).
--no-telemetrywas a phantom flag — advertised "disable anonymous usage telemetry" while no telemetry code has ever existed. Removed from the docs and--help; still accepted as a hidden no-op so workflows pinned to@v1keep working.jestatsio/toolprint@v1never existed as a ref. It does now, and moving it is a documented release step.- A config with no MCP servers no longer aborts a multi-config run.
Docs
README rebuilt around the attack it catches, with a banner, badges, and terminal captures transcribed from real CLI output. Adds a 12-guide docs site, plus SECURITY.md and CONTRIBUTING.md.
Full changelog: https://github.com/jestatsio/toolprint/blob/main/CHANGELOG.md