Skip to main content
Glama
ethanolivertroy

FedRAMP Docs MCP Server

get_theme_summary

Retrieve detailed security theme guidance including indicators, impact analysis, NIST controls, and documentation links for FedRAMP compliance.

Instructions

Get comprehensive guidance for a KSI theme. Returns all indicators in the theme, impact breakdown, related NIST controls, and links to relevant documentation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
themeYesKSI theme code

Implementation Reference

  • The core handler for the 'get_theme_summary' tool. It defines the tool including name, description, schema, and the execute function which filters KSI items by theme, calculates impact breakdown, gathers related controls, and finds related documentation via search.
    export const getThemeSummaryTool: ToolDefinition<typeof schema, ThemeSummary> =
      {
        name: "get_theme_summary",
        description:
          "Get comprehensive guidance for a KSI theme. Returns all indicators in the theme, impact breakdown, related NIST controls, and links to relevant documentation.",
        schema,
        execute: async (input) => {
          const all = getKsiItems();
          const indicators = all.filter(
            (item) => item.category?.toUpperCase() === input.theme,
          );
    
          // Count impact levels
          const impactBreakdown = { low: 0, moderate: 0, high: 0 };
          for (const item of indicators) {
            if (item.impact?.low) impactBreakdown.low++;
            if (item.impact?.moderate) impactBreakdown.moderate++;
            if (item.impact?.high) impactBreakdown.high++;
          }
    
          // Collect related controls
          const controlSet = new Set<string>();
          for (const item of indicators) {
            if (item.controlMapping) {
              for (const control of item.controlMapping) {
                controlSet.add(control);
              }
            }
          }
    
          // Search markdown for related guidance
          const themeName = THEME_NAMES[input.theme] ?? input.theme;
          const searchTerms = [themeName, input.theme];
          const relatedDocs: Array<{ path: string; snippet: string }> = [];
    
          for (const term of searchTerms) {
            try {
              const results = searchMarkdown(term, 5, 0);
              for (const hit of results.hits) {
                if (!relatedDocs.some((d) => d.path === hit.path)) {
                  relatedDocs.push({ path: hit.path, snippet: hit.snippet });
                }
              }
            } catch {
              // Search might fail for some terms, continue
            }
          }
    
          return {
            theme: input.theme,
            themeName,
            indicatorCount: indicators.length,
            indicators,
            impactBreakdown,
            relatedControls: [...controlSet].sort(),
            relatedDocs: relatedDocs.slice(0, 5),
          };
        },
      };
  • Input schema using Zod, validating the 'theme' parameter as one of the predefined KSI theme codes.
    const schema = z.object({
      theme: z
        .enum(["AFR", "CED", "CMT", "CNA", "IAM", "INR", "MLA", "PIY", "RPL", "SVC", "TPR"])
        .describe("KSI theme code"),
    });
  • Registration of all tools including getThemeSummaryTool in the registerToolDefs call within the registerTools function.
    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,
      ]);
    }
  • Helper constant providing human-readable names for KSI theme codes, used in the handler for descriptions and search terms.
    const THEME_NAMES: Record<string, string> = {
      AFR: "Authorization & FedRAMP Requirements",
      CED: "Customer Environment & Data",
      CMT: "Change Management & Testing",
      CNA: "Cloud Native Architecture",
      IAM: "Identity & Access Management",
      INR: "Incident Response",
      MLA: "Monitoring, Logging & Alerting",
      PIY: "Privacy & PII",
      RPL: "Resiliency & Planning",
      SVC: "Service Configuration",
      TPR: "Third Party Risk",
    };

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