Vigia
Provides tools for querying npm package metadata, version compatibility, upgrade impact, vulnerabilities, deprecation status, and checking package.json dependency files.
Provides tools for querying PyPI package metadata, version compatibility, vulnerabilities, deprecation status, and checking requirements.txt dependency files.
Provides tools for querying Rust crate (crates.io) metadata, version compatibility, vulnerabilities, and deprecation status.
Vigia — what breaks when you upgrade, before your agent writes the code
Vigia is a free, open data service (REST API + MCP server) that gives AI coding agents and developers verified, dated facts about the state of npm, PyPI and Rust (crates.io) packages — the things language models get wrong because their training data is out of date.
🌐 https://vigia.coredls.cloud · MCP: https://vigia.coredls.cloud/mcp · Registry: cloud.coredls.vigia/vigia
claude mcp add --transport http vigia https://vigia.coredls.cloud/mcpOr install it as a Claude Code plugin, which bundles the MCP server and a skill that tells the agent when to use it:
/plugin marketplace add MatiasDelosSantos/vigia
/plugin install vigia@vigiaOther agents can use the skill directly: skills/vigia/SKILL.md (also served at https://vigia.coredls.cloud/skill.md).
One-click install: Cursor · VS Code
Why
Models freeze at their training cutoff; ecosystems ship thousands of releases a day. Agents confidently write code against APIs that changed. Example — Next.js 14 → 15, detected automatically from the packages' TypeScript types:
GET /v1/packages/npm/next/upgrade?from=14&to=15
next/headers · cookies (): ReadonlyRequestCookies → (): Promise<ReadonlyRequestCookies>
next/headers · headers (): ReadonlyHeaders → (): Promise<ReadonlyHeaders>
+ new module: next/form
summary: 4 removed exports · 10 changed signatures · 16 changed/removed members · 5 new deprecationsRelated MCP server: vdiff
What it answers (that nothing else does in one call)
Question | REST | MCP tool |
What breaks if I upgrade X from A to B? Removed exports and import paths, changed signatures and class members, new |
|
|
Does this API exist in this version? Exact signature, import path, deprecation message, "did you mean" |
|
|
Newest version that works with Node 18 / React 18 / Python 3.8? Uses the requirements declared by each version |
|
|
Is my exact version vulnerable? Nearest fixed version? (OSV) |
|
|
Latest version, deprecation, runtime requirements, peers, license |
|
|
Check a whole |
|
|
Is this Python / Node / PHP / Java / Django / Ubuntu... version still supported? When does it reach end of life? (~480 products) |
|
|
What changed since my training cutoff? New major versions, runtime releases and AI models after a date |
|
|
AI model prices, context windows, retirement dates |
|
|
Every response includes when it was verified and where the data came from. Full spec: /openapi.json · Docs in 18 languages: /docs.
Project context for agents (no MCP needed)
Agents read AGENTS.md / CLAUDE.md by themselves. Generate a block with the facts about your dependencies (end-of-life runtimes, vulnerabilities, deprecated packages, what breaks in the major versions you are behind on):
Web: https://vigia.coredls.cloud/context (paste your
package.jsonorrequirements.txt)Script (zero dependencies, Node 18+; read it first):
curl -fsSL https://vigia.coredls.cloud/context.mjs -o vigia-context.mjs && node vigia-context.mjsAPI:
POST /v1/context
Claude Code: automatic. The plugin includes hooks that give the agent these facts at session start and re-check whenever it edits package.json or requirements.txt (so it learns that Node 18 is end of life, or that lodash has known vulnerabilities, without calling any tool). The manifest is sent to Vigia and not stored; set VIGIA_DISABLE=1 to turn the hooks off. Without the plugin, copy examples/claude-code-settings.json into .claude/settings.json and point it at hooks/vigia-hook.mjs.
Per-month pages of what changed after a training cutoff: https://vigia.coredls.cloud/since
GitHub Action
Flags outdated, deprecated and vulnerable dependencies on every pull request:
name: dependencies
on: pull_request
permissions:
contents: read
pull-requests: write
jobs:
vigia:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: MatiasDelosSantos/vigia@v1
with:
fail-on: vulnerable # optional: vulnerable, deprecated, major, outdated
github-token: ${{ secrets.GITHUB_TOKEN }} # optional: comment on the PRBadges
[](https://vigia.coredls.cloud/npm/react)
[](https://vigia.coredls.cloud/npm/react)How it works
Registries are the source of truth. npm, PyPI and crates.io metadata with ETags, publish dates and per-version requirements (engines, Requires-Python, rust-version); deps.dev for npm history; OSV for vulnerabilities; OpenRouter for AI models.
API surface analysis never executes package code. Tarballs are downloaded, only
.d.ts,package.jsonand changelogs are extracted, and the TypeScript compiler API reads the exported declarations in an isolated worker thread with memory and time limits. Packages without bundled types fall back to@types/*.Facts are never overwritten. Each change closes the previous value (bitemporal history), so
?as_of=can answer "what did Vigia say on date X".Self-updating. A worker tracks ~34,000 popular packages (npm every 15 min–2 h; PyPI via its update feed; the top 3,000 Rust crates from crates.io), resolves unknown packages on first request, and pre-computes upgrade reports for the 300 most popular npm packages.
Stack: TypeScript, Node 22, Hono, PostgreSQL 17, MCP SDK, Docker.
Run it yourself
cp .env.example .env # set POSTGRES_PASSWORD and PUBLIC_URL
docker compose up -d # vigia-db, vigia-api (:3005), vigia-worker
npm install && npm test # 70 unit testsData license & privacy
Vigia's compiled data is CC-BY-4.0 (attribute "Vigia"); upstream data keeps each source's terms. Manifests sent to /v1/check are not stored; no cookies or trackers. See terms and privacy.
License
Code: AGPL-3.0. Operations notes (Spanish): docs/OPERACION.es.md.
Related MCP Connectors
Latest versions, LTS windows, and EOL dates for 300+ products. Fresh ground truth for stale models.
npm & PyPI freshness for AI agents: latest version, deprecations, dated breaking-change diffs.
Package intelligence for AI agents across npm, PyPI, crates.io and deps.dev. No API keys.
Package intelligence for AI agents across npm, PyPI, crates.io and deps.dev. No API keys.
Related MCP Servers
- AlicenseAqualityCmaintenanceChecks npm and PyPI packages for outdated versions, deprecation status, and breaking changes with cited sources, enabling AI agents to verify dependency freshness.18 npmISC
- FlicenseAqualityCmaintenanceBreaking-change diffs for npm packages, served over REST and MCP, so coding agents stop writing code against outdated API knowledge.2-
- AlicenseAqualityDmaintenanceProvides accurate, source-grounded breaking-change briefings for npm packages by reading real GitHub release notes and CHANGELOGs, helping coding agents avoid hallucinated dependency migrations.38 npmMIT
- AlicenseAqualityBmaintenanceProvides software supply-chain intelligence for AI agents, enabling them to query package metadata, versions, downloads, dependencies, and health signals for npm, PyPI, and crates.io packages without API keys.630 npmMIT