Vigía

cloud.coredls.vigia由 vigia.coredls.cloud 發布官方發布者v0.6.0更新於 Nov 1, 2026

What breaks between versions, vulnerabilities, compatible versions, EOL dates: npm, PyPI, Rust, PHP.

已驗證Streamable HTTP可網頁執行開發者工具安全與監控AI 與機器學習

概覽

AI 產生的概覽

Vigía 是一個免費的遠端 MCP 伺服器,為程式開發助理提供 npm、PyPI、crates.io 與 Packagist 套件、AI 模型目錄及生命週期終止日期的附日期、可查證事實。

可以做什麼
  • 查詢套件狀態、版本清單、棄用情況、授權條款與執行環境需求
  • 比對兩個 npm 版本之間的公開 TypeScript API 差異,並檢查某個符號是否存在於指定版本
  • 找出與指定執行環境相容的最新版本,並稽核整份 package.json 或 requirements.txt
  • 檢查某個確切版本是否有漏洞或被撤回,以及落後最新版多少
  • 查詢約 480 種執行環境、框架、資料庫與作業系統的支援狀態與終止支援日期
  • 列出近期生態變化、訓練截止日期之後的新主版本,以及 AI 模型價格與退役日期
適用情境
適合在助理撰寫或升級程式碼、需要其訓練資料可能過時的現況事實時使用:主版本之間的破壞性變更、某個 API 是否仍存在、哪個版本適用於指定的 Node 或 Python 版本、漏洞與棄用狀態,以及終止支援日期。
執行需求
需要一個遠端 streamable HTTP 端點;未宣告任何身分驗證、API 金鑰或環境變數。README 另介紹可選的 Claude Code 外掛(其鉤子會將專案清單傳送到該服務)以及可選的 GitHub Action。
安裝前請注意
查詢為唯讀,但可選的外掛鉤子會把你的 package.json 或 requirements.txt 清單傳送到該服務(聲明不儲存;可用 VIGIA_DISABLE=1 關閉)。GitHub Action 在提供權杖時可在提取要求上留言。資料來自第三方註冊表、OSV、deps.dev 與 OpenRouter,結果的新舊程度取決於這些來源。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Vigía,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/cloud.coredls.vigia%2Fvigia/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "vig-a": {
      "type": "http",
      "url": "https://vigia.coredls.cloud/mcp"
    }
  }
}

README

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

bash
claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp

Or install it as a Claude Code plugin, which bundles the MCP server and a skill that tells the agent when to use it:

text
/plugin marketplace add MatiasDelosSantos/vigia/plugin install vigia@vigia

Other 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:

text
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/formsummary: 4 removed exports · 10 changed signatures · 16 changed/removed members · 5 new deprecations

What it answers (that nothing else does in one call)

QuestionRESTMCP tool
What breaks if I upgrade X from A to B? Removed exports and import paths, changed signatures and class members, new @deprecated, engines/peerDependencies changes, changelog in betweenGET /v1/packages/npm/{name}/upgrade?from=14&to=15upgrade_impact
Does this API exist in this version? Exact signature, import path, deprecation message, "did you mean"GET /v1/packages/npm/{name}/symbols/{symbol}?version=15symbol_status
Newest version that works with Node 18 / React 18 / Python 3.8? Uses the requirements declared by each versionGET /v1/packages/{npm|pypi}/{name}/compatible?with=node@18,react@18find_compatible_version
Is my exact version vulnerable? Nearest fixed version? (OSV)GET /v1/packages/{eco}/{name}/versions/{version}version_status
Latest version, deprecation, runtime requirements, peers, licenseGET /v1/packages/{eco}/{name}package_status
Check a whole package.json / requirements.txtPOST /v1/checkcheck_dependencies
Is this Python / Node / PHP / Java / Django / Ubuntu... version still supported? When does it reach end of life? (~480 products)GET /v1/eol/{product}/{version}eol_status
What changed since my training cutoff? New major versions, runtime releases and AI models after a dateGET /v1/since?cutoff=2025-06changes_since_cutoff
AI model prices, context windows, retirement datesGET /v1/modelsmodel_status

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.json or requirements.txt)
  • Script (zero dependencies, Node 18+; read it first): curl -fsSL https://vigia.coredls.cloud/context.mjs -o vigia-context.mjs && node vigia-context.mjs
  • API: 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:

yaml
name: dependencieson: pull_requestpermissions:  contents: read  pull-requests: writejobs:  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 PR

Badges

