@vantasdk/vanta-mcp-server
Version:
Model Context Protocol server for Vanta's security compliance platform
41 lines (40 loc) • 1.78 kB
JavaScript
// 1. Imports
import { createConsolidatedSchema, createIdWithPaginationSchema, makeConsolidatedRequest, buildUrl, makeAuthenticatedRequest, handleApiResponse, } from "./common/imports.js";
// 2. Input Schemas
const GroupsInput = createConsolidatedSchema({
paramName: "groupId",
description: "Group ID to retrieve, e.g. 'group-123' or specific group identifier",
resourceName: "group",
});
const ListGroupPeopleInput = createIdWithPaginationSchema({
paramName: "groupId",
description: "Group ID to get people for, e.g. 'group-123' or specific group identifier",
});
// 3. Tool Definitions
export const GroupsTool = {
name: "groups",
description: "Access groups in your Vanta account. Provide groupId to get a specific group, or omit to list all groups. Returns group IDs, names, descriptions, and metadata for organizational structure and access management.",
parameters: GroupsInput,
};
export const ListGroupPeopleTool = {
name: "list_group_people",
description: "List group's people. Get all people who are members of a specific group. Use this to see group membership and organizational structure.",
parameters: ListGroupPeopleInput,
};
// 4. Implementation Functions
export async function groups(args) {
return makeConsolidatedRequest("/v1/groups", args, "groupId");
}
export async function listGroupPeople(args) {
const { groupId, ...params } = args;
const url = buildUrl(`/v1/groups/${String(groupId)}/people`, params);
const response = await makeAuthenticatedRequest(url);
return handleApiResponse(response);
}
// Registry export for automated tool registration
export default {
tools: [
{ tool: GroupsTool, handler: groups },
{ tool: ListGroupPeopleTool, handler: listGroupPeople },
],
};