Skip to main content
Glama
ethanolivertroy

FedRAMP Docs MCP Server

get_control_requirements

Retrieve FedRAMP compliance requirements mapped to specific NIST security controls, including KSI items and FRMR references for regulatory analysis.

Instructions

Get all FedRAMP requirements mapped to a specific NIST control. Returns KSI items and FRMR requirements that reference the control.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
controlYesNIST control ID (e.g., AC-2, SC-13, IA-5)

Implementation Reference

  • The execute function implementing the tool logic: fetches control mappings and KSI items, enriches with KSI data, deduplicates by sourceId, and returns formatted requirements.
    execute: async (input) => {
      const mappings = listControlMappings({ control: input.control });
      const ksiItems = getKsiItems();
    
      // Create a lookup for KSI items
      const ksiLookup = new Map(ksiItems.map((item) => [item.id, item]));
    
      const requirements: ControlRequirement[] = mappings.map((mapping) => {
        const ksiItem = ksiLookup.get(mapping.sourceId);
        return {
          sourceId: mapping.sourceId,
          source: mapping.source,
          control: mapping.control,
          enhancements: mapping.controlEnhancements,
          path: mapping.path,
          title: ksiItem?.title,
          description: ksiItem?.description,
          theme: ksiItem?.category,
        };
      });
    
      // Deduplicate by sourceId
      const seen = new Set<string>();
      const unique = requirements.filter((req) => {
        if (seen.has(req.sourceId)) return false;
        seen.add(req.sourceId);
        return true;
      });
    
      return {
        control: input.control.toUpperCase(),
        total: unique.length,
        requirements: unique,
      };
    },
  • Zod input schema defining the 'control' parameter for the tool.
    const schema = z.object({
      control: z
        .string()
        .describe("NIST control ID (e.g., AC-2, SC-13, IA-5)"),
    });
  • The registerTools function registers the getControlRequirementsTool (imported at line 6) with the MCP server via registerToolDefs.
    export function registerTools(server: McpServer): void {
      registerToolDefs(server, [
        // Document discovery
        listFrmrDocumentsTool,
        getFrmrDocumentTool,
        listVersionsTool,
        // KSI tools
        listKsiTool,
        getKsiTool,
        filterByImpactTool,
        getThemeSummaryTool,
        getEvidenceExamplesTool,
        // Control mapping tools
        listControlsTool,
        getControlRequirementsTool,
        analyzeControlCoverageTool,
        // Search & lookup tools
        searchMarkdownTool,
        readMarkdownTool,
        searchDefinitionsTool,
        getRequirementByIdTool,
        // Analysis tools
        diffFrmrTool,
        grepControlsTool,
        significantChangeTool,
        // System tools
        healthCheckTool,
        updateRepositoryTool,
      ]);
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ethanolivertroy/fedramp-docs-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server