Skip to main content
Glama
ethanolivertroy

FedRAMP Docs MCP Server

get_frmr_document

Retrieve FedRAMP FRMR documents to access KSI categories, MAS requirements, and compliance content with metadata and summaries for security analysis.

Instructions

Retrieve a FRMR document with metadata, raw JSON, and summary. Use this to get KSI categories (like KSI-IAM, KSI-CNA), MAS requirements, or other FRMR content. First use list_frmr_documents to find available documents, then use this tool with the path. For KSI, use path 'FRMR.KSI.key-security-indicators.json'.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNo
pathYes

Implementation Reference

  • The execute handler for the 'get_frmr_document' tool. It calls getFrmrDocument with the input type and path, then returns meta, raw_json, and summary.
    execute: async (input) => {
      const { meta, rawJson, summary } = getFrmrDocument(
        input.type as never,
        input.path,
      );
      return {
        meta,
        raw_json: rawJson,
        summary,
      };
    },
  • Zod input schema for the tool: optional 'type' enum and required 'path' string.
    const schema = z.object({
      type: z
        .enum(["KSI", "MAS", "VDR", "SCN", "FRD", "ADS"])
        .optional(),
      path: z.string(),
    });
  • The registerTools function registers getFrmrDocumentTool among other tools to the MCP server.
    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 function getFrmrDocument that resolves the document by path, performs validation, constructs metadata and summary, and returns the structured response used by the tool handler.
    export function getFrmrDocument(
      type: FrmrDocumentType | undefined,
      path: string,
    ): { meta: FrmrDocumentMeta; rawJson: string; summary: FrmrSummary } {
      const doc = resolveFrmrDocument(path);
      if (!doc) {
        throw createError({
          code: "NOT_FOUND",
          message: `FRMR document not found at path ${path}`,
        });
      }
      if (type && doc.type !== type) {
        throw createError({
          code: "BAD_REQUEST",
          message: `Requested type ${type} does not match document type ${doc.type}`,
        });
      }
      const { rawText, topLevelKeys } = doc;
      const meta: FrmrDocumentMeta = {
        type: doc.type,
        title: doc.title,
        version: doc.version,
        published: doc.published,
        path: doc.path,
        idHint: doc.idHint,
        itemCount: doc.itemCount,
      };
      const summary: FrmrSummary = {
        countItems: doc.itemCount,
        topLevelKeys,
      };
      return { meta, rawJson: rawText, summary };
    }

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