开源漏洞查询服务

一个基于OSV API的远程模型上下文协议(MCP)HTTP服务器,提供按需的开源漏洞查询功能。

  • by kodustech
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 kodustech/mcp-osv

使用说明

OSV MCP服务器(Bun)

远程模型上下文协议(MCP)HTTP服务器,包装OSV v1 API,用于按需开源漏洞查找(示例提要:https://osv.dev/list?q=%40NESTJS%2FCORE&ecosystem=npm).导出为MCP工具,以便代理可以直接查询OSV。

特性

  • 位于的可流式HTTP MCP端点 /mcp.
  • 工具: osv_query (单一目标)和 osv_query_batch (多个)。
  • 可配置的基本URL(OSV_API_URL,默认为 https://api.osv.dev/v1).
  • 明确模式和验证以指导LLM(提交XOR版本、檩条规则、分页)。

快速开始

要求:面包。

bun install
PORT=3000 HOST=0.0.0.0 OSV_API_URL=https://api.osv.dev/v1 bun run index.ts

MCP端点: http://<host>:<port>/mcp.

环境变量:

  • PORT / HOST:HTTP绑定(默认 3000 / 0.0.0.0).
  • OSV_API_URL:覆盖OSV基本URL。

MCP客户端设置

  • 克劳德代码CLI: claude mcp add --transport http mcp-osv http://localhost:3000/mcp
  • VS代码: code --add-mcp "{\"name\":\"mcp-osv\",\"type\":\"http\",\"url\":\"http://localhost:3000/mcp\"}"
  • MCP检查员: npx @modelcontextprotocol/inspector ->连接到 http://localhost:3000/mcp 替换 localhost 如果远程,请使用您的主机/端口。

工具和参数

osv_query

{
  "commit": "sha OR",
  "version": "version string OR",
  "package": {
    "name": "required with ecosystem if not using purl",
    "ecosystem": "required with name if not using purl",
    "purl": "pkg:pypi/jinja2 // purl OR name+ecosystem; if version is present, omit @version here"
  },
  "pageToken": "optional pagination token from previous OSV response"
}

规则:

  • 使用 提交 异或 版本 (一个或另一个,永远不要两者兼而有之)。
  • 如果 version 存在, package 是必需的。
  • package 必须是 purl 或 (name + ecosystem).
  • 如果 version 存在和 package.purl 已使用,省略 @version 在檩条上。

osv_query_batch

{
  "queries": [
    {
      "commit": "sha OR",
      "version": "version string OR",
      "package": {
        "name": "pkg name",
        "ecosystem": "ecosystem",
        "purl": "pkg:ecosys/name"
      },
      "pageToken": "optional"
    }
  ]
}

规则:每个项目都遵循相同的规则 osv_query.

示例通话

  • PyPI版本: {"package":{"purl":"pkg:pypi/jinja2"},"version":"3.1.4"}
  • 名称+生态系统的npm: {"package":{"name":"@nestjs/core","ecosystem":"npm"},"version":"10.2.10"}
  • 提交查找: {"commit":"<sha>","package":{"ecosystem":"Go","name":"github.com/foo/bar"}}

调试

  • 服务器日志: OSV MCP server listening on http://<host>:<port>/mcp
  • 卷曲初始化: curl -H "content-type: application/json" -H "accept: application/json, text/event-stream" -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","clientInfo":{"name":"curl","version":"0.0.0"},"capabilities":{}}}' http://localhost:3000/mcp
  • 列表工具:与端点相同 {"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}

许可证

MIT许可证。看 许可证.