get_significant_change_guidance
Aggregate FedRAMP guidance and FRMR references for Significant Change requirements to support compliance analysis and documentation.
Instructions
Aggregate markdown sections and FRMR references related to Significant Change.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Implementation Reference
- MCP tool definition including the handler (execute function) that invokes the core getSignificantChangeGuidance logic with input limit.export const significantChangeTool: ToolDefinition< typeof schema, ReturnType<typeof getSignificantChangeGuidance> > = { name: "get_significant_change_guidance", description: "Aggregate markdown sections and FRMR references related to Significant Change.", schema, execute: async (input) => { return getSignificantChangeGuidance(input.limit ?? 50); }, };
- Zod input schema defining the limit parameter for the tool.const schema = z.object({ limit: z.number().int().min(1).max(100).default(50), });
- src/tools/register.ts:24-53 (registration)Registers the significantChangeTool (imported from ./get_significant_change_guidance.js) 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, ]); }
- src/search.ts:215-240 (helper)Core implementation function that finds and aggregates significant change sources from markdown and FRMR documents, interleaving results up to the limit.export function getSignificantChangeGuidance( limit: number, ): { sources: SignificantChangeSource[] } { const markdown = findMarkdownSignificantSections(limit); const frmr = findFrmrSignificantReferences(limit); const sources: SignificantChangeSource[] = []; let markdownIndex = 0; let frmrIndex = 0; while ( sources.length < limit && (frmrIndex < frmr.length || markdownIndex < markdown.length) ) { if (frmrIndex < frmr.length) { sources.push(frmr[frmrIndex]); frmrIndex += 1; } if (sources.length >= limit) { break; } if (markdownIndex < markdown.length) { sources.push(markdown[markdownIndex]); markdownIndex += 1; } } return { sources }; }