UNPKG

@vantasdk/vanta-mcp-server

Version:

Model Context Protocol server for Vanta's security compliance platform

41 lines (40 loc) 1.92 kB
// 1. Imports import { createConsolidatedSchema, createIdWithPaginationSchema, makeConsolidatedRequest, buildUrl, makeAuthenticatedRequest, handleApiResponse, FRAMEWORK_ID_DESCRIPTION, } from "./common/imports.js"; // 2. Input Schemas const FrameworksInput = createConsolidatedSchema({ paramName: "frameworkId", description: FRAMEWORK_ID_DESCRIPTION, resourceName: "framework", }); const ListFrameworkControlsInput = createIdWithPaginationSchema({ paramName: "frameworkId", description: FRAMEWORK_ID_DESCRIPTION, }); // 3. Tool Definitions export const FrameworksTool = { name: "frameworks", description: "Access compliance frameworks in your Vanta account. Provide frameworkId to get a specific framework, or omit to list all frameworks. Returns frameworks (SOC 2, ISO 27001, HIPAA, GDPR, etc.) with completion status and progress metrics.", parameters: FrameworksInput, }; export const ListFrameworkControlsTool = { name: "list_framework_controls", description: "List framework's controls. Get detailed security control requirements for a specific compliance framework. Returns the specific controls, their descriptions, implementation guidance, and current compliance status.", parameters: ListFrameworkControlsInput, }; // 4. Implementation Functions export async function frameworks(args) { return makeConsolidatedRequest("/v1/frameworks", args, "frameworkId"); } export async function listFrameworkControls(args) { const { frameworkId, ...params } = args; const url = buildUrl(`/v1/frameworks/${String(frameworkId)}/controls`, params); const response = await makeAuthenticatedRequest(url); return handleApiResponse(response); } // Registry export for automated tool registration export default { tools: [ { tool: FrameworksTool, handler: frameworks }, { tool: ListFrameworkControlsTool, handler: listFrameworkControls }, ], };