原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Osv Advisory MCP Server

作者:cyanheads版本 0.4.1i★ 2i电脑或云端
注册名称io.github.cyanheads/osv-advisory-mcp-server

安装

概览

作者提供的说明(英文原文)

Query OSV.dev for package vulnerabilities and batch-audit dependency lists via MCP.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

你需要

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

适用于网页版、桌面版和手机版 Claude:

  1. 打开 Settings → Connectors
  2. 点击 Add custom connector
  3. 粘贴下面的地址,然后点击 Add
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Add2https://…3Connect4
https://osv-advisory.caseyjhand.com/mcp

或者在你的电脑上运行

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "osv-advisory": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/osv-advisory-mcp-server"
      ],
      "env": {
        "OSV_REQUEST_TIMEOUT_MS": "your-value",
        "OSV_BATCH_CONCURRENCY": "your-value",
        "OSV_QUERY_MAX_PAGES": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add --transport http osv-advisory https://osv-advisory.caseyjhand.com/mcp

或者在你的电脑上运行

claude mcp add osv-advisory --env OSV_REQUEST_TIMEOUT_MS=your-value --env OSV_BATCH_CONCURRENCY=your-value --env OSV_QUERY_MAX_PAGES=your-value --env MCP_LOG_LEVEL=your-value -- npx -y @cyanheads/osv-advisory-mcp-server

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "osv-advisory": {
      "url": "https://osv-advisory.caseyjhand.com/mcp"
    }
  }
}

或者在你的电脑上运行

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "osv-advisory": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/osv-advisory-mcp-server"
      ],
      "env": {
        "OSV_REQUEST_TIMEOUT_MS": "your-value",
        "OSV_BATCH_CONCURRENCY": "your-value",
        "OSV_QUERY_MAX_PAGES": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "osv-advisory": {
      "type": "http",
      "url": "https://osv-advisory.caseyjhand.com/mcp"
    }
  }
}

