fedramp-20x-mcp 0.4.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. fedramp_20x_mcp/__init__.py +14 -0
  2. fedramp_20x_mcp/__main__.py +12 -0
  3. fedramp_20x_mcp/data_loader.py +673 -0
  4. fedramp_20x_mcp/prompts/__init__.py +62 -0
  5. fedramp_20x_mcp/prompts/api_design_guide.txt +432 -0
  6. fedramp_20x_mcp/prompts/ato_package_checklist.txt +75 -0
  7. fedramp_20x_mcp/prompts/audit_preparation.txt +592 -0
  8. fedramp_20x_mcp/prompts/authorization_boundary_review.txt +76 -0
  9. fedramp_20x_mcp/prompts/azure_ksi_automation.txt +997 -0
  10. fedramp_20x_mcp/prompts/continuous_monitoring_setup.txt +61 -0
  11. fedramp_20x_mcp/prompts/documentation_generator.txt +499 -0
  12. fedramp_20x_mcp/prompts/gap_analysis.txt +25 -0
  13. fedramp_20x_mcp/prompts/initial_assessment_roadmap.txt +202 -0
  14. fedramp_20x_mcp/prompts/ksi_implementation_priorities.txt +283 -0
  15. fedramp_20x_mcp/prompts/migration_from_rev5.txt +440 -0
  16. fedramp_20x_mcp/prompts/quarterly_review_checklist.txt +231 -0
  17. fedramp_20x_mcp/prompts/significant_change_assessment.txt +50 -0
  18. fedramp_20x_mcp/prompts/vendor_evaluation.txt +349 -0
  19. fedramp_20x_mcp/prompts/vulnerability_remediation_timeline.txt +45 -0
  20. fedramp_20x_mcp/server.py +270 -0
  21. fedramp_20x_mcp/templates/__init__.py +75 -0
  22. fedramp_20x_mcp/templates/bicep/afr.txt +33 -0
  23. fedramp_20x_mcp/templates/bicep/cna.txt +48 -0
  24. fedramp_20x_mcp/templates/bicep/generic.txt +47 -0
  25. fedramp_20x_mcp/templates/bicep/iam.txt +211 -0
  26. fedramp_20x_mcp/templates/bicep/mla.txt +82 -0
  27. fedramp_20x_mcp/templates/bicep/rpl.txt +44 -0
  28. fedramp_20x_mcp/templates/bicep/svc.txt +54 -0
  29. fedramp_20x_mcp/templates/code/generic_csharp.txt +65 -0
  30. fedramp_20x_mcp/templates/code/generic_powershell.txt +65 -0
  31. fedramp_20x_mcp/templates/code/generic_python.txt +63 -0
  32. fedramp_20x_mcp/templates/code/iam_csharp.txt +150 -0
  33. fedramp_20x_mcp/templates/code/iam_powershell.txt +162 -0
  34. fedramp_20x_mcp/templates/code/iam_python.txt +224 -0
  35. fedramp_20x_mcp/templates/code/mla_python.txt +124 -0
  36. fedramp_20x_mcp/templates/terraform/afr.txt +29 -0
  37. fedramp_20x_mcp/templates/terraform/cna.txt +50 -0
  38. fedramp_20x_mcp/templates/terraform/generic.txt +40 -0
  39. fedramp_20x_mcp/templates/terraform/iam.txt +219 -0
  40. fedramp_20x_mcp/templates/terraform/mla.txt +29 -0
  41. fedramp_20x_mcp/templates/terraform/rpl.txt +32 -0
  42. fedramp_20x_mcp/templates/terraform/svc.txt +46 -0
  43. fedramp_20x_mcp/tools/__init__.py +167 -0
  44. fedramp_20x_mcp/tools/definitions.py +154 -0
  45. fedramp_20x_mcp/tools/documentation.py +155 -0
  46. fedramp_20x_mcp/tools/enhancements.py +2256 -0
  47. fedramp_20x_mcp/tools/evidence.py +701 -0
  48. fedramp_20x_mcp/tools/export.py +753 -0
  49. fedramp_20x_mcp/tools/ksi.py +90 -0
  50. fedramp_20x_mcp/tools/requirements.py +163 -0
  51. fedramp_20x_mcp-0.4.8.dist-info/METADATA +877 -0
  52. fedramp_20x_mcp-0.4.8.dist-info/RECORD +55 -0
  53. fedramp_20x_mcp-0.4.8.dist-info/WHEEL +4 -0
  54. fedramp_20x_mcp-0.4.8.dist-info/entry_points.txt +2 -0
  55. fedramp_20x_mcp-0.4.8.dist-info/licenses/LICENSE +27 -0