markdown
[![version](https://vigia.coredls.cloud/badge/npm/react/version.svg)](https://vigia.coredls.cloud/npm/react)[![maintained](https://vigia.coredls.cloud/badge/npm/react/maintained.svg)](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.json and 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

bash
cp .env.example .env          # set POSTGRES_PASSWORD and PUBLIC_URLdocker compose up -d          # vigia-db, vigia-api (:3005), vigia-workernpm install && npm test       # 70 unit tests

Data 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.

來源:README.md,提交 6458e88

工具

12

package_status

Package status

Returns the current state of one package: latest stable version and its publish date, status (active / deprecated / yanked / not_found_in_registry), the deprecation message if any, runtime requirements (npm engines and peerDependencies, PyPI Requires-Python, Rust rust-version, PHP require.php), license, known security advisories on the latest version, a release-activity summary (active / slowing / dormant) and the sources with their last verification time. Read-only and requires no authentication. A package Vigia does not track yet is fetched live from its registry on the first call (a few seconds); if the name does not exist the result has status not_found_in_registry plus similar-name suggestions. Use it to decide whether to add or recommend a package, or to learn its newest version. For a specific version you already have use version_status; for what breaks when moving between two versions use upgrade_impact; to find a release that fits an older runtime use find_compatible_version; to find a package whose exact name you do not know use find_package.

輸入參數name必填ecosystem必填

list_versions

List package versions

Lists the published versions of one package, newest first, each with its publish date, a prerelease flag and whether it is withdrawn (npm: deprecated; PyPI and crates.io: yanked; Packagist: abandoned), plus a maintenance summary: last release date, releases in the last 12 months and an activity label (active / slowing / dormant). Read-only and requires no authentication. A package Vigia does not track yet is fetched live on the first call. Use it to judge release cadence, to see which version was current at a given date, or to check whether a version was ever withdrawn. For only the latest version use package_status; for the vulnerabilities of one version use version_status.

輸入參數name必填limitecosystem必填stable_only

upgrade_impact

Upgrade impact (what breaks)

Reports what changes between two versions of an npm package by diffing the public TypeScript API of both releases (only the type declarations are analyzed; package code is never executed): removed exports and import paths, changed function signatures and class or interface members, newly deprecated APIs, changed engines and peerDependencies, and the changelog sections published in between. Returns a summary with counts and a likely_breaking flag, followed by the before/after detail of each change. Read-only and requires no authentication. The first request for a version pair can take up to about 25 seconds while the analysis runs; if it is still running the result has status "pending" and retry_after_s, and you should call again after that delay. Limits: only npm packages that ship TypeScript types (or have @types) can be analyzed, and behavior changes that do not alter types (for example new caching defaults) are invisible, so also read the returned changelog. Use it BEFORE upgrading a dependency across a major version, or when code written for an old version fails on a new one. For one API in one version use symbol_status; for vulnerabilities use version_status; to choose a version that fits an older runtime use find_compatible_version.

輸入參數tofrom必填name必填

symbol_status

Does this API exist in this version?

Checks whether an exported function, class, type or constant (or a Class.member) exists in a specific version of an npm package, using the package's TypeScript declarations. Returns whether it was found, its kind, its exact signature, the module path to import it from, whether it is deprecated (with the deprecation message) and, when it is not found, close-name suggestions. Read-only and requires no authentication. The first lookup for a package version can take up to about 25 seconds while its types are analyzed; a result with status "pending" and retry_after_s means call again after that delay. Limits: npm packages with TypeScript types only; exports that exist at runtime but have no type declaration are not visible. Use it before writing code that calls a library API you are not sure exists, or has the same signature, in the installed version, especially after a major upgrade. For a complete list of what changed between two versions use upgrade_impact.

輸入參數name必填modulesymbol必填version

find_compatible_version

Newest compatible version

Finds the newest stable, non-withdrawn version of a package whose own declared requirements admit the runtimes you give it: npm engines and peerDependencies, PyPI Requires-Python, Rust rust-version (minimum Rust), PHP require.php and required packages. Returns the best version with the per-constraint checks, the newest release that is incompatible together with the reason it fails, and a list of unverified constraints (a version that declares nothing for a constraint is not counted against it but is flagged). Read-only and requires no authentication. If per-version requirement data for a package is still being loaded, the result has status "requirements_not_synced_yet" and retry_after_s. Use it when a project is pinned to an older Node, React, Python, Rust or PHP and the latest release may not support it. For the plain latest version use package_status; to check whether the runtime itself is still supported use eol_status.

輸入參數name必填with必填ecosystem必填

version_status

Version status and vulnerabilities

Reports on one exact version of an npm, PyPI, crates.io or Packagist package: whether that version exists, when it was published, whether it is withdrawn (npm deprecated, PyPI and crates.io yanked, Packagist abandoned), how many stable releases and major versions it is behind the latest, and its known vulnerabilities from OSV with severity, summary, the version that fixes each one, and the single nearest version that fixes all of them (null if any has no fix). Read-only and requires no authentication. Vulnerability data is cached for up to 6 hours, and the response states when OSV could not be reached. Use it before keeping, pinning or recommending a specific version, or when auditing one lockfile entry. For the latest version and general package health use package_status; to audit a whole manifest at once use check_dependencies.

輸入參數name必填version必填ecosystem必填

check_dependencies

Check dependencies

Audits a whole manifest in one call. For every dependency in a package.json (dependencies and devDependencies) or a requirements.txt it returns the latest version, whether the declared range includes it (up_to_date / outdated / outdated_major / unpinned / unsupported_spec), how many major versions behind it is, whether the package is deprecated, and the OSV vulnerability IDs of the lowest version the range allows; a summary with counts comes first. Read-only and requires no authentication. Nothing is stored. Up to 300 dependencies are handled per call; packages Vigia does not track yet are resolved live (up to 40 per call), and the rest come back as not_resolved_yet with retry_after_s. Only npm and PyPI manifests are supported. Use it when opening a project or before upgrading its dependencies. For a single package use package_status; for one exact version use version_status.

輸入參數manifest必填ecosystem必填

recent_changes

Recent changes

Lists the changes Vigia detected recently, newest first: new package releases (with old and new version), deprecations, yanks and removals, runtime-requirement changes, AI model price changes and model retirement announcements. Each item has the entity, the kind of change, the old and new values and the detection time. Without a name it returns the global feed; with ecosystem and name it returns the change history of that one package or model. Read-only and requires no authentication. History only goes back to when Vigia started tracking the entity, so it is not a package's full release history (use list_versions for that). Use it to find out what happened after your training data ends, or whether a dependency or model has just changed.

輸入參數namelimitecosystem

model_status

AI model status and pricing

Looks up AI models in the OpenRouter catalog: price per million input and output tokens in USD, context window, maximum output tokens, knowledge cutoff, supported modalities and announced retirement date, with a status of available / retiring / removed_from_catalog. With model_id it returns that one model (if the id is unknown, a list of similar ids); with provider and/or query it returns up to 40 matching models. Read-only and requires no authentication. Prices are OpenRouter reference prices and may differ from a provider's direct pricing; the catalog is refreshed every 15 minutes. Use it before writing a model ID in code, choosing between models, estimating costs, or checking whether a model is being retired. It does not call, run or benchmark models.

輸入參數querymodel_idprovider

eol_status

Software end-of-life status

Tells whether a language, runtime, framework, database or operating-system version is still supported and when it reaches end of life. Covers about 480 products (Python, Node.js, PHP, Java, Ruby, Go, Rust, Django, Laravel, Rails, React, Angular, PostgreSQL, MySQL, Ubuntu, Debian, Kubernetes and more). With product and version it returns that version's status (supported / security_only / end_of_life / upcoming), its release, active-support and end-of-life dates, days remaining or elapsed, and the cycles that are still supported; with only product it returns every release cycle; with neither it lists the product identifiers. Read-only and requires no authentication. Status is computed on every call from today's date; the dates come from endoflife.date and are refreshed every 12 hours. Use it before choosing a runtime or base image, when writing a Dockerfile or CI matrix, or when auditing an old version. It concerns the language, runtime or platform itself; for a library's own versions use package_status.

輸入參數productversion

changes_since_cutoff

What changed since my knowledge cutoff

Returns what happened in software after a given date, so an agent can patch the gap between its training data and today: packages among the most popular on npm, PyPI, crates.io and Packagist that shipped a NEW MAJOR VERSION after the date (with the version that existed at that date, the new majors and their first release dates, the latest version, and an upgrade-guide link when one exists), runtimes, frameworks and platforms released or ended since (Python, Node.js, PHP, Java, Django, Laravel, Ubuntu, PostgreSQL and about 35 more), runtimes ending within 180 days, and AI models released since by the main providers with their prices. Read-only and requires no authentication. Results are computed from registry publication dates and cached for an hour. Coverage is the most popular packages (not every package), 0.x-to-0.y changes and calendar-versioned packages are not reported as major versions, and deprecations that happened before Vigia started tracking are not listed. Use it once at the start of a coding session, passing the month your training data ends, or when you suspect a library you know has changed a lot. To dig into one package use upgrade_impact (npm) or package_status; for one runtime use eol_status.

輸入參數limitcutoff必填ecosystems

find_package

Find package

Searches the catalog of tracked packages and AI models by case-insensitive name prefix and returns up to 15 matches ordered by popularity, each with its ecosystem, name and popularity rank. Read-only and requires no authentication. It matches only the beginning of the name (not descriptions or keywords) and covers tracked packages only, about 34,000 across npm, PyPI, crates.io and Packagist. Use it when you do not know the exact package or model name before calling package_status, list_versions or model_status; it is not a way to discover packages by what they do.

輸入參數query必填ecosystem

版本歷史

6
  1. v0.6.0最新Oct 10, 2026
  2. v0.5.0Oct 9, 2026
  3. v0.4.0Oct 8, 2026
  4. v0.3.0Oct 1, 2026
  5. v0.2.0Sep 29, 2026
  6. v0.1.0Sep 28, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分