@vantasdk/vanta-mcp-server
Version:
Model Context Protocol server for Vanta's security compliance platform
44 lines (43 loc) • 2.42 kB
JavaScript
// 1. Imports
import { z, createConsolidatedSchema, makeConsolidatedRequest, } from "./common/imports.js";
// 2. Input Schemas
const VulnerabilitiesInput = createConsolidatedSchema({
paramName: "vulnerabilityId",
description: "Vulnerability ID to retrieve, e.g. 'vulnerability-123' or specific vulnerability identifier. If provided, returns the specific vulnerability, and no other parameters may be provided. If omitted, lists all vulnerabilities with optional filtering and pagination.",
resourceName: "vulnerability",
}, {
externalVulnerabilityId: z
.string()
.describe("Filter vulnerabilities by external vulnerability ID (e.g. CVE-2024-1234). Returns vulnerabilities that match the provided external vulnerability ID.")
.optional(),
severity: z
.string()
.describe("Filter vulnerabilities by severity. Possible values: LOW (Low severity), MEDIUM (Medium severity), HIGH (High severity), CRITICAL (Critical severity)")
.optional(),
integrationId: z
.string()
.describe("Filter vulnerabilities by integration ID. Returns vulnerabilities that are associated with the specified integration.")
.optional(),
slaDeadlineAfter: z
.string()
.describe("Filter vulnerabilities by SLA deadline after the specified date. Returns vulnerabilities that have an SLA deadline after the specified date. Date should be formatted as YYYY-MM-DD.")
.optional(),
slaDeadlineBefore: z
.string()
.describe("Filter vulnerabilities by SLA deadline before the specified date. Returns vulnerabilities that have an SLA deadline before the specified date. Date should be formatted as YYYY-MM-DD.")
.optional(),
});
// 3. Tool Definitions
export const VulnerabilitiesTool = {
name: "vulnerabilities",
description: "Access vulnerabilities in your Vanta account. Provide vulnerabilityId to get a specific vulnerability, or omit to list all vulnerabilities. Returns vulnerability details, severity levels, and status for security monitoring.",
parameters: VulnerabilitiesInput,
};
// 4. Implementation Functions
export async function vulnerabilities(args) {
return makeConsolidatedRequest("/v1/vulnerabilities", args, "vulnerabilityId");
}
// Registry export for automated tool registration
export default {
tools: [{ tool: VulnerabilitiesTool, handler: vulnerabilities }],
};