@@ -0,0 +1,877 @@
1
+ Metadata-Version: 2.4
2
+ Name: fedramp-20x-mcp
3
+ Version: 0.4.8
4
+ Summary: MCP server for querying FedRAMP 20x requirements
5
+ Project-URL: Homepage, https://github.com/KevinRabun/FedRAMP20xMCP
6
+ Project-URL: Documentation, https://github.com/KevinRabun/FedRAMP20xMCP#readme
7
+ Project-URL: Repository, https://github.com/KevinRabun/FedRAMP20xMCP
8
+ Project-URL: Issues, https://github.com/KevinRabun/FedRAMP20xMCP/issues
9
+ Author: FedRAMP 20x MCP Server Contributors
10
+ License: MIT
11
+ License-File: LICENSE
12
+ Keywords: azure,compliance,fedramp,mcp,security
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: Security
21
+ Classifier: Topic :: System :: Systems Administration
22
+ Requires-Python: >=3.10
23
+ Requires-Dist: httpx>=0.27.0
24
+ Requires-Dist: mcp>=1.2.0
25
+ Requires-Dist: openpyxl>=3.1.0
26
+ Requires-Dist: python-docx>=1.1.0
27
+ Provides-Extra: dev
28
+ Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
29
+ Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
30
+ Requires-Dist: pytest>=8.0.0; extra == 'dev'
31
+ Description-Content-Type: text/markdown
32
+
33
+ # FedRAMP 20x MCP Server
34
+
35
+ [![Tests](https://github.com/KevinRabun/FedRAMP20xMCP/actions/workflows/test.yml/badge.svg)](https://github.com/KevinRabun/FedRAMP20xMCP/actions/workflows/test.yml)
36
+ [![PyPI version](https://img.shields.io/pypi/v/fedramp-20x-mcp.svg)](https://pypi.org/project/fedramp-20x-mcp/)
37
+ [![Python Versions](https://img.shields.io/pypi/pyversions/fedramp-20x-mcp.svg)](https://pypi.org/project/fedramp-20x-mcp/)
38
+
39
+ <!-- mcp-name: io.github.KevinRabun/FedRAMP20xMCP -->
40
+
41
+ An MCP (Model Context Protocol) server that provides access to FedRAMP 20x security requirements and controls with **Azure-first guidance**.
42
+
43
+ ## Overview
44
+
45
+ This server loads FedRAMP 20x data from the official [FedRAMP documentation repository](https://github.com/FedRAMP/docs) and provides tools for querying requirements by control, family, or keyword.
46
+
47
+ **Data Sources:**
48
+ - **Requirements Data:** JSON files from [github.com/FedRAMP/docs/tree/main/data](https://github.com/FedRAMP/docs/tree/main/data)
49
+ - **Documentation:** Markdown files from [github.com/FedRAMP/docs/tree/main/docs](https://github.com/FedRAMP/docs/tree/main/docs)
50
+
51
+ **Azure Focus:** All implementation examples, architecture patterns, and vendor recommendations prioritize Microsoft Azure services (Azure Government, Microsoft Entra ID, Azure Key Vault, AKS, Azure Functions, Bicep, etc.) while remaining cloud-agnostic where appropriate.
52
+
53
+ ### Complete Data Coverage
54
+
55
+ The server provides access to **329 requirements** across all 12 FedRAMP 20x documents:
56
+ - **ADS** - Authorization Data Sharing (22 requirements)
57
+ - **CCM** - Collaborative Continuous Monitoring (25 requirements)
58
+ - **FRD** - FedRAMP Definitions (50 definitions)
59
+ - **FSI** - FedRAMP Security Inbox (16 requirements)
60
+ - **ICP** - Incident Communications Procedures (9 requirements)
61
+ - **KSI** - Key Security Indicators (72 indicators)
62
+ - **MAS** - Minimum Assessment Scope (12 requirements)
63
+ - **PVA** - Persistent Validation and Assessment (22 requirements)
64
+ - **RSC** - Recommended Secure Configuration (10 requirements)
65
+ - **SCN** - Significant Change Notifications (26 requirements)
66
+ - **UCM** - Using Cryptographic Modules (4 requirements)
67
+ - **VDR** - Vulnerability Detection and Response (59 requirements)
68
+
69
+ ## Features
70
+
71
+ - **Query by Control**: Get detailed information about specific FedRAMP requirements
72
+ - **Query by Family**: List all requirements within a family
73
+ - **Keyword Search**: Search across all requirements using keywords
74
+ - **FedRAMP Definitions**: Look up official FedRAMP term definitions
75
+ - **Key Security Indicators**: Access and query FedRAMP Key Security Indicators (KSI)
76
+ - **Documentation Search**: Search and retrieve official FedRAMP documentation markdown files
77
+ - **Dynamic Content**: Automatically discovers and loads all markdown documentation files
78
+ - **Implementation Planning**: Generate strategic interview questions to help product managers and engineers think through FedRAMP 20x implementation considerations
79
+
80
+ **Important Clarification: OSCAL Format**
81
+ FedRAMP 20x requires **machine-readable** formats (JSON, XML, or structured data) for Authorization Data Sharing. **OSCAL is NOT mentioned in FedRAMP 20x requirements** - it's a NIST standard that can be used as one potential implementation approach. The actual requirement is simply "machine-readable" - you can use custom JSON/XML or OSCAL based on your implementation needs.
82
+
83
+ 📄 **See [OSCAL_CLARIFICATION.md](OSCAL_CLARIFICATION.md) for detailed guidance on format requirements and implementation approaches.**
84
+
85
+ ## Installation
86
+
87
+ ### Prerequisites
88
+
89
+ - Python 3.10 or higher
90
+ - pip (included with Python)
91
+ - Python must be in your system PATH
92
+
93
+ ### Setup
94
+
95
+ ```bash
96
+ # Clone the repository
97
+ git clone https://github.com/KevinRabun/FedRAMP20xMCP.git
98
+ cd FedRAMP20xMCP
99
+
100
+ # Create virtual environment and install
101
+ python -m venv .venv
102
+ source .venv/bin/activate # On Windows: .venv\Scripts\activate
103
+ pip install -e .
104
+
105
+ # If using uv (alternative package manager):
106
+ uv pip install -e .
107
+ ```
108
+
109
+ **Dependencies:**
110
+ - `mcp>=1.2.0` - Model Context Protocol SDK
111
+ - `httpx>=0.27.0` - HTTP client for fetching FedRAMP data
112
+ - `openpyxl>=3.1.0` - Excel file generation for export features
113
+ - `python-docx>=1.1.0` - Word document generation for KSI specifications
114
+
115
+ **Troubleshooting:** If you get "Python was not found" errors:
116
+ 1. Ensure Python is installed and added to PATH
117
+ 2. Try using `python3` instead of `python`
118
+ 3. Or use the full path to python.exe in `.vscode/mcp.json`
119
+
120
+ ## Usage
121
+
122
+ ### With VS Code and GitHub Copilot
123
+
124
+ 1. **Install the VS Code MCP extension** (if not already installed)
125
+
126
+ 2. **Configure the MCP server** - Choose one of the following scopes:
127
+
128
+ **Option A: Workspace-level (Recommended for sharing)**
129
+
130
+ Add to `.vscode/mcp.json` in your project:
131
+ ```jsonc
132
+ {
133
+ "servers": {
134
+ "fedramp-20x-mcp": {
135
+ "type": "stdio",
136
+ "command": "python",
137
+ "args": ["-m", "fedramp_20x_mcp"]
138
+ }
139
+ }
140
+ }
141
+ ```
142
+
143
+ **If Python is not in PATH**, update the command to use your virtual environment's Python:
144
+ ```jsonc
145
+ {
146
+ "servers": {
147
+ "fedramp-20x-mcp": {
148
+ "type": "stdio",
149
+ "command": "${workspaceFolder}/.venv/Scripts/python.exe", // Windows
150
+ // "command": "${workspaceFolder}/.venv/bin/python", // macOS/Linux
151
+ "args": ["-m", "fedramp_20x_mcp"]
152
+ }
153
+ }
154
+ }
155
+ ```
156
+
157
+ **Option B: User-level (Global across all projects)**
158
+
159
+ Add to VS Code User Settings (`settings.json`):
160
+ ```jsonc
161
+ {
162
+ "github.copilot.chat.mcp.servers": {
163
+ "fedramp-20x-mcp": {
164
+ "type": "stdio",
165
+ "command": "python",
166
+ "args": ["-m", "fedramp_20x_mcp"]
167
+ }
168
+ }
169
+ }
170
+ ```
171
+
172
+ **Security Note:** Do NOT use `"alwaysAllow"` in configuration. VS Code will prompt you to grant permissions on first use, which is a security best practice.
173
+
174
+ 3. **Optional: Configure VS Code settings** by copying `.vscode/settings.json.example` to `.vscode/settings.json`
175
+
176
+ 4. **Reload VS Code** to activate the MCP server
177
+
178
+ 5. **Grant permissions** when prompted by VS Code (first use only)
179
+
180
+ 6. **Use with GitHub Copilot Chat**:
181
+ - Open Copilot Chat
182
+ - Ask questions about FedRAMP 20x requirements
183
+ - Use `@workspace` to query specific controls or families
184
+ - Access all 24 tools and 9 prompts
185
+
186
+ ### With Claude Desktop
187
+
188
+ Add this server to your Claude Desktop configuration (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS or `%APPDATA%\Claude\claude_desktop_config.json` on Windows):
189
+
190
+ ```json
191
+ {
192
+ "mcpServers": {
193
+ "fedramp-20x": {
194
+ "command": "uv",
195
+ "args": [
196
+ "--directory",
197
+ "/absolute/path/to/FedRAMP20xMCP",
198
+ "run",
199
+ "fedramp-20x-mcp"
200
+ ]
201
+ }
202
+ }
203
+ }
204
+ ```
205
+
206
+ **Note:** Replace `/absolute/path/to/FedRAMP20xMCP` with your actual installation path.
207
+
208
+ ### With MCP Inspector
209
+
210
+ Test the server using the MCP Inspector:
211
+
212
+ ```bash
213
+ npx @modelcontextprotocol/inspector python -m fedramp_20x_mcp
214
+ ```
215
+
216
+ ## Recommended MCP Server Setup
217
+
218
+ For the best FedRAMP 20x compliance workflow, combine this server with other MCP servers that provide Azure and Microsoft context. Here's a complete configuration that includes Azure integration, Microsoft documentation, and GitHub access.
219
+
220
+ ### Complete .vscode/mcp.json Configuration
221
+
222
+ Create or update `.vscode/mcp.json` in your project with this configuration:
223
+
224
+ ```jsonc
225
+ {
226
+ "servers": {
227
+ // FedRAMP 20x Requirements & Documentation
228
+ "fedramp-20x-mcp": {
229
+ "type": "stdio",
230
+ "command": "${workspaceFolder}/.venv/Scripts/python.exe", // Windows
231
+ // "command": "${workspaceFolder}/.venv/bin/python", // macOS/Linux
232
+ "args": ["-m", "fedramp_20x_mcp"]
233
+ },
234
+
235
+ // Azure Resources & Operations (Official Microsoft MCP Server)
236
+ "azure-mcp": {
237
+ "type": "stdio",
238
+ "command": "npx",
239
+ "args": [
240
+ "-y",
241
+ "@azure/mcp-server-azure"
242
+ ],
243
+ "env": {
244
+ "AZURE_SUBSCRIPTION_ID": "your-subscription-id-here"
245
+ }
246
+ },
247
+
248
+ // Microsoft Documentation (Learn, Azure Docs, API References)
249
+ "microsoft-docs": {
250
+ "type": "stdio",
251
+ "command": "npx",
252
+ "args": [
253
+ "-y",
254
+ "@microsoft/mcp-server-docs"
255
+ ]
256
+ },
257
+
258
+ // GitHub (for Azure samples, Bicep templates, FedRAMP examples)
259
+ "github": {
260
+ "type": "stdio",
261
+ "command": "npx",
262
+ "args": [
263
+ "-y",
264
+ "@modelcontextprotocol/server-github"
265
+ ],
266
+ "env": {
267
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "your-github-token-here"
268
+ }
269
+ }
270
+ }
271
+ }
272
+ ```
273
+
274
+ ### What Each Server Provides
275
+
276
+ **fedramp-20x-mcp** (This Server)
277
+ - 329 FedRAMP 20x requirements
278
+ - 72 Key Security Indicators
279
+ - 50 official definitions
280
+ - Official markdown documentation files
281
+ - Implementation examples and Azure guidance
282
+ - Evidence collection automation tools
283
+ - Compliance validation tools
284
+
285
+ **azure-mcp** (Microsoft Official)
286
+ - Query Azure resources (VMs, databases, networks)
287
+ - Check Azure Policy compliance
288
+ - Review Security Center/Defender alerts
289
+ - Validate configurations against FedRAMP requirements
290
+ - Real-time Azure resource inventory
291
+
292
+ **microsoft-docs**
293
+ - Azure service documentation
294
+ - API references
295
+ - Best practices guides
296
+ - Architecture patterns
297
+ - Security baselines
298
+
299
+ **github**
300
+ - Access Azure Quick Start templates
301
+ - FedRAMP Bicep/Terraform examples
302
+ - Azure sample applications
303
+ - Community compliance patterns
304
+
305
+ ### Setup Steps
306
+
307
+ 1. **Configure Azure Authentication** (for azure-mcp):
308
+ ```bash
309
+ # Install Azure CLI if not already installed
310
+ # Login to Azure
311
+ az login
312
+
313
+ # Set your subscription
314
+ az account set --subscription "your-subscription-id"
315
+
316
+ # Add subscription ID to mcp.json
317
+ ```
318
+
319
+ 2. **Configure GitHub Token** (for github):
320
+ - Go to https://github.com/settings/tokens
321
+ - Create a Personal Access Token with `repo` scope
322
+ - Add token to mcp.json `GITHUB_PERSONAL_ACCESS_TOKEN`
323
+
324
+ 3. **Reload VS Code** to activate all servers
325
+
326
+ 4. **Grant Permissions** when VS Code prompts (first use)
327
+
328
+ ### Example Workflow with Multiple Servers
329
+
330
+ ```
331
+ User: "Check if my Azure Key Vault configuration meets FedRAMP KSI-IAM-06 requirements"
332
+
333
+ AI Assistant uses:
334
+ 1. fedramp-20x-mcp → Get KSI-IAM-06 requirements
335
+ 2. azure-mcp → Query actual Key Vault configuration
336
+ 3. microsoft-docs → Get Azure Key Vault security best practices
337
+ 4. Returns compliance analysis with gaps and remediation steps
338
+ ```
339
+
340
+ ### Simplified Setup (FedRAMP Only)
341
+
342
+ If you only want FedRAMP requirements without Azure integration:
343
+
344
+ ```jsonc
345
+ {
346
+ "servers": {
347
+ "fedramp-20x-mcp": {
348
+ "type": "stdio",
349
+ "command": "${workspaceFolder}/.venv/Scripts/python.exe",
350
+ "args": ["-m", "fedramp_20x_mcp"]
351
+ }
352
+ }
353
+ }
354
+ ```
355
+
356
+ ## Available Tools
357
+
358
+ The server provides **26 tools** organized into the following categories:
359
+
360
+ **Core Tools (8):** Query requirements, definitions, and KSIs
361
+ **Documentation Tools (3):** Search and retrieve FedRAMP documentation
362
+ **Enhancement Tools (6):** Implementation examples, dependencies, effort estimation
363
+ **Export Tools (3):** Excel/CSV export and KSI specification generation
364
+ **Planning Tools (1):** Generate strategic implementation questions
365
+ **Evidence Collection Automation Tools (3):** Infrastructure code, collection code, architecture guidance
366
+ **Implementation Mapping Tools (2):** KSI family matrices and step-by-step implementation checklists
367
+
368
+ ### get_control
369
+ Get detailed information about a specific FedRAMP requirement or control.
370
+
371
+ **Parameters:**
372
+ - `control_id` (string): The requirement identifier (e.g., "FRD-ALL-01", "KSI-AFR-01")
373
+
374
+ ### list_family_controls
375
+ List all requirements within a specific family.
376
+
377
+ **Parameters:**
378
+ - `family` (string): The family identifier (e.g., "FRD", "KSI", "MAS")
379
+
380
+ ### search_requirements
381
+ Search for requirements containing specific keywords.
382
+
383
+ **Parameters:**
384
+ - `keywords` (string): Keywords to search for in requirement text
385
+
386
+ ### get_definition
387
+ Get the FedRAMP definition for a specific term.
388
+
389
+ **Parameters:**
390
+ - `term` (string): The term to look up (e.g., "vulnerability", "cloud service offering")
391
+
392
+ ### list_definitions
393
+ List all FedRAMP definitions with their terms.
394
+
395
+ **Returns:** Complete list of all FedRAMP definition terms
396
+
397
+ ### search_definitions
398
+ Search FedRAMP definitions by keywords.
399
+
400
+ **Parameters:**
401
+ - `keywords` (string): Keywords to search for in definitions
402
+
403
+ ### get_ksi
404
+ Get detailed information about a specific Key Security Indicator.
405
+
406
+ **Parameters:**
407
+ - `ksi_id` (string): The KSI identifier (e.g., "KSI-AFR-01")
408
+
409
+ ### list_ksi
410
+ List all Key Security Indicators.
411
+
412
+ **Returns:** Complete list of all Key Security Indicators with their names
413
+
414
+ ### compare_with_rev4
415
+ Compare FedRAMP 20x with Rev 4/Rev 5 requirements for specific areas.
416
+
417
+ **Parameters:**
418
+ - `requirement_area` (string): Area to compare (e.g., "continuous monitoring", "vulnerability management", "authorization boundary", "evidence collection", "change management", "incident response")
419
+
420
+ ### get_implementation_examples
421
+ Get practical implementation examples for specific requirements.
422
+
423
+ **Parameters:**
424
+ - `requirement_id` (string): The requirement identifier (e.g., "KSI-IAM-01", "FRR-VDR-01")
425
+
426
+ ### check_requirement_dependencies
427
+ Check dependencies between FedRAMP 20x requirements.
428
+
429
+ **Parameters:**
430
+ - `requirement_id` (string): The requirement identifier to check dependencies for
431
+
432
+ ### estimate_implementation_effort
433
+ Estimate implementation effort for specific requirements.
434
+
435
+ **Parameters:**
436
+ - `requirement_id` (string): The requirement identifier to estimate effort for
437
+
438
+ ### get_cloud_native_guidance
439
+ Get cloud-native implementation guidance for specific Azure and multi-cloud technologies.
440
+
441
+ **Parameters:**
442
+ - `technology` (string): Technology to get guidance for (e.g., "kubernetes", "containers", "serverless", "terraform")
443
+
444
+ **Note:** All cloud examples and best practices prioritize Azure services (AKS, Azure Functions, Key Vault, Bicep, etc.)
445
+
446
+ ### validate_architecture
447
+ Validate a system architecture against FedRAMP 20x requirements.
448
+
449
+ **Parameters:**
450
+ - `architecture_description` (string): Description of the architecture to validate
451
+
452
+ ### search_documentation
453
+ Search FedRAMP official documentation markdown files for specific keywords.
454
+
455
+ **Parameters:**
456
+ - `keywords` (string): Keywords to search for in documentation
457
+
458
+ **Returns:** Matching documentation sections with context from all available markdown files
459
+
460
+ **Note:** Automatically loads all markdown files from the docs directory, so new documentation is always searchable.
461
+
462
+ ### get_documentation_file
463
+ Get the full content of a specific FedRAMP documentation file.
464
+
465
+ **Parameters:**
466
+ - `filename` (string): The markdown filename (e.g., "overview.md", "key-security-indicators.md")
467
+
468
+ **Returns:** Full markdown content of the documentation file
469
+
470
+ ### list_documentation_files
471
+ List all available FedRAMP documentation files.
472
+
473
+ **Returns:** Complete list of all markdown documentation files dynamically discovered from the repository
474
+
475
+ ### export_to_excel
476
+ Export FedRAMP 20x data to Excel files for offline analysis and reporting.
477
+
478
+ **Parameters:**
479
+ - `export_type` (string): Type of data to export:
480
+ - `"ksi"` - All 72 Key Security Indicators
481
+ - `"all_requirements"` - All 329 requirements across all families
482
+ - `"definitions"` - All FedRAMP term definitions
483
+ - `output_path` (string, optional): Custom output path. If not provided, saves to Downloads folder
484
+
485
+ **Returns:** Path to the generated Excel file with professional formatting (styled headers, borders, frozen panes)
486
+
487
+ **KSI Export Columns:**
488
+ 1. **KSI ID** - Unique identifier (e.g., KSI-AFR-01)
489
+ 2. **Name** - KSI name
490
+ 3. **Category** - Control family category
491
+ 4. **Status** - Active or Retired
492
+ 5. **Statement** - Full requirement statement
493
+ 6. **Note** - Additional information (e.g., supersession notes for retired KSIs)
494
+ 7. **NIST 800-53 Controls** - Related security controls with titles
495
+ 8. **Reference** - Reference document name (if applicable)
496
+ 9. **Reference URL** - Link to FedRAMP documentation (if applicable)
497
+ 10. **Impact Levels** - Applicable levels (Low, Moderate, High)
498
+
499
+ **All Requirements Export Columns:**
500
+ 1. **Requirement ID** - Unique identifier
501
+ 2. **Family** - Control family
502
+ 3. **Term/Name** - Requirement name
503
+ 4. **Description** - Full description
504
+ 5. **Document** - Source document
505
+
506
+ **Definitions Export Columns:**
507
+ 1. **Term** - FedRAMP term
508
+ 2. **Definition** - Term definition
509
+ 3. **Notes** - Additional context
510
+ 4. **References** - Related documentation
511
+
512
+ **Example usage:**
513
+ - Export all KSIs: `export_to_excel("ksi")`
514
+ - Export all requirements: `export_to_excel("all_requirements")`
515
+ - Export definitions: `export_to_excel("definitions")`
516
+
517
+ ### export_to_csv
518
+ Export FedRAMP 20x data to CSV files for data analysis and spreadsheet imports.
519
+
520
+ **Parameters:**
521
+ - `export_type` (string): Type of data to export:
522
+ - `"ksi"` - All 72 Key Security Indicators
523
+ - `"all_requirements"` - All 329 requirements across all families
524
+ - `"definitions"` - All FedRAMP term definitions
525
+ - `output_path` (string, optional): Custom output path. If not provided, saves to Downloads folder
526
+
527
+ **Returns:** Path to the generated CSV file
528
+
529
+ **Columns:** Same structure as Excel export (see above for detailed column descriptions)
530
+
531
+ **Example usage:**
532
+ - Export all KSIs: `export_to_csv("ksi")`
533
+ - Export all requirements: `export_to_csv("all_requirements")`
534
+ - Export definitions: `export_to_csv("definitions")`
535
+
536
+ ### generate_ksi_specification
537
+ Generate a comprehensive product specification Word document for a KSI to guide engineering implementation and planning.
538
+
539
+ **Parameters:**
540
+ - `ksi_id` (string): The KSI identifier (e.g., "KSI-AFR-01")
541
+ - `evidence_collection_strategy` (string): High-level evidence collection strategy description provided by the user
542
+ - `output_path` (string, optional): Custom output path. If not provided, saves to Downloads folder
543
+
544
+ **Returns:** Path to the generated Word (.docx) document
545
+
546
+ **Document Contents:**
547
+ - **Metadata**: KSI ID, category, impact levels, status, date
548
+ - **Overview**: Purpose and scope aligned with FedRAMP 20x
549
+ - **Requirement Statement**: Full KSI requirement text
550
+ - **NIST 800-53 Controls**: Related security controls with titles
551
+ - **Azure-First Implementation**: Recommended Azure services, IaC guidance, automation strategies
552
+ - **Evidence Collection**: User-defined strategy + recommended evidence types and flexible collection schedule
553
+ - **5-Phase Implementation Plan**: Requirements analysis → Design → Implementation → Testing → Documentation (engineering teams determine timelines)
554
+ - **Team Roles**: Cloud architect, DevOps, security engineer, compliance specialist, etc.
555
+ - **Success Criteria**: Measurable outcomes for implementation validation
556
+ - **Risks and Mitigation**: Common risks with Azure-specific mitigation strategies
557
+ - **Resources**: Links to FedRAMP, NIST, Azure documentation
558
+
559
+ **Azure Services Recommended** (context-aware based on KSI category):
560
+ - Microsoft Entra ID, Azure Policy, Azure Monitor (all KSIs)
561
+ - Microsoft Defender for Cloud, Azure Key Vault, Azure Firewall (category-specific)
562
+ - Microsoft Sentinel, Azure Automation, Log Analytics (control-specific)
563
+
564
+ **Example usage:**
565
+ ```
566
+ Generate specification for KSI-AFR-01:
567
+ > generate_ksi_specification with ksi_id="KSI-AFR-01"
568
+ and evidence_collection_strategy="Collect Azure Policy compliance reports quarterly using Azure Automation runbooks. Store evidence in Azure Blob Storage with immutable storage policy."
569
+ ```
570
+
571
+ ### generate_implementation_questions
572
+ Generate strategic interview questions for product managers and engineers to facilitate thoughtful planning discussions.
573
+
574
+ **Parameters:**
575
+ - `requirement_id` (string): The requirement or KSI identifier (e.g., "FRR-CCM-01", "KSI-IAM-01")
576
+
577
+ **Returns:** Comprehensive set of strategic questions organized by stakeholder role
578
+
579
+ **Question Categories:**
580
+ 1. **Strategic Questions for Product Managers** (10 questions):
581
+ - Business Impact & ROI
582
+ - Customer Value & Competitive Position
583
+ - Resource Allocation & Prioritization
584
+ - Dependencies & Phasing
585
+ - Cost-Benefit Analysis
586
+
587
+ 2. **Technical Questions for Engineers** (15 questions):
588
+ - Architecture & Design Decisions
589
+ - Azure Service Selection
590
+ - Automation Opportunities
591
+ - Monitoring & Evidence Collection
592
+ - Operations & Maintenance
593
+
594
+ 3. **Cross-Functional Questions** (10 questions):
595
+ - Security & Compliance Integration
596
+ - User Experience Impact
597
+ - Training & Support Needs
598
+ - Incident Response Alignment
599
+
600
+ 4. **Azure-Specific Considerations** (dynamic, up to 20 questions):
601
+ - Microsoft Entra ID configuration
602
+ - Azure RBAC and Conditional Access
603
+ - Log Analytics and Sentinel integration
604
+ - Azure Policy and governance
605
+ - Defender for Cloud setup
606
+ - Key Vault and encryption strategy
607
+
608
+ **Additional Guidance:**
609
+ - Decision Framework (5 must-answer questions before implementation)
610
+ - Success Criteria (5 measurable outcomes)
611
+ - Red Flags (5 warning signs to watch for)
612
+ - Next Steps (9-phase implementation approach)
613
+ - Recommended Resources (Microsoft docs, FedRAMP resources, community)
614
+
615
+ **Purpose:** Help teams think deeply about implementation considerations, trade-offs, and success criteria before committing resources. Questions are designed to facilitate planning sessions, design reviews, and stakeholder alignment.
616
+
617
+ ### get_infrastructure_code_for_ksi
618
+ Generate Infrastructure as Code templates (Bicep or Terraform) for automated evidence collection infrastructure.
619
+
620
+ **Parameters:**
621
+ - `ksi_id` (string): The Key Security Indicator identifier (e.g., "KSI-IAM-01", "KSI-MLA-01")
622
+ - `infrastructure_type` (string): Either "bicep" or "terraform"
623
+
624
+ **Returns:** Complete IaC templates for deploying evidence collection infrastructure
625
+
626
+ **Supported KSI Families:**
627
+ - **IAM (Identity and Access Management)**: Microsoft Entra ID, Log Analytics workspaces, diagnostic settings, automation accounts
628
+ - **MLA (Monitoring, Logging, and Auditing)**: Log Analytics workspaces, Azure Sentinel, diagnostic settings, alert rules
629
+ - **AFR (Audit and Financial Reporting)**: Storage accounts with immutability, event subscriptions, audit logs
630
+ - **CNA (Change Notification and Approval)**: Event Grid topics, Logic Apps, DevOps pipelines, change tracking
631
+ - **RPL (Release Pipeline)**: Azure DevOps pipelines, deployment slots, rollback capabilities, approval gates
632
+ - **SVC (Service and Vulnerability Management)**: Defender for Cloud, security assessments, compliance dashboards
633
+
634
+ **Example Usage:**
635
+ ```
636
+ > get_infrastructure_code_for_ksi with ksi_id="KSI-IAM-01" and infrastructure_type="bicep"
637
+ ```
638
+
639
+ **Output Includes:**
640
+ - Azure resource definitions (Log Analytics, Storage, Event Grid, etc.)
641
+ - Diagnostic settings for evidence collection
642
+ - Retention policies and immutability
643
+ - Integration with Azure Monitor and Sentinel
644
+ - Automation for evidence gathering
645
+ - RBAC roles and permissions
646
+
647
+ ### get_evidence_collection_code
648
+ Generate business logic code (Python, C#, or PowerShell) for collecting and storing KSI evidence programmatically.
649
+
650
+ **Parameters:**
651
+ - `ksi_id` (string): The Key Security Indicator identifier (e.g., "KSI-IAM-01")
652
+ - `language` (string): Either "python", "csharp", or "powershell"
653
+
654
+ **Returns:** Complete code examples with authentication, evidence collection, and storage
655
+
656
+ **Code Features:**
657
+ - **Authentication**: Azure DefaultAzureCredential pattern for managed identity or local development
658
+ - **Evidence Collection**: SDKs for Microsoft Graph API, Azure Resource Manager, Azure Monitor
659
+ - **Evidence Storage**: Save to Azure Blob Storage with immutability and metadata tagging
660
+ - **Error Handling**: Comprehensive try-catch patterns and logging
661
+ - **Documentation**: Inline comments explaining each step
662
+
663
+ **Supported Languages:**
664
+ - **Python**: Uses azure-identity, azure-storage-blob, azure-monitor-query, msgraph-sdk
665
+ - **C#**: Uses Azure.Identity, Azure.Storage.Blobs, Azure.Monitor.Query, Microsoft.Graph
666
+ - **PowerShell**: Uses Az.Accounts, Az.Storage, Az.Monitor, Microsoft.Graph modules
667
+
668
+ **Example Usage:**
669
+ ```
670
+ > get_evidence_collection_code with ksi_id="KSI-MLA-01" and language="python"
671
+ ```
672
+
673
+ **Output Includes:**
674
+ - SDK imports and authentication setup
675
+ - Evidence collection logic specific to the KSI
676
+ - JSON formatting and metadata tagging
677
+ - Blob storage upload with immutability
678
+ - Error handling and retry logic
679
+
680
+ ### get_evidence_automation_architecture
681
+ Get comprehensive architecture guidance for automated evidence collection systems.
682
+
683
+ **Parameters:**
684
+ - `scope` (string): Architecture scope - "minimal", "single-ksi", "category", or "all"
685
+
686
+ **Returns:** Complete architecture patterns with components, data flows, and implementation guidance
687
+
688
+ **Architecture Scopes:**
689
+ 1. **minimal**: Quick-start architecture for pilot projects
690
+ - Single Log Analytics workspace
691
+ - Azure Function for scheduled evidence collection
692
+ - Blob storage with basic retention
693
+ - Event Grid for notifications
694
+ - Estimated ~$100-200/month
695
+
696
+ 2. **single-ksi**: Production architecture for one KSI
697
+ - Dedicated evidence collection infrastructure
698
+ - Azure Functions with monitoring
699
+ - Managed identities for security
700
+ - Sentinel integration
701
+ - Estimated ~$300-500/month
702
+
703
+ 3. **category**: Enterprise architecture for one KSI category (IAM, MLA, etc.)
704
+ - Category-specific evidence collectors
705
+ - Centralized evidence storage
706
+ - Automated reporting dashboards
707
+ - Integration with Azure Policy
708
+ - Estimated ~$1,000-2,000/month
709
+
710
+ 4. **all**: Complete enterprise architecture for all 72 KSIs
711
+ - Multi-region evidence collection
712
+ - High-availability design
713
+ - Automated compliance reporting
714
+ - Integration with GRC tools
715
+ - Estimated ~$5,000-10,000/month
716
+
717
+ **Example Usage:**
718
+ ```
719
+ > get_evidence_automation_architecture with scope="all"
720
+ ```
721
+
722
+ **Output Includes:**
723
+ - Component diagram and descriptions
724
+ - Data flow architecture
725
+ - Security and identity patterns
726
+ - Monitoring and alerting strategy
727
+ - Evidence storage and retention
728
+ - Disaster recovery considerations
729
+ - Integration patterns with Azure services
730
+ - Scaling recommendations
731
+ - Implementation steps
732
+
733
+ ## Available Prompts
734
+
735
+ The server provides **9 prompts** for FedRAMP compliance workflows:
736
+ > generate_implementation_questions with requirement_id="FRR-CCM-01"
737
+ ### Major Comprehensive Prompts
738
+ **control_implementation** - Detailed guidance for implementing specific NIST 800-53 controls
739
+
740
+ **risk_assessment** - Framework for conducting FedRAMP-aligned risk assessments
741
+
742
+ **continuous_monitoring** - Guide for establishing continuous monitoring programs
743
+
744
+ **boundary_definition** - Help define authorization boundaries and interconnections
745
+
746
+ ### Major Comprehensive Prompts
747
+
748
+ **initial_assessment_roadmap** - Complete 6-phase roadmap for FedRAMP 20x authorization with checklists, deliverables, and critical success factors (engineering teams determine timelines)
749
+
750
+ **quarterly_review_checklist** - Comprehensive checklist for FedRAMP 20x quarterly reviews (FRR-CCM-QR) covering all 72 KSIs, vulnerability review, and change review
751
+
752
+ **api_design_guide** - Complete guide for Authorization Data Sharing API (FRR-ADS) with endpoints, authentication, OSCAL formats, and examples
753
+
754
+ **ksi_implementation_priorities** - Prioritized guide for implementing all 72 Key Security Indicators across 8 priority phases with dependency mapping (engineering teams determine rollout timelines)
755
+
756
+ **vendor_evaluation** - Comprehensive vendor assessment framework with category-specific questions, scorecard template, and evaluation criteria
757
+
758
+ **documentation_generator** - OSCAL SSP templates, procedure templates (VDR, ICP, SCN), and KSI implementation documentation templates
759
+
760
+ **migration_from_rev5** - Detailed migration plan from FedRAMP Rev 5 to 20x with 7-phase approach, gap analysis, and requirement mapping (teams determine timelines and budgets)
761
+
762
+ **audit_preparation** - Comprehensive guide for FedRAMP 20x assessment preparation with evidence gathering, common findings, and interview prep (teams determine preparation timeline)
763
+
764
+ **azure_ksi_automation** - **Complete guide for implementing all 72 KSIs using Microsoft, Azure, and M365 capabilities** including PowerShell scripts, Azure CLI commands, Microsoft Graph API integration, KQL queries, Azure Functions/Logic Apps, evidence collection framework, and integration with Defender suite, Entra ID, Key Vault, and Sentinel
765
+
766
+ ## Data Source
767
+
768
+ Data is fetched from the official FedRAMP repository:
769
+ https://github.com/FedRAMP/docs/tree/main/data
770
+
771
+ ## Development
772
+
773
+ ### Running Tests
774
+
775
+ The project includes comprehensive test coverage across all functionality:
776
+
777
+ ```bash
778
+ # Run all tests
779
+ pytest
780
+
781
+ # Run with coverage report
782
+ pytest --cov=src --cov-report=html
783
+
784
+ # Run specific test suites
785
+ python tests/test_loader.py # Data loading (329 requirements)
786
+ python tests/test_definitions.py # Definitions & KSIs (50 + 72)
787
+ python tests/test_docs_integration.py # Documentation (15 files)
788
+ python tests/test_implementation_questions.py # Strategic questions
789
+ python tests/test_tool_registration.py # Architecture validation (24 tools)
790
+ python tests/test_evidence_automation.py # IaC generation (Bicep/Terraform/Code)
791
+ python tests/test_all_tools.py # All tools comprehensive test
792
+ ```
793
+
794
+ **Test Coverage:**
795
+ - ✅ **Data Loading:** 329 requirements from 12 documents
796
+ - ✅ **Definitions:** 50 FedRAMP terms
797
+ - ✅ **KSIs:** 72 Key Security Indicators
798
+ - ✅ **Documentation:** 15 official FedRAMP markdown files
799
+ - ✅ **Tool Registration:** All 24 tools across 7 modules
800
+ - ✅ **IaC Generation:** Bicep & Terraform templates for IAM, MLA, AFR families
801
+ - ✅ **Code Generation:** Python, C#, PowerShell evidence collection code
802
+ - ✅ **Template Variations:** Family-specific customization validated
803
+
804
+ ### Project Structure
805
+
806
+ ```
807
+ FedRAMP20xMCP/
808
+ ├── src/
809
+ │ └── fedramp_20x_mcp/ # Main package
810
+ │ ├── __init__.py # Package initialization
811
+ │ ├── __main__.py # Entry point for python -m
812
+ │ ├── server.py # MCP server entry point (270 lines, 15 prompts)
813
+ │ ├── data_loader.py # FedRAMP data fetching and caching
814
+ │ ├── templates/ # Infrastructure & code templates
815
+ │ │ ├── __init__.py # Template loader functions
816
+ │ │ ├── bicep/ # Bicep IaC templates (7 files)
817
+ │ │ ├── terraform/ # Terraform IaC templates (6 files)
818
+ │ │ └── code/ # Code generation templates (7 files)
819
+ │ ├── prompts/ # Prompt templates (15 files)
820
+ │ │ └── __init__.py # Prompt loader function
821
+ │ ├── tools/ # Tool modules (24 tools across 7 modules)
822
+ │ │ ├── __init__.py # Tool registration system
823
+ │ │ ├── requirements.py # Core requirements tools (3)
824
+ │ │ ├── definitions.py # Definition lookup tools (3)
825
+ │ │ ├── ksi.py # KSI tools (2)
826
+ │ │ ├── documentation.py # Documentation tools (3)
827
+ │ │ ├── export.py # Export tools (3)
828
+ │ │ ├── enhancements.py # Enhancement tools (7)
829
+ │ │ └── evidence.py # Evidence automation tools (3)
830
+ │ └── __fedramp_cache__/ # Runtime cache for FedRAMP data
831
+ ├── tests/ # Test suite
832
+ │ ├── __init__.py
833
+ │ ├── test_loader.py # Data loader tests (329 requirements)
834
+ │ ├── test_definitions.py # Definition tool tests (50 definitions, 72 KSIs)
835
+ │ ├── test_docs_integration.py # Documentation integration tests (15 files)
836
+ │ ├── test_implementation_questions.py # Implementation questions tests
837
+ │ ├── test_tool_registration.py # Tool architecture validation (24 tools, 7 modules)
838
+ │ ├── test_evidence_automation.py # IaC generation tests (Bicep/Terraform/Python/C#/PowerShell)
839
+ │ └── test_all_tools.py # Comprehensive tool tests (all 24 tools)
840
+ ├── .github/
841
+ │ ├── workflows/ # CI/CD workflows
842
+ │ │ ├── test.yml # Test workflow (multi-platform)
843
+ │ │ ├── publish.yml # PyPI & MCP Registry publishing
844
+ │ │ └── release.yml # GitHub release workflow
845
+ │ └── copilot-instructions.md # GitHub Copilot context
846
+ ├── .vscode/
847
+ │ ├── mcp.json # VS Code MCP configuration
848
+ │ └── settings.json.example
849
+ ├── pyproject.toml # Project metadata and dependencies
850
+ ├── server.json # MCP Registry metadata
851
+ ├── uv.lock # UV dependency lock file
852
+ ├── LICENSE # MIT License
853
+ ├── README.md # This file
854
+ ├── CONTRIBUTING.md # Contribution guidelines
855
+ └── .gitignore # Git exclusions (includes MCP tokens)
856
+ ```
857
+
858
+ **Architecture Highlights:**
859
+ - **Modular Design:** Tools organized into 7 logical modules by functionality
860
+ - **Template System:** Reusable Bicep/Terraform templates for IaC generation
861
+ - **Prompt Templates:** External prompt files for easy updates without code changes
862
+ - **Clean Separation:** 97.2% reduction in main server.py (9,810 → 270 lines)
863
+ - **Registration Pattern:** Tools use `*_impl` functions with centralized registration
864
+
865
+ ## License
866
+
867
+ MIT License - see [LICENSE](LICENSE) file for details.
868
+
869
+ This project is open source and contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
870
+
871
+ The FedRAMP data is provided by the U.S. General Services Administration as public domain content.
872
+
873
+ ## References
874
+
875
+ - [Model Context Protocol Documentation](https://modelcontextprotocol.io/)
876
+ - [FedRAMP Official Website](https://www.fedramp.gov/)
877
+ - [FedRAMP Data Repository](https://github.com/FedRAMP/docs)