vulners-mcp

MCP server for the Vulners.com API

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
86%
Naming quality
97%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,379Tokens (tool definitions)
~3.2 KBTypical response size
Moderate attention impact (1.86% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "vulners-mcp": {
      "command": "uvx",
      "args": [
        "vulners-mcp"
      ]
    }
  }
}

Runnable packages

pypivulners-mcp1.15.1stdio

Remote endpoints

https://mcp.vulners.com/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡bulletin_by_id(id, references, fields)

🚨 PRIMARY TOOL FOR KNOWN IDs 🚨 Fetch a bulletin by CVE or Vulners ID. Returns a COMPACT triage-card summary by default -- id, title, CVSS3, EPSS, CVE list, and a compact exploitation/AI signal -- NOT the full record. Pass fields=[...] to widen (e.g. add 'description', 'cvss', 'cvss2', 'affectedSoftware') or references=True for the linked-bulletin graph; requesting everything can be very large. Supports single ID or list of IDs. When list is provided, references are automatically set to False. NEVER use search_lucene for known IDs.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      ],
      "description": "Single CVE ID, Vulners ID, or bulletin ID to fetch, or a list of IDs. Supports CVE identifiers (CVE-2024-21762), vendor-specific IDs (RHSA-2024:1234), or Vulners internal IDs. When a list is provided, references are always False regardless of the `references` argument."
    },
    "references": {
      "default": false,
      "description": "Include the full reference graph (linked advisories, patches, related bulletins) for a SINGLE-ID lookup. Defaults to False: the compact default projection already covers the essentials (CVSS3, EPSS, exploitation signal, CVE list). Set True only when you need the reference graph and can accept a much larger response -- for heavily-referenced CVEs this can inflate the payload from a few KiB to 100+ MiB. Ignored (always False) when `id` is a list.",
      "type": "boolean"
    },
    "fields": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Override the default COMPACT field projection to widen the response. Pass ['*'] to request every field Vulners has for the bulletin (can be very large for popular CVEs). Useful individual fields to add: 'description' (full prose description, dropped from the default), 'cvss'/'cvss2' (legacy score variants; the default already includes 'cvss3'), 'affectedSoftware'/'cnaAffected' (affected systems), 'enchantments' (the FULL AI/exploitation blob, including the large cross-reference and social-mention indexes the default omits). If omitted, the lean default is used: id, title, type, href, published, modified, bulletinFamily, cvss3, epss, cvelist, enchantments.exploitation, enchantments.score, enchantments.vulnersScore, enchantments.tags, enchantments.short_description."
    }
  },
  "required": [
    "id"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "type": "array"
        }
      ]
    }
  },
  "required": [
    "result"
  ],
  "description": "Generic wrapper for non-object return types.",
  "x-fastmcp-wrap-result": true
}
🟢search_lucene(query, skip, size, fields)

🔍 DISCOVERY TOOL FOR UNKNOWN VULNERABILITIES 🔍 Full-text search in Vulners Knowledge Base using Lucene syntax. Use ONLY when you don't have specific IDs or version information. NEVER use for known CVE/bulletin IDs - use bulletin_by_id instead. NEVER use for specific software versions (e.g., 'Chrome 138.0.7204.184') - use audit_software instead. 🚨 CRITICAL: For vendor/product searches, ALWAYS use cnaAffected.vendor and cnaAffected.product fields - the affectedSoftware field does NOT exist.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Lucene query string for searching vulnerabilities. Supports Boolean operators (AND, OR, NOT), field-specific queries, range searches, and wildcard matching. NEVER use for specific software versions - use audit_software instead. For vendor/product searches use cnaAffected.vendor and cnaAffected.product (NOT affectedSoftware which does not exist).",
      "type": "string"
    },
    "skip": {
      "default": 0,
      "description": "Number of results to skip for pagination. Default is 0.",
      "type": "integer"
    },
    "size": {
      "default": 20,
      "description": "Maximum number of results to return. Default is 20, hard-capped at 100 regardless of caller.",
      "type": "integer"
    },
    "fields": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Override the default curated per-hit field projection. Pass ['*'] for every field per hit (large responses). If omitted, a curated default is used: id, title, type, cvss, cvss3, epss, published, href, cvelist."
    }
  },
  "required": [
    "query"
  ]
}
🟢audit_software(body)

🔍 VERSION-SPECIFIC SOFTWARE AUDIT 🔍 Audit specific software versions for known vulnerabilities. Use this when you have exact software version information (e.g., Chrome 138.0.7204.184). NEVER use search_lucene for version-specific software audits.

Input Schema

