Enables automatic cloning, updating, and management of the FedRAMP documentation repository for local analysis and querying
Provides access to the FedRAMP/docs repository for querying compliance documentation, FRMR datasets, and security guidance materials
FedRAMP Docs MCP Server
Custom Model Context Protocol (MCP) server that makes the FedRAMP/docs repository queryable with FRMR-aware tooling. The server scans FRMR JSON datasets and supporting markdown guidance, exposes structured tools for analysis, and can optionally clone and cache the upstream repository for you.
Demo
See the FedRAMP Docs MCP Server in action with Claude Desktop:
https://github.com/user-attachments/assets/6c96ace6-cbd8-4479-9aa9-4474643362c4
Prerequisites
Node.js 18 or higher
npm 8 or higher
Features
Auto-detects FRMR JSON files (KSI, MAS, VDR, SCN, FRD, ADS) and builds typed metadata.
Extracts KSI entries, flattened control mappings, and Significant Change references.
Fast markdown search via an inverted index backed by Lunr with snippets and line numbers.
Structured diffing between FRMR versions, including per-item change detection.
Health check, version listing, and curated Significant Change guidance aggregator.
Getting Started
Local Development
Install dependencies:
Build the project:
Run the server:
Global Installation
To install globally and use the fedramp-docs-mcp
command:
Note: Global installation is required if you want to use fedramp-docs-mcp
as the command in MCP client configurations (Claude Desktop, Goose, etc.). Alternatively, you can use the full path to the built server: node /path/to/fedramp-docs-mcp/dist/index.js
During startup the server ensures a FedRAMP/docs repository is available, indexes FRMR JSON and markdown content, then begins serving requests on MCP stdio.
Configuration
Environment variables control repository discovery and indexing behaviour:
Variable | Default | Description |
|
| Path to an existing FedRAMP/docs checkout. |
|
| Remote used when cloning. |
|
| Branch to checkout when cloning. |
|
| Clone automatically when the path is missing. |
|
| Automatically check for and fetch repository updates. |
|
| Hours between automatic update checks (when auto-update is enabled). |
|
| Persist the in-memory index under
. |
Set FEDRAMP_DOCS_PATH
if you maintain a local clone. Otherwise leave it unset and allow the server to create a shallow cached copy.
Keeping Data Up-to-Date
The server includes automatic update checking to keep the FedRAMP docs current:
Automatic Updates (Default Behavior):
Every 24 hours (configurable), the server checks if the cached repository needs updating
If updates are available, they're fetched automatically on server startup
This ensures you always have recent FedRAMP data without manual intervention
Manual Updates:
Use the
update_repository
tool to force an immediate updateExample query in Claude Desktop: "Update the FedRAMP docs repository"
Useful when you know new requirements or guidance has been published
Disabling Auto-Update:
Custom Update Frequency:
Available Tools
All tools follow the error model described in the product spec and respond with JSON payloads. Key tools include:
list_frmr_documents
— enumerate indexed FRMR JSON documents.get_frmr_document
— return full JSON and summary for a document.list_ksi
/get_ksi
— filter and inspect Key Security Indicators.list_controls
— flatten FRMR → NIST control mappings.search_markdown
/read_markdown
— full-text search and retrieval with digests.list_versions
— collate version metadata by FRMR document type.diff_frmr
— structured diff of two FRMR datasets using ID-aware comparison.grep_controls_in_markdown
— locate control references inside markdown guidance.get_significant_change_guidance
— curated Significant Change references across FRMR + markdown.health_check
— confirm the server indexed successfully and expose repo path.update_repository
— force update the cached FedRAMP docs to the latest version.
See src/tools/
for the precise schemas implemented with Zod. Each tool returns either a successful object or an error
payload containing code
, message
, and optional hint
.
Usage Examples
When using the MCP server with Claude Desktop or other MCP clients, here are some example queries:
Getting KSI Information:
Searching Documentation:
Working with Controls:
Analyzing Changes:
MCP Client Configuration
The FedRAMP Docs MCP server works with any MCP-compatible client. Below are setup instructions for the most popular and reliable clients.
Recommended clients:
Claude Desktop - Most mature MCP integration, excellent tool discovery
Claude Code CLI - Official Anthropic CLI tool, great for terminal workflows
LM Studio - Native MCP support, works with local models for privacy
OpenCode - Terminal-based coding agent with MCP support
Goose - Experimental support, may have tool discovery issues
Claude Desktop
Add the server to your Claude Desktop configuration file:
Location: ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or %APPDATA%\Claude\claude_desktop_config.json
(Windows)
After updating the config, restart Claude Desktop. The FedRAMP Docs tools will appear in your conversations.
Claude Code CLI
Claude Code is Anthropic's official CLI tool with built-in MCP support.
Method 1: Using CLI (Recommended)
Method 2: Configuration File
Claude Code supports three configuration scopes:
Project-scoped (recommended for teams):
.mcp.json
in project rootUser-scoped:
~/.claude/settings.local.json
Project-local:
.claude/settings.local.json
in project root
Example
With environment variable expansion:
Testing:
Restart Claude Code after configuration changes
Use
/mcp
command for interactive managementUse
--mcp-debug
flag for troubleshooting:claude --mcp-debug
Verify with:
claude mcp list
Note: Project-scoped configurations in .mcp.json
enable team collaboration by ensuring all team members have access to the same MCP tools.
LM Studio
LM Studio (v0.3.17+) has native MCP support and works great with local models for privacy-focused workflows.
Setup Instructions
Open LM Studio and click the Program tab (terminal icon >_) in the right sidebar
Click "Edit mcp.json" under the Install section
Add the FedRAMP Docs configuration:
Config file location:
macOS/Linux:
~/.lmstudio/mcp.json
Windows:
%USERPROFILE%\.lmstudio\mcp.json
Basic configuration:
Using full path (recommended if command not found):
Save the file - LM Studio will automatically load the server
Start chatting - Open a chat with any local model
Test it - Ask: "List all FedRAMP FRMR documents"
Approve tool calls - LM Studio will show a confirmation dialog before executing each tool
Note: Requires global installation (npm install -g .
) or use the full path to the executable. Find your path with: which fedramp-docs-mcp
OpenCode
OpenCode is a powerful AI coding agent built for the terminal with native MCP support.
Setup Instructions
Create or edit your OpenCode configuration file:
Config file location:
Global:
~/.config/opencode/opencode.json
Project:
opencode.json
(in your project root)
Add the FedRAMP Docs MCP server:
Basic configuration:
With full path:
With environment variables:
Restart OpenCode to load the MCP server
Test it - The FedRAMP tools will be automatically available alongside built-in tools
Note: MCP servers add to your context, so enable only the ones you need. Use "enabled": false
to temporarily disable a server without removing it.
Goose
Goose is Block's open-source AI agent. You can add the FedRAMP Docs MCP server using any of these methods:
Method 1: Via Goose CLI (Recommended)
Then select:
Add Extension
Command-line Extension
Enter the following details:
Name:
FedRAMP Docs
Command:
fedramp-docs-mcp
Timeout:
300
Method 2: Via Goose Desktop App
Open Goose Desktop
Click Extensions in the sidebar
Click Add custom extension
Fill in the form:
Extension Name:
FedRAMP Docs
Type:
STDIO
Command:
fedramp-docs-mcp
Timeout:
300
Environment Variables: (optional)
FEDRAMP_DOCS_PATH
:/path/to/FedRAMP/docs
FEDRAMP_DOCS_AUTO_UPDATE
:true
Method 3: Via Config File
Edit ~/.config/goose/config.yaml
(Linux/macOS) or %USERPROFILE%\.config\goose\config.yaml
(Windows):
After configuration, restart Goose or reload extensions. You can test by asking: "What FedRAMP tools are available?"
Note: Goose's MCP support is still maturing and may have issues discovering tools from stdio servers. If you experience problems with tool discovery, consider using Claude Desktop, Claude Code CLI, LM Studio, or OpenCode instead.
MCP Inspector (Debugging)
For debugging and testing the server directly:
Development
Running in Development Mode
Use tsx
for rapid iteration without building:
This runs the TypeScript source directly, automatically recompiling on changes.
Running Tests
The repository includes Vitest-based unit and contract tests with small fixtures:
Tests set FEDRAMP_DOCS_PATH
to tests/fixtures/repo
, ensuring the indexer, search, and diff logic run deterministically without needing the real FedRAMP repo.
Code Structure
The codebase uses:
TypeScript 5.4+ with strict mode enabled
ES Modules (
"type": "module"
in package.json)Node.js module resolution (
moduleResolution: "NodeNext"
)Zod for runtime schema validation
MCP SDK v1.20+ for server implementation
Project Structure
Fixtures live under tests/fixtures
, while Vitest specs reside in tests/
.
Troubleshooting
Build Errors
Error:
Ensure you have the correct SDK version installed:
Error:
The project uses ES modules with NodeNext resolution. Make sure you're using Node.js 18+ and that your TypeScript configuration matches:
Runtime Errors
Error:
The server couldn't clone the FedRAMP docs repository. Check:
Network connectivity
Set
FEDRAMP_DOCS_PATH
to an existing local clone, orEnsure
FEDRAMP_DOCS_ALLOW_AUTO_CLONE=true
(default)
Server starts but no tools appear
Verify the build completed successfully:
Development Issues
TypeScript errors about missing types
Install all development dependencies:
Required type packages:
@types/node
@types/fs-extra
@types/lunr
@types/glob
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Enables querying and analysis of FedRAMP documentation, compliance requirements, and security controls through structured tools that search markdown guidance, analyze FRMR datasets, and track regulatory changes.