或者在你的电脑上运行

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "osv-advisory": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/osv-advisory-mcp-server"
      ],
      "env": {
        "OSV_REQUEST_TIMEOUT_MS": "your-value",
        "OSV_BATCH_CONCURRENCY": "your-value",
        "OSV_QUERY_MAX_PAGES": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

ChatGPT 只能连接互联网上的服务器:

  1. 打开网页版 ChatGPT → Settings → Connectors (Apps)
  2. 点击 Create 或 Add(部分套餐需要先在 Advanced 中开启 Developer mode)
  3. 粘贴下面的地址,起个名字,然后保存
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Create2https://…3Connect4
https://osv-advisory.caseyjhand.com/mcp

菜单名称可能因套餐和版本不同而略有差异。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • OSV_REQUEST_TIMEOUT_MS env
    HTTP request timeout in milliseconds for OSV.dev API calls.
  • OSV_BATCH_CONCURRENCY env
    Maximum number of concurrent OSV.dev requests issued by osv_query_batch.
  • OSV_QUERY_MAX_PAGES env
    Maximum number of OSV.dev result pages followed per package or commit before marking a result truncated.
  • MCP_LOG_LEVEL env
    Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

哪些应用可以使用它

依据这个服务器的连接方式和各应用自己的文档,检查于 2026年11月10日。

通过互联网连接,适用于

ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast

在你的电脑上运行,适用于

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

全部应用及其优缺点 →

它能做什么

工具名称和描述与服务器在 2026年11月10日 报告的完全一致。这些内容由作者撰写,不是我们写的;我们以纯文本形式显示。

  • osv_list_ecosystems

    Return the supported ecosystem identifier strings for osv_query_package and osv_query_batch: every ecosystem the OSV schema names that OSV.dev accepts at query time, plus GIT, as verified on 2026-10-31. Ecosystem strings are case-sensitive exact matches — passing "pypi" instead o

  • osv_query_package

    Query known vulnerabilities for a single package version using {name, ecosystem, version} or {purl, version?}; supply exactly one embedded or separate version. Returns all matching OSV advisories with severity (CVSS vectors), CVE aliases, affected version ranges, and the fixed ve

  • osv_get_vulnerability

    Fetch the full advisory record for an OSV vulnerability ID. Returns the complete record: summary, full details text, CVE aliases, all affected packages and version ranges, fix versions, CVSS severity vectors, CWE weakness IDs, and references. Use when osv_query_package or osv_que

  • osv_query_batch

    Query vulnerabilities for multiple packages in one call — the primary tool for dependency audits, SBOM scanning, and lockfile triage. Pass up to 1000 mixed {name, ecosystem, version} tuples and {purl, version?} identifiers, with exactly one embedded or separate version per PURL.

  • osv_query_commit

    Query known vulnerabilities for one full Git commit hash (40 hexadecimal SHA-1 or 64 hexadecimal SHA-256 characters, case-insensitive). Abbreviated hashes are rejected. Returns advisory summaries, record-wide severity and GIT ranges with repositories and ordered fix events; use o

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月11日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 cyanheads 验证,该账户拥有此仓库

  • ✓ 通过

    仍在维护

    代码最后更新于10天前

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • ✓ 通过

    端点有响应

    在 470 毫秒内响应(HTTP 200)

  • – 不适用

    使用 OAuth 登录

    无需登录

  • ✓ 通过

    工具描述中没有隐藏指令

    已读取 5 个工具描述,未发现针对 AI 的隐藏指令

用户评价

还没有评价

与“网络安全”中的其他服务器比较i

  • 星标数多于此分类中其他 1025 个服务器的 79%
  • 发布到注册中心的时间比此分类中其他 1025 个服务器的 79% 更新
  • 基础检查结果等于或优于此分类中其他 1025 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Osv Advisory MCP Server 安全吗?

它在 4 项适用的基础检查中通过了 4 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

两种方式都可以:安装在你的电脑上,或者连接云端版本。

它还在维护吗?

GitHub 仓库最后更新于10天前,最新版本(0.4.1)于10天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。

有什么可以替代它?

同一分类中有:Robin: AI-Powered Dark Web OSINT, HOL Guard, UniFi Network MCP

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Robin: AI-Powered Dark Web OSINT

Dark web OSINT over Tor: search onion engines, scrape pages, report with your own model.

作者:apurvsinghgautam正在增长★ 794339天前更新

在你的电脑上运行

HOL Guard

Local-first AI agent security evidence and approval workflows through HOL Guard's stdio MCP server.

作者:hashgraph-online广泛使用↓ 7083/周★ 10816天前更新

在你的电脑上运行

UniFi Network MCP

Manage UniFi Network devices, clients, firewall, VLANs, VPNs, and more via MCP.

作者:sirkirby广泛使用↓ 1.1万/周★ 10298个月前更新

在你的电脑上运行

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

@cyanheads/osv-advisory-mcp-server Query OSV.dev for package vulnerabilities, batch-audit dependency lists, and fetch full advisory records via MCP. STDIO or Streamable HTTP. 5 Tools · 1 Skill

Public Hosted Server: https://osv-advisory.caseyjhand.com/mcp


Overview

Vulnerability data from OSV.dev, the open-source vulnerability database. Query a package version or Git commit, batch-audit a dependency list or SBOM, and fetch complete advisory records with CVSS severity, CVE aliases, and affected version ranges.

Tools
ToolDescription
osv_query_packageQuery a package version by name/ecosystem/version or Package URL (PURL)
osv_query_batchAudit up to 1000 package versions in one call — a full dependency list or SBOM
osv_query_commitQuery known vulnerabilities for a full Git commit hash
osv_get_vulnerabilityFetch the full advisory record for a single OSV vulnerability ID
osv_list_ecosystemsReturn the list of supported ecosystem identifier strings

Capability reference

osv_query_package tool
  • Provide name, ecosystem (case-sensitive exact match), and version, or a purl such as pkg:pypi/jinja2@3.1.4. A PURL needs exactly one version: embedded in the URL or supplied separately. Versions are exact, never ranges
  • Unsupported ecosystem-specific constraints fail as invalid_version; npm/crates.io exact pins with = or == normalize to the installed version
  • Each advisory carries CVE aliases, severityLabel with its severitySource, the queried package's fixedVersions, affectedRanges, and cweIds
  • truncated: true means OSV had more pages than OSV_QUERY_MAX_PAGES follows, so an empty vulns list is not a clean result; an unrecognized ecosystem fails as invalid_ecosystem

osv_query_batch tool
  • 1–1000 {name, ecosystem, version} tuples or {purl, version?} entries per call; mix either form, and results[i] matches packages[i]
  • Each row carries vulnerable, vulnCount, vulns, truncated, and error; a failure lands in the affected rows' error instead of failing the call
  • summary totals the scan (vulnerableCount, cleanCount, truncatedCount, errorCount, totalVulns, worstSeverity), and truncated rows never count as clean. The whole scan has a 50-second deadline
  • vulnerableRows, errorRows, and truncatedRows in summary retain original zero-based indices even when the preview omits those rows. Lists can overlap; retrieve a row with /results/

osv_query_commit tool
  • One full commit: 40 hexadecimal characters for SHA-1 or 64 for SHA-256; either letter case is accepted, abbreviations are rejected
  • Advisories retain record-wide severity, aliases, and GIT ranges with repository URLs and ordered events. No package-specific fixedVersions are inferred
  • truncated: true means more OSV pages remain; an empty truncated result is not confirmed clean

osv_get_vulnerability tool
  • One exact advisory ID from any OSV source (GHSA-, PYSEC-, RUSTSEC-, GO-, DSA-, USN-, CVE-, …), matched case-sensitively
  • Full record: details, aliases, every affected package with its ranges and fixes, severityLabel, cweIds, and references
  • An unknown ID fails as vulnerability_not_found; withdrawn is set only on retracted advisories

osv_list_ecosystems tool
  • No input; returns the ecosystems strings the query tools accept, plus a note with the date the list was last checked against OSV.dev
  • Strings are case-sensitive exact matches: PyPI works, pypi fails

Features

Built on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.

OSV-specific:

  • No API key required — OSV.dev is public and keyless, with no published rate limit
  • osv_query_batch finds matching advisory IDs through OSV's /v1/querybatch, then fetches each unique advisory once, so batch rows carry the full records (aliases included) the batch endpoint omits; requests are capped by OSV_BATCH_CONCURRENCY
  • osv_list_ecosystems is checked against the live OSV schema and API with bun run check:ecosystems

Agent-friendly output:

  • Truncation is never read as clean — truncated flags incomplete OSV pagination, and truncated batch rows are left out of cleanCount
  • aliases (CVE IDs) on every advisory chain to nist-nvd-mcp-server for CVSS base scores and CISA KEV status
  • Responses are capped at 24,000 bytes. Start retrieval by repeating the original input with page: overflow.page. Continue the same path with offset: page.nextOffset and revision: page.revision until nextOffset is null. Fetch each entries[].deferred.path separately at offset zero without a revision; never copy the whole output page object into the input
  • Advisory text in content[] escapes HTML and unsafe-link constructs while preserving HTTP(S) links; caller coordinates render literally. structuredContent keeps every OSV string verbatim

Getting started

Use the public hosted instance with Claude Code:

claude mcp add --transport http osv-advisory-mcp-server https://osv-advisory.caseyjhand.com/mcp

Or run locally through npm:

claude mcp add osv-advisory-mcp-server -- npx -y @cyanheads/osv-advisory-mcp-server

For other MCP clients, add this to the client configuration:

{

"mcpServers": { "osv-advisory-mcp-server": { "command": "npx", "args": ["-y", "@cyanheads/osv-advisory-mcp-server"] } } }

No API key is required. For Docker or a source build, see Running the server.

Configuration

All configuration is validated at startup, and every variable is optional.

VariableDescriptionDefault
OSV_REQUEST_TIMEOUT_MSHTTP request timeout for OSV.dev API calls, in milliseconds.10000
OSV_BATCH_CONCURRENCYMaximum concurrent OSV.dev requests issued by osv_query_batch.10
OSV_QUERY_MAX_PAGESMaximum OSV.dev result pages followed per package or commit before a result is marked truncated.10
MCP_TRANSPORT_TYPETransport: stdio or http.stdio
MCP_HTTP_PORTPort for HTTP server.3010
MCP_HTTP_ENDPOINT_PATHHTTP endpoint path./mcp
MCP_PUBLIC_URLPublic origin override for TLS-terminating reverse-proxy deployments.none
MCP_SESSION_MODEHTTP session mode: stateless, stateful, or auto.stateless
MCP_AUTH_MODEAuth mode: none, jwt, or oauth.none
MCP_LOG_LEVELLog level (RFC 5424).info
LOGS_DIRDirectory for log files (Node.js only). /logs
LOG_TOOL_FAILURE_PAYLOADSLog each failed tool call's arguments and result, redacted by key name and capped at LOG_TOOL_FAILURE_PAYLOAD_MAX_BYTES (default 16384). A secret inside a free-form value is not redacted.false
STORAGE_PROVIDER_TYPEStorage backend.in-memory
OTEL_ENABLEDEnable OpenTelemetry instrumentation (spans, metrics, completion logs).false

See .env.example for the full list of optional overrides.

Running the server

Local development

Requires Bun v1.4.0 or higher (or Node.js v24+).

git clone https://github.com/cyanheads/osv-advisory-mcp-server.git

cd osv-advisory-mcp-server bun install cp .env.example .env

  • Build and run:
  # One-time build

bun run rebuild

Run the built server

bun run start:stdio

or

bun run start:http

  • Run checks and tests:
  bun run devcheck   # Lint, format, typecheck, security

bun run test # Vitest test suite bun run lint:mcp # Validate MCP definitions against spec bun run check:ecosystems # Compare osv_list_ecosystems with the live OSV schema and API

Docker
docker run --rm -p 3010:3010 ghcr.io/cyanheads/osv-advisory-mcp-server:latest

The image defaults to HTTP transport, stateless session mode, and logs to /var/log/osv-advisory-mcp-server. For stdio, use docker run -i --rm -e MCP_TRANSPORT_TYPE=stdio ghcr.io/cyanheads/osv-advisory-mcp-server:latest. Build locally with docker build -t osv-advisory-mcp-server .; OpenTelemetry peers are installed by default — use --build-arg OTEL_ENABLED=false to omit them.

Project structure

DirectoryPurpose
src/index.tscreateApp() entry point — registers tools and inits services.
src/configServer-specific environment variable parsing and validation with Zod.
src/mcp-server/toolsTool definitions (*.tool.ts) — osv_query_package, osv_query_batch, osv_query_commit, osv_get_vulnerability, osv_list_ecosystems.
src/services/osv-apiOSV.dev REST API service — fetch, retry, response normalization.
tests/Unit and integration tests mirroring src/.
skills/Published dependency-audit and advisory-retrieval guide, also served over MCP.

Development guide

See CLAUDE.md/AGENTS.md for development guidelines and architectural rules. The short version:

  • Handlers throw, framework catches — no try/catch in tool logic
  • Use ctx.log for request-scoped logging, ctx.enrich for response context, and ctx.signal for cancellable OSV requests
  • Register new tools via the barrel in src/mcp-server/tools/definitions/index.ts
  • Wrap external API calls: validate raw → normalize to doma

只显示了开头部分;其余内容请在仓库中阅读