关于 Vigía
Vigía 是面向开发者和编码 Agent 的开放数据服务及 MCP 服务,提供最新的软件包和产品生命周期信息。它可报告升级影响、API 状态、兼容性、漏洞和停止支持日期,并注明验证时间与数据来源。
主要功能
- 01分析软件包升级影响
- 02检查 API 符号和签名
- 03查找兼容运行时的版本
- 04检查版本漏洞和状态
- 05查询产品停止支持日期
- 06检查依赖清单
适用场景
- 01升级前评估破坏性变更
- 02确认某 API 是否存在于指定版本
- 03查找兼容运行时的依赖版本
- 04检查项目依赖的漏洞或过时情况
MCP 相关
Vigía 向 MCP 客户端提供软件包、版本、兼容性、升级、依赖检查和停止支持状态等工具。响应包含验证时间和数据来源。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://vigia.coredls.cloud/mcpclaude mcp add --transport http cloud-coredls-vigia-vigia https://vigia.coredls.cloud/mcp{"mcpServers":{"cloud-coredls-vigia-vigia":{"type":"http","url":"https://vigia.coredls.cloud/mcp"}}}在 Cursor 中打开{"servers":{"cloud-coredls-vigia-vigia":{"type":"http","url":"https://vigia.coredls.cloud/mcp"}}}在 VS Code 中打开{"mcpServers":{"cloud-coredls-vigia-vigia":{"type":"http","url":"https://vigia.coredls.cloud/mcp"}}}{"mcpServers":{"cloud-coredls-vigia-vigia":{"serverUrl":"https://vigia.coredls.cloud/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
12| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 是 | 已发布的准确软件包名称(不区分大小写),例如 "next"、"@types/node"(允许 npm scope)、"requests"、"serde"、"laravel/framework"。不接受部分名称;不确定时请使用 find_package。 |
| ecosystem | enum | 是 | 要查询的注册表:"npm"(JavaScript/TypeScript)、"pypi"(Python)、"crates"(Rust、crates.io)或 "packagist"(PHP、Composer;名称格式为 "vendor/package")。npm | pypi | crates | packagist |
详细介绍
Vigia — 在 Agent 编写代码之前,了解升级会带来哪些问题
Vigia 是一项免费的开放数据服务(REST API + MCP 服务),为 AI 编码 Agent 和开发者提供经过验证、注明日期的 npm、PyPI 和 Rust(crates.io)软件包状态事实——这些正是大模型常因训练数据过时而出错的内容。
🌐 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/mcp
也可以将它安装为 Claude Code 插件,其中打包了 MCP 服务和一项技能,用于告诉 Agent 何时使用它:
/plugin marketplace add MatiasDelosSantos/vigia
/plugin install vigia@vigia
其他 Agent 可以直接使用这项技能:skills/vigia/SKILL.md(也可通过 https://vigia.coredls.cloud/skill.md 获取)。
为什么
模型会停留在训练数据的截止时间;生态系统每天发布数千个版本。Agent 会自信地针对已变更的 API 编写代码。示例——Next.js 14 → 15,从软件包的 TypeScript 类型中自动检测:
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 deprecations
它能回答哪些问题(其他服务无法一次性回答)
| 问题 | REST | MCP 工具 |
|---|---|---|
如果我将 X 从 A 升级到 B,会有哪些问题? 被移除的导出和导入路径、变更的签名和类成员、新增的 @deprecated、engines/peerDependencies 变更,以及期间的变更日志 | GET /v1/packages/npm/{name}/upgrade?from=14&to=15 | upgrade_impact |
| 此版本中是否存在此 API? 精确签名、导入路径、弃用消息、“你是不是想找” | GET /v1/packages/npm/{name}/symbols/{symbol}?version=15 | symbol_status |
| 哪个最新版本兼容 Node 18 / React 18 / Python 3.8? 使用每个版本声明的要求 | GET /v1/packages/{npm|pypi}/{name}/compatible?with=node@18,react@18 | find_compatible_version |
| 我的确切版本是否存在漏洞?最近的修复版本是什么?(OSV) | GET /v1/packages/{eco}/{name}/versions/{version} | version_status |
| 最新版本、弃用状态、运行时要求、对等依赖、许可证 | GET /v1/packages/{eco}/{name} | package_status |
检查整个 package.json / requirements.txt | POST /v1/check | check_dependencies |
| 此 Python / Node / PHP / Java / Django / Ubuntu……版本是否仍受支持?何时停止维护?(约 480 种产品) | GET /v1/eol/{product}/{version} | eol_status |
| 自我的训练数据截止时间以来有哪些变化? 某个日期之后发布的新主版本、运行时版本和 AI 模型 | GET /v1/since?cutoff=2025-06 | changes_since_cutoff |
| AI 模型价格、上下文窗口、退役日期 | GET /v1/models | model_status |
每条响应都包含验证时间和数据来源。完整规范:/openapi.json · 提供 18 种语言的文档:/docs。
面向 Agent 的项目上下文(无需 MCP)
Agent 会自行读取 AGENTS.md / CLAUDE.md。生成一个包含你的依赖相关事实的代码块(已停止维护的运行时、漏洞、已弃用的软件包,以及你落后几个大版本会导致的问题):
- Web:https://vigia.coredls.cloud/context(粘贴你的
package.json或requirements.txt) - 脚本(零依赖,Node 18+;请先阅读):
curl -fsSL https://vigia.coredls.cloud/context.mjs -o vigia-context.mjs && node vigia-context.mjs - API:
POST /v1/context
Claude Code:自动运行。 该插件包含一些钩子,可在会话开始时向 Agent 提供这些事实,并在每次编辑 package.json 或 requirements.txt 后重新检查(因此无需调用任何工具,它就能了解 Node 18 已停止维护,或 lodash 存在已知漏洞)。清单会发送给 Vigia,但不会被存储;设置 VIGIA_DISABLE=1 可关闭这些钩子。若不使用该插件,请将 examples/claude-code-settings.json 复制到 .claude/settings.json,并将其指向 hooks/vigia-hook.mjs。
按月查看训练截止时间之后的变更:https://vigia.coredls.cloud/since
GitHub Action
在每个拉取请求中标记过时、已弃用和存在漏洞的依赖:
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 PR
徽章
[](https://vigia.coredls.cloud/npm/react)
[](https://vigia.coredls.cloud/npm/react)
工作原理
- 以注册表为事实来源。 使用 npm、PyPI 和 crates.io 的元数据,包括 ETag、发布日期和各版本的要求(engines、Requires-Python、rust-version);使用 deps.dev 获取 npm 历史记录;使用 OSV 获取漏洞信息;使用 OpenRouter 获取 AI 模型信息。
- API 表面分析绝不执行软件包代码。 下载压缩包,仅提取
.d.ts、package.json和变更日志;TypeScript 编译器 API 在具有内存和时间限制的隔离工作线程中读取导出的声明。对于未捆绑类型的包,则使用@types/*。 - 事实绝不会被覆盖。 每次变更都会关闭之前的值(双时态历史),因此
?as_of=可以回答“Vigia 在日期 X 给出了什么信息”。 - 自动更新。 工作线程会跟踪约 34,000 个热门软件包(npm 每 15 分钟至 2 小时更新一次;PyPI 使用其更新源;跟踪 crates.io 上排名前 3,000 的 Rust crate),在首次请求时解析未知软件包,并预先计算最热门的 300 个 npm 软件包的升级报告。
技术栈:TypeScript、Node 22、Hono、PostgreSQL 17、MCP SDK、Docker。
自行运行
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 tests
数据许可与隐私
Vigia 编译的数据采用 CC-BY-4.0 许可(署名“Vigia”);上游数据沿用各来源的条款。发送至 /v1/check 的清单不会被存储;不使用 Cookie 或跟踪器。请参阅条款和隐私政策。
许可证
代码:AGPL-3.0。运维说明(西班牙语):docs/OPERACION.es.md。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。