关于 fedramp-docs-mcp
fedramp-docs-mcp 是用于查询 FedRAMP FRMR 数据集和文档的 MCP 服务,可支持合规分析,但已停止积极开发。
主要功能
- 01查看 FRMR 文档和版本
- 02搜索 KSI 指标与定义
- 03将要求映射到控制项
- 04比较 FRMR 数据集版本
- 05搜索和读取 Markdown 指南
适用场景
- 01查找特定 KSI 的要求
- 02检查映射到某控制项的 FedRAMP 要求
- 03比较不同 FRMR 版本的变更
MCP 相关
向 MCP 客户端提供工具,用于发现和分析 FRMR JSON 数据集,以及搜索相关 Markdown 文档。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y fedramp-docs-mcpFEDRAMP_DOCS_PATHPath to an existing FedRAMP/docs checkout (default: ~/.cache/fedramp-docs)FEDRAMP_DOCS_AUTO_UPDATEAutomatically check for and fetch repository updates (default: true)FEDRAMP_DOCS_UPDATE_CHECK_HOURSHours between automatic update checks (default: 24)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
FedRAMP Docs MCP Server
⚠️ 此项目即将停止维护
此 MCP 服务不再积极开发。FedRAMP 搜索和 FRMR 解析功能正整合到 GRC Clanker 和 myctrl.tools 中,作为实际 GRC 工作流的一部分运行,而不是独立的子进程。
npm 软件包和此代码库仍会保留,供现有用户使用,但这里不会再推出新功能。有关原因和事后总结,请参阅项目说明。
— Ethan(2026-04-15)
免责声明: 这是一个非官方的社区项目,与 FedRAMP 或美国联邦政府无关联,也未获其认可或支持。作者并非 FedRAMP 官方成员。FedRAMP 名称及任何相关标志均为各自所有者的财产。
自定义 Model Context Protocol(MCP)服务,可使用具备 FRMR 感知能力的工具查询 FedRAMP/docs 代码库。此服务会扫描 FRMR JSON 数据集和相关的 Markdown 指南,提供用于分析的结构化工具,并可选择为你克隆和缓存上游代码库。
演示
观看 FedRAMP Docs MCP Server 与 Claude Desktop 搭配使用的演示:
https://github.com/user-attachments/assets/653c3956-0bfb-46c4-9e72-8a6d75e3a80d
文档
| 资源 | 说明 |
|---|---|
| 快速入门指南 | 不到 5 分钟即可启动 |
| 完整文档 | 完整指南和参考资料 |
| MCP 客户端设置 | 配置 Claude Desktop、Cursor、VS Code |
| 工具参考 | 全部 21 个 MCP 工具及其参数 |
| 故障排除 | 常见问题及解决方案 |
其他资源:
前置条件
- Node.js 18 或更高版本
- npm 8 或更高版本
功能
- 自动检测全部 12 种 FRMR JSON 文档类型并构建类型化元数据。
- 提取 KSI 条目、扁平化的控制项映射和 Significant Change 引用。
- 通过基于 Lunr 构建的倒排索引快速搜索 Markdown,并提供摘要片段和行号。
- 为
tools/site/content/中的 62 个以上 Markdown 文件编制索引(Zensical 静态站点内容)。 - 对 FRMR 版本进行结构化差异比较,包括逐项变更检测。
- 提供健康检查、版本列表和精选的 Significant Change 指南聚合功能。
- Claude 插件,包含斜杠命令、Agent 技能和合规分析师 Agent。
- Docker 支持,按照 2025 年最佳实践进行安全加固。
支持的文档类型
| 类型 | 全称 |
|---|---|
| KSI | 关键安全指标 |
| MAS | 最低评估范围 |
| VDR | 漏洞检测与响应 |
| SCN | 重大变更通知 |
| FRD | FedRAMP 定义 |
| ADS | 授权数据共享 |
| CCM | 协作式持续监控 |
| FSI | FedRAMP 安全收件箱 |
| ICP | 事件通信流程 |
| PVA | 持续验证与评估 |
| SCG | 安全配置指南 |
| UCM | 加密模块使用指南 |
开始使用
本地开发
- 安装依赖:
npm install
- 构建项目:
npm run build
- 运行服务:
node dist/index.js
全局安装
要进行全局安装并使用 fedramp-docs-mcp 命令:
npm install -g .
fedramp-docs-mcp
注意: 如果要在 MCP 客户端配置(Claude Desktop、Goose 等)中将 fedramp-docs-mcp 用作命令,则必须进行全局安装。或者,也可以使用已构建服务的完整路径:node /path/to/fedramp-docs-mcp/dist/index.js
CLI 命令
该软件包包含一些实用的 CLI 命令:
# Show help and usage information
npx fedramp-docs-mcp help
# Install Claude Code plugin
npx fedramp-docs-mcp setup
# Print MCP server configuration for Claude Desktop/Code
npx fedramp-docs-mcp mcp-config
# Start MCP server (used by MCP clients)
npx fedramp-docs-mcp
启动时,服务会确保 FedRAMP/docs 仓库可用,为 FRMR JSON 和 Markdown 内容建立索引,然后开始通过 MCP stdio 提供服务。
配置
环境变量用于控制仓库发现和索引行为:
| 变量 | 默认值 | 描述 |
|---|---|---|
FEDRAMP_DOCS_PATH | ~/.cache/fedramp-docs | 现有 FedRAMP/docs 工作副本的路径。 |
FEDRAMP_DOCS_REMOTE | https://github.com/FedRAMP/docs | 克隆时使用的远程地址。 |
FEDRAMP_DOCS_BRANCH | main | 克隆时检出的分支。 |
FEDRAMP_DOCS_ALLOW_AUTO_CLONE | true | 路径不存在时自动克隆。 |
FEDRAMP_DOCS_AUTO_UPDATE | true | 自动检查并获取仓库更新。 |
FEDRAMP_DOCS_UPDATE_CHECK_HOURS | 24 | 自动更新检查的间隔小时数(启用自动更新时)。 |
FEDRAMP_DOCS_INDEX_PERSIST | true | 将内存索引持久化到 ~/.cache/fedramp-docs/index-v1.json。 |
如果你维护着本地克隆,请设置 FEDRAMP_DOCS_PATH。否则,请保持未设置,让服务创建浅层缓存副本。
保持数据为最新
服务包含自动更新检查功能,以确保 FedRAMP 文档保持最新:
自动更新(默认行为):
- 每隔 24 小时(可配置),服务会检查缓存仓库是否需要更新
- 如果有可用更新,服务会在启动时自动获取
- 无需手动操作,即可确保你始终拥有最新的 FedRAMP 数据
手动更新:
- 使用
update_repository工具立即强制更新 - Claude Desktop 中的查询示例:“更新 FedRAMP 文档仓库”
- 当你知道有新的要求或指导已发布时,此功能很有用
禁用自动更新:
{
"mcpServers": {
"fedramp-docs": {
"command": "fedramp-docs-mcp",
"env": {
"FEDRAMP_DOCS_AUTO_UPDATE": "false"
}
}
}
}
自定义更新频率(每 6 小时检查一次):
{
"mcpServers": {
"fedramp-docs": {
"command": "fedramp-docs-mcp",
"env": {
"FEDRAMP_DOCS_UPDATE_CHECK_HOURS": "6"
}
}
}
}
可用工具
该服务提供 21 个工具,按类别组织。所有工具都遵循错误模型,并以 JSON 载荷响应。
文档发现
| 工具 | 描述 |
|---|---|
list_frmr_documents | 列出已建立索引的 FRMR JSON 文档 |
get_frmr_document | 返回文档的完整 JSON 和摘要 |
list_versions | 按 FRMR 文档类型汇总版本元数据 |
KSI(关键安全指标)
| 工具 | 描述 |
|---|---|
list_ksi | 筛选并检查关键安全指标 |
get_ksi | 按 ID 获取指定的 KSI 条目 |
filter_by_impact | 按影响级别(低/中/高)筛选 KSI 条目 |
get_theme_summary | 获取 KSI 主题(IAM、CNA 等)的综合指导 |
get_evidence_examples | 获取适用于自动化的 KSI 合规证据建议(社区建议,非 FedRAMP 官方内容) |
控制映射
| 工具 | 描述 |
|---|---|
list_controls | 展开 FRMR → 控制措施映射 |
get_control_requirements | 获取映射到指定控制措施的所有要求 |
analyze_control_coverage | 报告哪些控制措施族包含 FedRAMP 要求 |
搜索与查找
| 工具 | 描述 |
|---|---|
search_markdown | 在文档中进行全文搜索 |
read_markdown | 读取指定 Markdown 文件的内容 |
search_definitions | 按术语搜索 FedRAMP 定义(FRD) |
get_requirement_by_id | 按 ID 获取任意 FRMR 要求(KSI-、FRR-、FRD-*) |
分析
| 工具 | 描述 |
|---|---|
diff_frmr | 对两个 FRMR 数据集进行结构化差异比较 |
grep_controls_in_markdown | 在 Markdown 中定位控制措施引用 |
get_significant_change_guidance | 精选的重大变更参考资料 |
系统
| 工具 | 描述 |
|---|---|
search_tools | 按关键词或类别搜索并发现可用工具 |
health_check | 确认服务已成功建立索引 |
update_repository | 强制更新缓存的 FedRAMP 文档 |
证据收集建议
get_evidence_examples 工具为每个 KSI 提供社区建议的证据示例。这些建议便于自动化,可展示如何通过 API、CLI 命令和安全工具以编程方式收集合规证据。
**重要提示:**这些并非 FedRAMP 官方指导。请务必通过 FedRAMP 官方文档核实要求。
包含内容
针对 72 个 KSI 指标中的每一项,我们提供:
- 证据类型:API 调用、报告、扫描、日志、配置、文档
- 自动化来源:AWS、Azure、GCP、Okta、Splunk、Terraform、GitHub Actions 等
- 示例命令:可直接使用的 CLI 命令和 API 端点
按主题划分的证据来源示例
| 主题 | 示例来源 |
|---|---|
| IAM | Okta/Entra MFA 策略、AWS IAM 凭证报告、PAM 工具(CyberArk、Vault) |
| CNA | AWS Security Groups、VPC Flow Logs、容器扫描(Trivy)、CSPM(Wiz、Prisma) |
| MLA | SIEM 配置(Splunk、Sentinel)、CloudTrail、IaC 扫描(Checkov、tfsec) |
| CMT | Git 历史记录、CI/CD 流水线(GitHub Actions)、变更工单(ServiceNow、Jira) |
| SVC | TLS 扫描(SSL Labs)、Secrets Manager 轮换、补丁合规性(SSM) |
| INR | PagerDuty 事件、事后复盘(Blameless)、ServiceNow 工单 |
| RPL | AWS Backup 报告、DR 测试日志、混沌工程结果 |
| TPR | 供应商评级(SecurityScorecard)、依赖项扫描(Dependabot、Snyk) |
使用示例
"What evidence do I need for KSI-IAM-01 (Phishing-Resistant MFA)?"
→ Returns suggested API calls, CLI commands, and artifacts to collect
"Get evidence checklist for the CNA theme"
→ Returns automation sources for all Cloud Native Architecture indicators
请参阅 src/tools/,了解通过 Zod 实现的精确架构。每个工具都会返回成功对象,或包含 code、message 以及可选 hint 的 error 负载。
使用示例
使用 MCP 服务搭配 Claude Desktop 或其他 MCP 客户端时,以下是一些查询示例:
获取 KSI 信息:
"List all available FedRAMP documents"
→ Uses list_frmr_documents
"Show me all KSI items for moderate impact systems"
→ Uses filter_by_impact with impact='moderate'
"Give me a summary of the IAM theme requirements"
→ Uses get_theme_summary with theme='IAM'
"What evidence do I need for IAM compliance?"
→ Uses get_evidence_examples with theme='IAM'
搜索文档:
"Search for information about continuous monitoring"
→ Uses search_markdown with query 'continuous monitoring'
"What does 'federal customer data' mean in FedRAMP?"
→ Uses search_definitions with term='federal customer data'
"Get the details for requirement KSI-IAM-01"
→ Uses get_requirement_by_id with id='KSI-IAM-01'
处理控制措施:
"What FedRAMP requirements map to control AY-01?"
→ Uses get_control_requirements with control='AY-01'
"Which control families have the most FedRAMP coverage?"
→ Uses analyze_control_coverage
"Find all markdown files that reference AC-2"
→ Uses grep_controls_in_markdown with control='AC-2'
分析变更:
"What's new in the latest KSI release?"
→ Uses list_versions then diff_frmr to compare versions
"Show significant change guidance"
→ Uses get_significant_change_guidance
高级查询:仪表板与架构洞察
这些提示词将 FedRAMP 数据与 Claude 的分析能力相结合,帮助你设计合规仪表板和功能:
仪表板架构:
"Using the FedRAMP KSI data, design a compliance dashboard architecture.
What components would I need? How should I structure the data for real-time monitoring?"
"Get all KSI themes and their indicators. Then recommend how to organize
them into a dashboard with drill-down navigation."
可视化设计:
"Analyze the FedRAMP control coverage data. What would be the best
chart types to visualize control family coverage? Suggest a color
scheme for compliance status."
"List the KSIs filtered by impact level. Design a risk heat map
visualization showing low/moderate/high impact requirements."
功能规划:
"Get the evidence checklist from FedRAMP. How would you build a
feature that tracks evidence collection progress with percentage
completion per KSI theme?"
"What are the requirements for AC-2 (Account Management)? Design a
feature that helps users track their implementation status against
these requirements."
数据建模:
"Analyze the structure of KSI indicators and their control mappings.
What database schema would you recommend for a compliance tracking app?"
"Get a theme summary for IAM. How would you model the relationship
between KSIs, NIST controls, and evidence in a graph database?"
高管报告:
"Using the control coverage analysis, design an executive summary
dashboard that shows compliance posture at a glance."
"Analyze all high-impact KSI requirements and create a prioritized
remediation roadmap template."
工具搜索与延迟加载
本 MCP 服务包含 21 个工具,非常适合采用延迟工具加载(也称为工具搜索)。客户端无需预先加载所有工具,而是可以加载一小组必要工具,再通过 search_tools 工具按需发现其余工具。
search_tools 工具
search_tools 工具允许客户端按关键词或类别发现可用工具:
"What tools help with KSI compliance?"
→ search_tools(query="ksi compliance")
→ Returns: list_ksi, get_ksi, filter_by_impact, get_theme_summary, get_evidence_examples
"What analysis tools are available?"
→ search_tools(category="Analysis")
→ Returns: diff_frmr, grep_controls_in_markdown, get_significant_change_guidance
建议始终加载的工具
使用延迟加载时,请始终加载以下 5 个工具:
| 工具 | 始终加载的原因 |
|---|---|
search_tools | 用于发现其他工具 |
search_markdown | 文档查询最常用的入口 |
list_frmr_documents | 探索 FRMR 数据的起点 |
health_check | 诊断和状态验证 |
get_requirement_by_id | 跨所有文档类型进行通用 ID 查询 |
使用延迟加载配置 Claude API
使用 mcp_toolset 调用 Claude API 时,可以配置延迟加载:
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
mcp_servers=[
{
"type": "stdio",
"command": "fedramp-docs-mcp",
"name": "fedramp-docs",
}
],
messages=[{"role": "user", "content": "..."}],
)
Claude API 将使用工具注释(readOnlyHint、destructiveHint 等)来做出明智的工具选择。全部 21 个工具都包含注释。
MCP 客户端配置
FedRAMP Docs MCP 服务适用于任何兼容 MCP 的客户端。以下是最受欢迎且可靠的客户端的设置说明。
推荐客户端:
- Claude Desktop - 最成熟的 MCP 集成,工具发现体验出色
- Claude Code CLI - Anthropic 官方 CLI 工具,非常适合终端工作流
- Cursor - 支持原生 MCP 的 AI 驱动 IDE
- VS Code + GitHub Copilot - 原生支持 MCP,无需扩展
- Windsurf - 支持原生 MCP 的 AI 驱动 IDE
- Codex (OpenAI) - 支持 MCP 的开源编码 Agent
- Gemini CLI - Google 的命令行 AI Agent,支持 MCP
- LM Studio - 原生支持 MCP,可配合本地模型使用,保护隐私
- OpenCode - 支持 MCP 的终端编码 Agent
- Goose - 实验性支持,可能存在工具发现问题
Claude Desktop
将服务添加到 Claude Desktop 配置文件:
位置: ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows)
选项 1:使用 npx(推荐 - 无需安装)
{
"mcpServers": {
"fedramp-docs": {
"command": "npx",
"args": ["fedramp-docs-mcp"],
"env": {
"FEDRAMP_DOCS_AUTO_UPDATE": "true"
}
}
}
}
选项 2:全局安装
npm install -g fedramp-docs-mcp
{
"mcpServers": {
"fedramp-docs": {
"command": "fedramp-docs-mcp",
"env": {
"FEDRAMP_DOCS_PATH": "/path/to/FedRAMP/docs"
}
}
}
}
更新配置后,重启 Claude Desktop。FedRAMP Docs 工具将显示在你的对话中。
Claude Code CLI
Claude Code 是 Anthropic 官方 CLI 工具,内置 MCP 支持。
方法 1:使用 CLI(推荐)
# Add the FedRAMP Docs MCP server
claude mcp add --transport stdio fedramp-docs fedramp-docs-mcp
# With full path
claude mcp add --transport stdio fedramp-docs /path/to/node/bin/fedramp-docs-mcp
# List configured servers
claude mcp list
# Remove if needed
claude mcp remove fedramp-docs
方法 2:配置文件
Claude Code 支持三种配置范围:
- 项目范围(推荐用于团队):项目根目录中的
.mcp.json - 用户范围:
~/.claude/settings.local.json - 项目本地:项目根目录中的
.claude/settings.local.json
.mcp.json 示例(项目范围,可纳入版本控制):
{
"mcpServers": {
"fedramp-docs": {
"command": "fedramp-docs-mcp",
"args": [],
"env": {
"FEDRAMP_DOCS_AUTO_UPDATE": "true"
}
}
}
}
使用环境变量扩展:
{
"mcpServers": {
"fedramp-docs": {
"command": "fedramp-docs-mcp",
"args": [],
"env": {
"FEDRAMP_DOCS_PATH": "${HOME}/fedramp-docs",
"FEDRAMP_DOCS_AUTO_UPDATE": "true"
}
}
}
}
测试:
- 配置变更后重启 Claude Code
- 使用
/mcp命令进行交互式管理 - 使用
--mcp-debug标志排查问题:claude --mcp-debug - 使用以下命令验证:
claude mcp list
注意: .mcp.json 中的项目范围配置可确保所有团队成员都能访问相同的 MCP 工具,从而促进团队协作。
LM Studio
LM Studio(v0.3.17+)原生支持 MCP,非常适合在注重隐私的工作流中搭配本地模型使用。
设置说明
- 打开 LM Studio,然后点击右侧边栏中的 Program 标签页(终端图标 >_)
- 在 Install 部分下点击 “Edit mcp.json”
- 添加 FedRAMP Docs 配置:
配置文件位置:
- macOS/Linux:
~/.lmstudio/mcp.json - Windows:
%USERPROFILE%\.lmstudio\mcp.json
基本配置:
{
"mcpServers": {
"fedramp-docs": {
"command": "fedramp-docs-mcp",
"args": [],
"env": {
"FEDRAMP_DOCS_AUTO_UPDATE": "true"
}
}
}
}
使用完整路径(如果找不到命令,推荐使用):
{
"mcpServers": {
"fedramp-docs": {
"command": "/path/to/node/bin/fedramp-docs-mcp",
"args": [],
"env": {
"FEDRAMP_DOCS_AUTO_UPDATE": "true",
"FEDRAMP_DOCS_PATH": "/path/to/FedRAMP/docs"
}
}
}
}
- 保存文件 - LM Studio 将自动加载服务
- 开始聊天 - 使用任意本地模型开启聊天
- 测试 - 提问:“列出所有 FedRAMP FRMR 文档”
- 批准工具调用 - LM Studio 会在执行每个工具前显示确认对话框
注意: 需要全局安装(npm install -g .),或使用可执行文件的完整路径。使用以下命令查找路径:which fedramp-docs-mcp
OpenCode
OpenCode 是一款功能强大的 AI 编码 Agent,专为终端打造,原生支持 MCP。
设置说明
- 创建或编辑 OpenCode 配置文件:
配置文件位置:
- 全局:
~/.config/opencode/opencode.json - 项目:
opencode.json(位于项目根目录)
- 添加 FedRAMP Docs MCP 服务:
基本配置:
{
"mcp": {
"fedramp-docs": {
"type": "local",
"command": ["fedramp-docs-mcp"],
"enabled": true
}
}
}
使用完整路径:
{
"mcp": {
"fedramp-docs": {
"type": "local",
"command": ["/path/to/node/bin/fedramp-docs-mcp"],
"enabled": true
}
}
}
使用环境变量:
{
"mcp": {
"fedramp-docs": {
"type": "local",
"command": ["fedramp-docs-mcp"],
"enabled": true,
"env": {
"FEDRAMP_DOCS_AUTO_UPDATE": "true",
"FEDRAMP_DOCS_PATH": "/path/to/FedRAMP/docs"
}
}
}
}
- 重启 OpenCode 以加载 MCP 服务
- 测试——FedRAMP 工具会自动与内置工具一同提供
注意: MCP 服务会占用上下文,因此只启用所需的服务。使用 "enabled": false 可临时禁用服务,无需将其移除。
Goose
Goose 是 Block 的开源 AI Agent。你可以通过以下任一方法添加 FedRAMP Docs MCP 服务:
方法 1:通过 Goose CLI(推荐)
goose configure
然后选择:
Add ExtensionCommand-line Extension- 输入以下详细信息:
- 名称:
FedRAMP Docs - 命令:
fedramp-docs-mcp - 超时:
300
- 名称:
方法 2:通过 Goose 桌面应用
- 打开 Goose Desktop
- 点击侧边栏中的 Extensions
- 点击 Add custom extension
- 填写表单:
- 扩展名称:
FedRAMP Docs - 类型:
STDIO - 命令:
fedramp-docs-mcp - 超时:
300 - 环境变量:(可选)
FEDRAMP_DOCS_PATH:/path/to/FedRAMP/docsFEDRAMP_DOCS_AUTO_UPDATE:true
- 扩展名称:
方法 3:通过配置文件
编辑 ~/.config/goose/config.yaml(Linux/macOS)或 %USERPROFILE%\.config\goose\config.yaml(Windows):
extensions:
fedramp-docs:
name: FedRAMP Docs
cmd: fedramp-docs-mcp
enabled: true
type: stdio
timeout: 300
envs:
FEDRAMP_DOCS_PATH: "/path/to/FedRAMP/docs" # optional
FEDRAMP_DOCS_AUTO_UPDATE: "true" # optional
完成配置后,重启 Goose 或重新加载扩展。你可以询问“有哪些 FedRAMP 工具可用?”来进行测试。
注意: Goose 的 MCP 支持仍在完善中,可能无法从 stdio 服务发现工具。如果你在工具发现方面遇到问题,可以改用 Claude Desktop、Claude Code CLI、LM Studio 或 OpenCode。
Kiro
Kiro 是 AWS 的规范驱动型 IDE,原生支持 MCP。
设置说明
-
打开 Kiro MCP 设置:
- 全局:
~/.kiro/settings/mcp.json - 项目:
.kiro/settings/mcp.json(优先级更高)
- 全局:
-
添加 FedRAMP Docs 配置:
{
"mcpServers": {
"fedramp-docs": {
"command": "npx",
"args": ["-y", "fedramp-docs-mcp"],
"env": {
"FEDRAMP_DOCS_AUTO_UPDATE": "true"
}
}
}
}
使用全局安装:
{
"mcpServers": {
"fedramp-docs": {
"command": "fedramp-docs-mcp",
"args": [],
"env": {
"FEDRAMP_DOCS_AUTO_UPDATE": "true"
}
}
}
}
- 保存文件——配置更改后,Kiro 会自动加载 MCP 服务
- 测试——向 Kiro 询问:“列出所有 FedRAMP FRMR 文档”
注意: 需要全局安装(npm install -g fedramp-docs-mcp)或使用 npx。运行 which fedramp-docs-mcp 查找路径。
Cursor
Cursor 支持通过项目或全局配置使用 MCP 服务。
配置文件位置: .cursor/mcp.json(项目)或 ~/.cursor/mcp.json(全局)
{
"mcpServers": {
"fedramp-docs": {
"command": "npx",
"args": ["-y", "fedramp-docs-mcp"],
"env": {
"FEDRAMP_DOCS_AUTO_UPDATE": "true"
}
}
}
}
保存后重启 Cursor。你也可以通过 Cursor Settings > MCP 进行配置。
VS Code + GitHub Copilot
VS Code 通过 GitHub Copilot 原生支持 MCP(无需安装扩展)。
配置文件位置: .vscode/mcp.json(工作区范围)
注意: VS Code 使用 servers(而非 mcpServers),且要求 "type": "stdio"。
{
"servers": {
"fedramp-docs": {
"type": "stdio",
"command": "npx",
"args": ["-y", "fedramp-docs-mcp"]
}
}
}
保存后,Copilot 会自动检测新服务。你可以通过 命令面板(Ctrl+Shift+P > “MCP: List Servers”)管理 MCP 服务。
Windsurf
Windsurf 是一款原生支持 MCP 的 AI IDE。
配置文件位置: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"fedramp-docs": {
"command": "npx",
"args": ["-y", "fedramp-docs-mcp"],
"env": {
"FEDRAMP_DOCS_AUTO_UPDATE": "true"
}
}
}
}
保存后重启 Windsurf。
Codex (OpenAI)
Codex 是 OpenAI 的开源编码 Agent,通过 TOML 配置支持 MCP。
配置文件位置: ~/.codex/config.toml(全局)或 .codex/config.toml(项目)
[mcp_servers.fedramp-docs]
command = "npx"
args = ["-y", "fedramp-docs-mcp"]
[mcp_servers.fedramp-docs.env]
FEDRAMP_DOCS_AUTO_UPDATE = "true"
你也可以通过 codex mcp 管理 MCP 服务。
Gemini CLI
Gemini CLI 是 Google 推出的支持 MCP 的命令行 AI Agent。
配置文件位置: ~/.gemini/settings.json(全局)或 .gemini/settings.json(项目)
{
"mcpServers": {
"fedramp-docs": {
"command": "npx",
"args": ["-y", "fedramp-docs-mcp"],
"env": {
"FEDRAMP_DOCS_AUTO_UPDATE": "true"
}
}
}
}
保存后重启 Gemini CLI。
MCP Inspector(调试)
MCP Inspector 是用于测试和调试 MCP 服务的官方工具。它提供可视化界面,可交互式地调用工具并探索资源。
要求: Node.js 22.7.5 或更高版本
交互式界面:
# Start the inspector with fedramp-docs-mcp
npx @modelcontextprotocol/inspector node dist/index.js
# Or if installed globally
npx @modelcontextprotocol/inspector fedramp-docs-mcp
打开 http://localhost:6274 访问界面,然后测试以下工具:
health_check- 验证服务是否正常运行list_frmr_documents- 查看所有已索引的 FedRAMP 文档list_ksi- 浏览关键安全指标
CLI 模式(快速测试):
# List all available tools
npx @modelcontextprotocol/inspector --cli node dist/index.js --method tools/list
# Call a specific tool
npx @modelcontextprotocol/inspector --cli node dist/index.js \
--method tools/call --tool-name health_check
导出配置: Inspector 界面包含复制服务配置的按钮,可用于 Claude Desktop、Cursor 和其他 MCP 客户端。
Claude 插件
此代码仓库包含一个 Claude Code 插件,提供斜杠命令、Agent 技能和专用合规分析 Agent。
快速安装
在 Claude Code 中运行:
/plugin marketplace add hackIDLE/fedramp-docs-mcp
/plugin install fedramp-docs
完成!插件已准备就绪。
其他方式:手动安装
# One-command setup
npx fedramp-docs-mcp setup
# Then start Claude Code with the plugin
claude --plugin-dir ~/.fedramp-docs-mcp/plugin
或者在 shell 配置文件中添加别名:
alias claude-fedramp='claude --plugin-dir ~/.fedramp-docs-mcp/plugin'
可用命令
| 命令 | 描述 |
|---|---|
/fedramp-docs:search <query> | 搜索 FedRAMP 文档 |
/fedramp-docs:search-definitions <term> | 搜索 FedRAMP 定义 |
/fedramp-docs:list-controls [family] | 列出 NIST 控制项 |
/fedramp-docs:control-requirements <control> | 获取 NIST 控制项的要求 |
/fedramp-docs:control-coverage | 分析 NIST 控制项覆盖情况 |
/fedramp-docs:list-ksi [filter] | 列出关键安全指标 |
/fedramp-docs:filter-impact <level> | 按影响级别筛选 KSI |
/fedramp-docs:theme-summary <theme> | 获取主题指南 |
/fedramp-docs:evidence-checklist [theme] | 获取证据清单 |
/fedramp-docs:get-requirement <id> | 按 ID 获取要求 |
/fedramp-docs:list-documents | 列出所有 FRMR 文档 |
/fedramp-docs:compare <doc1> <doc2> | 比较文档版本 |
/fedramp-docs:health | 检查 MCP 服务状态 |
Agent 技能
- frmr-analysis - 分析 FRMR 文档或控制项映射时自动调用
- control-mapping - 将 NIST 控制项映射到 FedRAMP 要求时自动调用
完整文档请参阅 plugin/README.md。
Docker
在安全加固的 Docker 容器中运行 MCP 服务。
快速开始
# Build the image
docker build -t fedramp-docs-mcp .
# Run interactively (for MCP stdio)
docker run --rm -i \
--security-opt no-new-privileges:true \
--cap-drop ALL \
--read-only \
--memory 512m \
-v fedramp-cache:/home/mcpuser/.cache/fedramp-docs \
fedramp-docs-mcp
Docker Compose
# Start with docker-compose (security hardening included)
docker compose up -d
使用 Docker 运行 Claude Desktop
配置 Claude Desktop 使用 Docker 容器:
{
"mcpServers": {
"fedramp-docs": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--security-opt", "no-new-privileges:true",
"--cap-drop", "ALL",
"--read-only",
"--memory", "512m",
"-v", "fedramp-cache:/home/mcpuser/.cache/fedramp-docs",
"fedramp-docs-mcp:latest"
]
}
}
}
安全特性
Docker 设置遵循 2025 年 MCP 安全最佳实践:
- 非 root 用户:以
mcpuser(UID 1001)身份运行 - 只读文件系统:防止未经授权的修改
- 移除能力:
--cap-drop ALL移除所有 Linux 能力 - 禁止新增权限:防止权限提升
- 资源限制:限制内存和 CPU
- 网络隔离:使用默认情况下无法访问外部网络的内部网络
开发
在开发模式下运行
使用 tsx 快速迭代,无需构建:
npm run dev
此命令会直接运行 TypeScript 源代码,并在发生更改时自动重新编译。
运行测试
仓库包含基于 Vitest 的单元测试和契约测试,并使用小型测试夹具:
npm test
测试将 FEDRAMP_DOCS_PATH 设置为 tests/fixtures/repo,确保索引器、搜索和差异逻辑能够确定性地运行,无需真实的 FedRAMP 仓库。
集成测试使用真实的上游 FedRAMP/docs 克隆仓库验证索引器:
npm run test:integration
这些测试会克隆并索引实际的上游仓库,以验证解析器能否正确处理当前的上游数据。设置 FEDRAMP_DOCS_PATH 可跳过克隆并使用已有的检出副本。如果使用自己的检出副本,还要设置 FEDRAMP_DOCS_AUTO_UPDATE=false,以防测试修改该副本。
代码结构
代码库使用:
- TypeScript 5.4+,并启用严格模式
- ES 模块(在 package.json 中设置
"type": "module") - Node.js 模块解析(
moduleResolution: "NodeNext") - Zod 进行运行时架构验证
- MCP SDK v1.24+ 实现服务
项目结构
src/
index.ts # MCP bootstrap
repo.ts # repo discovery and cloning
indexer.ts # FRMR + markdown indexing logic
frmr.ts # FRMR-centric helpers
search.ts # markdown search + aggregations
diff.ts # structured FRMR diff engine
tools/ # individual MCP tool handlers
测试夹具位于 tests/fixtures 下,Vitest 测试文件位于 tests/ 中。
版本历史
跟踪 FedRAMP FRMR v0.9.2-beta 文档。完整详情请参阅 CHANGELOG.md。
| 版本 | 日期 | 主要更新 |
|---|---|---|
| v0.2.5 | 2026-02-15 | 面向 Codex、Cursor、Windsurf、VS Code + Copilot、Gemini CLI 的 MCP 客户端说明 |
| v0.2.4 | 2026-02-15 | 自动上游同步工作流、集成测试套件 |
| v0.2.3 | 2026-02-15 | 使用 Cisco's MCP Scanner 进行 MCP 安全扫描 CI |
| v0.2.1 | 2025-12-30 | Okta/Duo MFA 证据来源、增强的 health_check |
| v0.2.0 | 2025-12-28 | 新增 7 个工具、Claude Code 插件、Docker 支持、12 种 FRMR 类型 |
| v0.1.0 | 2025-10-10 | 首次发布,包含 13 个核心 MCP 工具 |
故障排除
构建错误
错误:Cannot find module '@modelcontextprotocol/sdk'
确保已安装正确版本的 SDK:
npm install @modelcontextprotocol/sdk@^1.20.0
错误:Module not found 或导入错误
项目使用基于 NodeNext 解析的 ES 模块。请确保使用 Node.js 18+,并且 TypeScript 配置与之匹配:
{
"compilerOptions": {
"module": "NodeNext",
"moduleResolution": "NodeNext"
}
}
运行时错误
错误:REPO_CLONE_FAILED
服务无法克隆 FedRAMP 文档仓库。请检查:
- 网络连接
- 将
FEDRAMP_DOCS_PATH设置为现有的本地克隆副本,或 - 确保
FEDRAMP_DOCS_ALLOW_AUTO_CLONE=true(默认值)
服务已启动,但没有显示工具
确认构建已成功完成:
npm run build
ls dist/ # Should contain index.js, tools/, etc.
开发问题
有关缺少类型的 TypeScript 错误
安装所有开发依赖项:
npm install
必需的类型包:
@types/node@types/fs-extra@types/lunr@types/glob
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。