@vantasdk/vanta-mcp-server
Version:
Model Context Protocol server for Vanta's security compliance platform
41 lines (40 loc) • 1.92 kB
JavaScript
// 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 },
],
};