{
  "type": "object",
  "properties": {
    "body": {
      "properties": {
        "software": {
          "description": "Software to audit: structured CPE objects (preferred) or CPE 2.3 strings",
          "items": {
            "anyOf": [
              {
                "description": "CPE 2.3 well-formed name, one field per WFN attribute.",
                "properties": {
                  "part": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "\"a\" application, \"o\" operating system, \"h\" hardware"
                  },
                  "vendor": {
                    "description": "Vendor, e.g. openssl, google, microsoft",
                    "type": "string"
                  },
                  "product": {
                    "description": "Product, e.g. openssl, chrome, edge",
                    "type": "string"
                  },
                  "version": {
                    "description": "Exact version, e.g. 1.1.1u or 138.0.7204.184",
                    "type": "string"
                  },
                  "update": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Update; use \"*\" for any"
                  },
                  "edition": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Edition; use \"*\" for any"
                  },
                  "language": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Language; use \"*\" for any"
                  },
                  "sw_edition": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Software edition; use \"*\" for any"
                  },
                  "target_sw": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Target software, e.g. \"windows\" or \"macos\"; use \"*\" for any"
                  },
                  "target_hw": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Target hardware; use \"*\" for any"
                  },
                  "other": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Other; use \"*\" for any"
                  }
                },
                "required": [
                  "vendor",
                  "product",
                  "version"
                ],
                "type": "object"
              },
              {
                "type": "string"
              }
            ]
          },
          "type": "array"
        },
        "match": {
          "anyOf": [
            {
              "enum": [
                "partial",
                "full"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "\"partial\" (API default) or \"full\"; use \"full\" with target_sw for OS-specific audits"
        }
      },
      "required": [
        "software"
      ],
      "type": "object",
      "description": "Request body containing software list and audit parameters. Should include 'software' array with structured CPE objects (NOT CPE strings) and optional 'match' parameter ('partial' or 'full'). Each CPE object has the CPE 2.3 fields: part, vendor, product, version, update, edition, language, sw_edition, target_sw, target_hw, other; vendor, product and version are required. USE THIS for specific software versions like 'Chrome 138.0.7204.184'."
    }
  },
  "required": [
    "body"
  ]
}
🟢get_supported_os

List supported OS identifiers/versions for Linux package audit. Get available operating systems for vulnerability analysis.

Input Schema

{
  "type": "object",
  "properties": {}
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢audit_linux_packages(os, version, package, include_candidates)

Linux package audit (RPM/DEB) for a given distro + version. Analyze Linux package vulnerabilities against the Vulners database.

Input Schema

{
  "type": "object",
  "properties": {
    "os": {
      "description": "Linux distribution identifier (e.g., ubuntu, debian, centos, rhel, fedora). Use get_supported_os() to see available options.",
      "type": "string"
    },
    "version": {
      "description": "Distribution version/release (e.g., 22.04, 12, 8, 40). Must match a supported version for the specified OS.",
      "type": "string"
    },
    "package": {
      "description": "Installed packages, each formatted EXACTLY as the target OS's own package manager lists them -- i.e. one line of the output produced by the command get_supported_os() returns for this OS. DEB-based distros (ubuntu, debian, astra, linuxmint, ...): space-separated 'name version arch', e.g. 'openssl 3.0.2-0ubuntu1.6 amd64'. RPM-based distros (rhel, centos, oracle, almalinux, rocky, fedora, amazon, suse, ...): 'name-version-release.arch', e.g. 'openssl-1.0.2k-25.el7_9.x86_64'. The bare hyphenated 'name-version' short form is NOT accepted -- the API rejects it as 'Invalid package'.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "include_candidates": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Whether to include potential matches in results. If None, uses default behavior (typically false)."
    }
  },
  "required": [
    "os",
    "version",
    "package"
  ]
}
🟢query_autocomplete(body)

Autocomplete helper for search inputs (vendors, products, CVEs, etc.). Get search suggestions from the Vulners database.

Input Schema

{
  "type": "object",
  "properties": {
    "body": {
      "properties": {
        "query": {
          "description": "Partial search term, e.g. 'openssl', 'CVE-2024-', 'microsoft windows'",
          "type": "string"
        }
      },
      "required": [
        "query"
      ],
      "type": "object",
      "description": "Request body containing autocomplete parameters. Should include 'query' field with partial search term (e.g., 'openssl', 'CVE-2024-', 'microsoft windows')."
    }
  },
  "required": [
    "body"
  ]
}
🟢search_cpe(vendor, product, size)

Find CPE strings by vendor+product (latest schema). Search for Common Platform Enumeration identifiers in the Vulners database.

Input Schema

{
  "type": "object",
  "properties": {
    "vendor": {
      "description": "Vendor name to search for (e.g., 'microsoft', 'google', 'apache', 'oracle'). Case-insensitive.",
      "type": "string"
    },
    "product": {
      "description": "Product name to search for (e.g., 'windows_10', 'chrome', 'http_server', 'java'). Case-insensitive.",
      "type": "string"
    },
    "size": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum number of CPE results to return. If None, uses server default."
    }
  },
  "required": [
    "vendor",
    "product"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools
verifiedversion not recorded7 tools
verifiedversion not recorded7 tools