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
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| path | Yes |
Implementation Reference
- src/tools/get_frmr_document.ts:24-34 (handler)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, }; },
- src/tools/get_frmr_document.ts:6-11 (schema)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(), });
- src/tools/register.ts:24-52 (registration)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, ]);
- src/frmr.ts:22-54 (helper)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 }; }