security-controls-mcp 0.3.4__py3-none-any.whl → 0.4.0__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.
- security_controls_mcp/__init__.py +1 -1
- security_controls_mcp/__main__.py +8 -2
- security_controls_mcp/data/framework-to-scf.json +125442 -16386
- security_controls_mcp/data/scf-controls.json +463821 -43336
- security_controls_mcp/data_loader.py +344 -30
- {security_controls_mcp-0.3.4.dist-info → security_controls_mcp-0.4.0.dist-info}/METADATA +68 -20
- {security_controls_mcp-0.3.4.dist-info → security_controls_mcp-0.4.0.dist-info}/RECORD +12 -12
- security_controls_mcp-0.4.0.dist-info/entry_points.txt +3 -0
- security_controls_mcp-0.3.4.dist-info/entry_points.txt +0 -2
- {security_controls_mcp-0.3.4.dist-info → security_controls_mcp-0.4.0.dist-info}/WHEEL +0 -0
- {security_controls_mcp-0.3.4.dist-info → security_controls_mcp-0.4.0.dist-info}/licenses/LICENSE +0 -0
- {security_controls_mcp-0.3.4.dist-info → security_controls_mcp-0.4.0.dist-info}/licenses/LICENSE-DATA.md +0 -0
- {security_controls_mcp-0.3.4.dist-info → security_controls_mcp-0.4.0.dist-info}/top_level.txt +0 -0
|
@@ -13,6 +13,7 @@ class SCFData:
|
|
|
13
13
|
self.controls_by_id: dict[str, dict[str, Any]] = {}
|
|
14
14
|
self.framework_to_scf: dict[str, dict[str, list[str]]] = {}
|
|
15
15
|
self.frameworks: dict[str, dict[str, Any]] = {}
|
|
16
|
+
self.framework_categories: dict[str, list[str]] = {}
|
|
16
17
|
self._load_data()
|
|
17
18
|
|
|
18
19
|
def _load_data(self):
|
|
@@ -36,51 +37,364 @@ class SCFData:
|
|
|
36
37
|
|
|
37
38
|
def _build_framework_metadata(self):
|
|
38
39
|
"""Build framework metadata from controls."""
|
|
39
|
-
#
|
|
40
|
+
# Complete framework display names for all 261 frameworks in SCF 2025.4
|
|
40
41
|
framework_names = {
|
|
41
|
-
#
|
|
42
|
-
"
|
|
43
|
-
"
|
|
42
|
+
# === TIER 0: AI GOVERNANCE ===
|
|
43
|
+
"iso_42001_2023": "ISO/IEC 42001:2023 (AI Management System)",
|
|
44
|
+
"nist_ai_rmf_1.0": "NIST AI 100-1 (AI Risk Management Framework) 1.0",
|
|
45
|
+
"nist_ai_600_1": "NIST AI 600-1 (Generative AI Profile)",
|
|
46
|
+
"eu_ai_act": "EU AI Act (Regulation 2024/1689)",
|
|
47
|
+
"eu_cyber_resilience_act": "EU Cyber Resilience Act",
|
|
48
|
+
"eu_cra_annexes": "EU Cyber Resilience Act Annexes",
|
|
49
|
+
|
|
50
|
+
# === CORE FRAMEWORKS ===
|
|
51
|
+
# SOC 2 / Audit
|
|
52
|
+
"soc_2_tsc": "AICPA TSC 2017:2022 (SOC 2)",
|
|
53
|
+
|
|
54
|
+
# CIS Controls
|
|
55
|
+
"cis_csc_8.1": "CIS Critical Security Controls v8.1",
|
|
56
|
+
"cis_csc_8.1_ig1": "CIS CSC v8.1 Implementation Group 1",
|
|
57
|
+
"cis_csc_8.1_ig2": "CIS CSC v8.1 Implementation Group 2",
|
|
58
|
+
"cis_csc_8.1_ig3": "CIS CSC v8.1 Implementation Group 3",
|
|
59
|
+
|
|
60
|
+
# Governance
|
|
61
|
+
"cobit_2019": "COBIT 2019",
|
|
62
|
+
"coso_2017": "COSO 2017",
|
|
63
|
+
|
|
64
|
+
# === CLOUD SECURITY ===
|
|
65
|
+
"csa_ccm_4": "CSA Cloud Controls Matrix v4",
|
|
66
|
+
"csa_iot_scf_2": "CSA IoT Security Controls Framework 2",
|
|
67
|
+
"germany_c5_2020": "Germany C5:2020 (Cloud)",
|
|
68
|
+
|
|
69
|
+
# === ISO STANDARDS ===
|
|
44
70
|
"iso_27001_2022": "ISO/IEC 27001:2022",
|
|
45
71
|
"iso_27002_2022": "ISO/IEC 27002:2022",
|
|
46
|
-
"
|
|
47
|
-
"
|
|
72
|
+
"iso_27017_2015": "ISO/IEC 27017:2015 (Cloud Security)",
|
|
73
|
+
"iso_27018_2014": "ISO/IEC 27018:2014 (Cloud Privacy)",
|
|
74
|
+
"iso_27701_2025": "ISO/IEC 27701:2025 (Privacy Extension)",
|
|
75
|
+
"iso_22301_2019": "ISO/IEC 22301:2019 (Business Continuity)",
|
|
76
|
+
"iso_29100_2024": "ISO/IEC 29100:2024 (Privacy Framework)",
|
|
77
|
+
"iso_31000_2009": "ISO 31000:2009 (Risk Management)",
|
|
78
|
+
"iso_31010_2009": "ISO 31010:2009 (Risk Assessment)",
|
|
79
|
+
"iso_sae_21434_2021": "ISO/SAE 21434:2021 (Automotive Cybersecurity)",
|
|
80
|
+
|
|
81
|
+
# === INDUSTRIAL / OT ===
|
|
82
|
+
"iec_62443_4_2_2019": "IEC 62443-4-2:2019 (Industrial Security)",
|
|
83
|
+
"iec_tr_60601_4_5_2021": "IEC TR 60601-4-5:2021 (Medical IT)",
|
|
84
|
+
"nerc_cip_2024": "NERC CIP 2024",
|
|
85
|
+
"nist_800_82_r3_low": "NIST SP 800-82 R3 OT Overlay (Low)",
|
|
86
|
+
"nist_800_82_r3_moderate": "NIST SP 800-82 R3 OT Overlay (Moderate)",
|
|
87
|
+
"nist_800_82_r3_high": "NIST SP 800-82 R3 OT Overlay (High)",
|
|
88
|
+
"imo_maritime_cyber": "IMO Maritime Cyber Risk Management",
|
|
89
|
+
|
|
90
|
+
# === PRIVACY FRAMEWORKS ===
|
|
91
|
+
"gdpr": "General Data Protection Regulation (GDPR)",
|
|
92
|
+
"nist_privacy_framework_1.0": "NIST Privacy Framework 1.0",
|
|
93
|
+
"apec_privacy_2015": "APEC Privacy Framework 2015",
|
|
94
|
+
"gapp": "Generally Accepted Privacy Principles (GAPP)",
|
|
95
|
+
"oecd_privacy": "OECD Privacy Principles",
|
|
96
|
+
"us_dpf": "US Data Privacy Framework",
|
|
97
|
+
|
|
98
|
+
# === NIST FRAMEWORKS ===
|
|
99
|
+
"nist_csf_2.0": "NIST Cybersecurity Framework 2.0",
|
|
100
|
+
"nist_800_37_r2": "NIST SP 800-37 R2 (Risk Management Framework)",
|
|
101
|
+
"nist_800_39": "NIST SP 800-39 (Risk Management)",
|
|
102
|
+
"nist_800_53_r4": "NIST SP 800-53 R4",
|
|
103
|
+
"nist_800_53_r4_low": "NIST SP 800-53 R4 (Low)",
|
|
104
|
+
"nist_800_53_r4_moderate": "NIST SP 800-53 R4 (Moderate)",
|
|
105
|
+
"nist_800_53_r4_high": "NIST SP 800-53 R4 (High)",
|
|
106
|
+
"nist_800_53_r5": "NIST SP 800-53 R5",
|
|
107
|
+
"nist_800_53b_r5_privacy": "NIST SP 800-53B R5 (Privacy)",
|
|
108
|
+
"nist_800_53b_r5_low": "NIST SP 800-53B R5 (Low)",
|
|
109
|
+
"nist_800_53b_r5_moderate": "NIST SP 800-53B R5 (Moderate)",
|
|
110
|
+
"nist_800_53b_r5_high": "NIST SP 800-53B R5 (High)",
|
|
111
|
+
"nist_800_53_r5_noc": "NIST SP 800-53 R5 (NOC)",
|
|
112
|
+
"nist_800_63b": "NIST SP 800-63B (Digital Identity)",
|
|
113
|
+
"nist_800_160": "NIST SP 800-160 (Systems Security Engineering)",
|
|
114
|
+
"nist_800_161_r1": "NIST SP 800-161 R1 (Supply Chain)",
|
|
115
|
+
"nist_800_161_r1_baseline": "NIST SP 800-161 R1 C-SCRM Baseline",
|
|
116
|
+
"nist_800_161_r1_flowdown": "NIST SP 800-161 R1 Flow Down",
|
|
117
|
+
"nist_800_161_r1_level1": "NIST SP 800-161 R1 Level 1",
|
|
118
|
+
"nist_800_161_r1_level2": "NIST SP 800-161 R1 Level 2",
|
|
119
|
+
"nist_800_161_r1_level3": "NIST SP 800-161 R1 Level 3",
|
|
120
|
+
"nist_800_171_r2": "NIST SP 800-171 R2 (CUI)",
|
|
121
|
+
"nist_800_171a": "NIST SP 800-171A (Assessment)",
|
|
122
|
+
"nist_800_171_r3": "NIST SP 800-171 R3 (CUI)",
|
|
123
|
+
"nist_800_171a_r3": "NIST SP 800-171A R3 (Assessment)",
|
|
124
|
+
"nist_800_172": "NIST SP 800-172 (Enhanced CUI)",
|
|
125
|
+
"nist_800_207": "NIST SP 800-207 (Zero Trust)",
|
|
126
|
+
"nist_800_218": "NIST SP 800-218 (SSDF)",
|
|
127
|
+
|
|
128
|
+
# === FEDRAMP ===
|
|
129
|
+
"fedramp_r4": "FedRAMP R4",
|
|
130
|
+
"fedramp_r4_low": "FedRAMP R4 (Low)",
|
|
131
|
+
"fedramp_r4_moderate": "FedRAMP R4 (Moderate)",
|
|
132
|
+
"fedramp_r4_high": "FedRAMP R4 (High)",
|
|
133
|
+
"fedramp_r4_lisaas": "FedRAMP R4 (LI-SaaS)",
|
|
134
|
+
"fedramp_r5": "FedRAMP R5",
|
|
135
|
+
"fedramp_r5_low": "FedRAMP R5 (Low)",
|
|
136
|
+
"fedramp_r5_moderate": "FedRAMP R5 (Moderate)",
|
|
137
|
+
"fedramp_r5_high": "FedRAMP R5 (High)",
|
|
138
|
+
"fedramp_r5_lisaas": "FedRAMP R5 (LI-SaaS)",
|
|
139
|
+
|
|
140
|
+
# === GOVRAMP / STATERAMP ===
|
|
141
|
+
"govramp_core": "GovRAMP Core",
|
|
142
|
+
"govramp_low": "GovRAMP Low",
|
|
143
|
+
"govramp_low_plus": "GovRAMP Low+",
|
|
144
|
+
"govramp_moderate": "GovRAMP Moderate",
|
|
145
|
+
"govramp_high": "GovRAMP High",
|
|
146
|
+
|
|
147
|
+
# === CMMC ===
|
|
48
148
|
"cmmc_2.0_level_1": "CMMC 2.0 Level 1",
|
|
149
|
+
"cmmc_2.0_level_1_aos": "CMMC 2.0 Level 1 AOs",
|
|
49
150
|
"cmmc_2.0_level_2": "CMMC 2.0 Level 2",
|
|
50
|
-
"
|
|
151
|
+
"cmmc_2.0_level_3": "CMMC 2.0 Level 3",
|
|
152
|
+
|
|
153
|
+
# === PCI DSS ===
|
|
154
|
+
"pci_dss_4.0.1": "PCI DSS v4.0.1",
|
|
155
|
+
"pci_dss_4.0.1_saq_a": "PCI DSS v4.0.1 SAQ A",
|
|
156
|
+
"pci_dss_4.0.1_saq_a_ep": "PCI DSS v4.0.1 SAQ A-EP",
|
|
157
|
+
"pci_dss_4.0.1_saq_b": "PCI DSS v4.0.1 SAQ B",
|
|
158
|
+
"pci_dss_4.0.1_saq_b_ip": "PCI DSS v4.0.1 SAQ B-IP",
|
|
159
|
+
"pci_dss_4.0.1_saq_c": "PCI DSS v4.0.1 SAQ C",
|
|
160
|
+
"pci_dss_4.0.1_saq_c_vt": "PCI DSS v4.0.1 SAQ C-VT",
|
|
161
|
+
"pci_dss_4.0.1_saq_d_merchant": "PCI DSS v4.0.1 SAQ D (Merchant)",
|
|
162
|
+
"pci_dss_4.0.1_saq_d_sp": "PCI DSS v4.0.1 SAQ D (Service Provider)",
|
|
163
|
+
"pci_dss_4.0.1_saq_p2pe": "PCI DSS v4.0.1 SAQ P2PE",
|
|
164
|
+
|
|
165
|
+
# === HEALTHCARE ===
|
|
166
|
+
"hipaa_security_rule": "HIPAA Security Rule / NIST SP 800-66 R2",
|
|
167
|
+
"hipaa_admin_2013": "HIPAA Administrative Simplification 2013",
|
|
168
|
+
"hipaa_hicp_small": "HIPAA HICP Small Practice",
|
|
169
|
+
"hipaa_hicp_medium": "HIPAA HICP Medium Practice",
|
|
170
|
+
"hipaa_hicp_large": "HIPAA HICP Large Practice",
|
|
171
|
+
"cms_mars_e_2.0": "CMS MARS-E 2.0 (Healthcare Exchanges)",
|
|
172
|
+
"hhs_45_cfr_155_260": "HHS 45 CFR 155.260",
|
|
173
|
+
|
|
174
|
+
# === US FINANCIAL ===
|
|
175
|
+
"sox": "Sarbanes-Oxley Act (SOX)",
|
|
176
|
+
"glba_cfr_314_2023": "GLBA CFR 314 (Dec 2023)",
|
|
177
|
+
"ffiec": "FFIEC Cybersecurity Assessment",
|
|
178
|
+
"us_finra": "US FINRA",
|
|
179
|
+
"sec_cybersecurity_rule": "SEC Cybersecurity Rule",
|
|
180
|
+
"us_facta": "US FACTA",
|
|
181
|
+
"ftc_act": "FTC Act",
|
|
182
|
+
"naic_mdl_668": "NAIC Insurance Data Security Model Law (MDL-668)",
|
|
183
|
+
"fca_crm": "FCA CRM",
|
|
184
|
+
|
|
185
|
+
# === US FEDERAL / DEFENSE ===
|
|
186
|
+
"cjis_5.9.3": "CJIS Security Policy v5.9.3",
|
|
187
|
+
"irs_1075": "IRS Publication 1075",
|
|
188
|
+
"dfars_252_204_70xx": "DFARS 252.204-70xx (Cybersecurity)",
|
|
189
|
+
"far_52_204_21": "FAR 52.204-21 (Basic Safeguarding)",
|
|
190
|
+
"far_52_204_25": "FAR 52.204-25 (NDAA Section 889)",
|
|
191
|
+
"far_52_204_27": "FAR 52.204-27",
|
|
192
|
+
"itar_part_120": "ITAR Part 120",
|
|
193
|
+
"nispom_2020": "NISPOM 2020",
|
|
194
|
+
"us_nnpi": "US NNPI (Unclassified)",
|
|
195
|
+
"nstc_nspm_33": "NSTC NSPM-33",
|
|
196
|
+
"eo_14028": "EO 14028 (Improving Cybersecurity)",
|
|
197
|
+
"dod_zt_roadmap": "DoD Zero Trust Execution Roadmap",
|
|
198
|
+
"dod_ztra_2.0": "DoD Zero Trust Reference Architecture 2.0",
|
|
199
|
+
"dhs_cisa_ssdaf": "DHS CISA SSDAF",
|
|
200
|
+
"dhs_cisa_tic_3.0": "DHS CISA TIC 3.0",
|
|
201
|
+
"dhs_ztcf": "DHS Zero Trust Capability Framework",
|
|
202
|
+
"us_cisa_cpg_2022": "CISA Cross-Sector CPG 2022",
|
|
203
|
+
"us_c2m2_2.1": "US C2M2 2.1 (Capability Maturity)",
|
|
204
|
+
"us_cert_rmm_1.2": "US CERT RMM 1.2 (Resilience)",
|
|
205
|
+
"us_ferpa": "US FERPA (Education Privacy)",
|
|
206
|
+
"us_fipps": "US FIPPs (Fair Information Practice)",
|
|
207
|
+
"us_coppa": "US COPPA (Children's Privacy)",
|
|
208
|
+
"fda_21_cfr_part_11": "FDA 21 CFR Part 11 (Electronic Records)",
|
|
209
|
+
"tsa_dhs_1580_82_2022": "TSA/DHS 1580/82-2022-01",
|
|
210
|
+
"ssa_eiesr_8.0": "SSA EIESR 8.0",
|
|
211
|
+
|
|
212
|
+
# === US STATE LAWS ===
|
|
213
|
+
"us_ca_ccpa_2025": "California CCPA/CPRA 2025",
|
|
214
|
+
"us_ca_sb327": "California SB327 (IoT)",
|
|
215
|
+
"us_ca_sb1386": "California SB1386",
|
|
216
|
+
"nydfs_500_2023": "NY DFS 23 NYCRR 500 (2023 Amendment)",
|
|
217
|
+
"us_ny_shield": "New York SHIELD Act",
|
|
218
|
+
"us_co_cpa": "Colorado Privacy Act",
|
|
219
|
+
"us_va_cdpa_2025": "Virginia CDPA 2025",
|
|
220
|
+
"us_or_cpa": "Oregon Consumer Privacy Act",
|
|
221
|
+
"us_or_646a": "Oregon 646A",
|
|
222
|
+
"us_tn_tipa": "Tennessee TIPA",
|
|
223
|
+
"tx_ramp_level_1": "TX-RAMP Level 1",
|
|
224
|
+
"tx_ramp_level_2": "TX-RAMP Level 2",
|
|
225
|
+
"us_tx_cdpa": "Texas CDPA",
|
|
226
|
+
"us_tx_dir_2.0": "Texas DIR Control Standards 2.0",
|
|
227
|
+
"us_tx_bc521": "Texas BC521",
|
|
228
|
+
"us_tx_sb820": "Texas SB 820",
|
|
229
|
+
"us_tx_sb2610": "Texas SB 2610",
|
|
230
|
+
"us_ma_201_cmr_17": "Massachusetts 201 CMR 17.00",
|
|
231
|
+
"us_il_bipa": "Illinois BIPA (Biometric)",
|
|
232
|
+
"us_il_ipa": "Illinois IPA",
|
|
233
|
+
"us_il_pipa": "Illinois PIPA",
|
|
234
|
+
"us_nv_noge_reg_5": "Nevada NOGE Reg 5",
|
|
235
|
+
"us_nv_sb220": "Nevada SB220",
|
|
236
|
+
"us_ak_pipa": "Alaska PIPA",
|
|
237
|
+
"us_vt_act_171": "Vermont Act 171 of 2018",
|
|
238
|
+
|
|
239
|
+
# === EU REGULATIONS ===
|
|
51
240
|
"dora": "Digital Operational Resilience Act (DORA)",
|
|
52
|
-
"nis2": "
|
|
53
|
-
"
|
|
54
|
-
"
|
|
241
|
+
"nis2": "NIS2 Directive",
|
|
242
|
+
"nis2_annex": "NIS2 Directive Annex",
|
|
243
|
+
"psd2": "PSD2 (Payment Services Directive)",
|
|
244
|
+
"eu_eba_gl_2019_04": "EU EBA GL/2019/04",
|
|
245
|
+
|
|
246
|
+
# === EMEA NATIONAL ===
|
|
247
|
+
"uk_caf_4.0": "UK Cyber Assessment Framework 4.0",
|
|
55
248
|
"uk_cyber_essentials": "UK Cyber Essentials",
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
|
|
249
|
+
"uk_dpa": "UK Data Protection Act",
|
|
250
|
+
"uk_defstan_05_138": "UK DEFSTAN 05-138",
|
|
251
|
+
"uk_cap_1850": "UK CAP 1850",
|
|
252
|
+
"germany": "Germany Cybersecurity",
|
|
253
|
+
"germany_bait": "Germany BAIT (Banking IT)",
|
|
254
|
+
"bsi_200_1": "BSI Standard 200-1",
|
|
255
|
+
"netherlands": "Netherlands Cybersecurity",
|
|
256
|
+
"norway": "Norway Cybersecurity",
|
|
257
|
+
"sweden": "Sweden Cybersecurity",
|
|
258
|
+
"austria": "Austria Cybersecurity",
|
|
259
|
+
"belgium": "Belgium Cybersecurity",
|
|
260
|
+
"ireland": "Ireland Cybersecurity",
|
|
261
|
+
"italy": "Italy Cybersecurity",
|
|
262
|
+
"greece": "Greece Cybersecurity",
|
|
263
|
+
"hungary": "Hungary Cybersecurity",
|
|
264
|
+
"poland": "Poland Cybersecurity",
|
|
265
|
+
"spain_boe_a_2022_7191": "Spain BOE-A-2022-7191",
|
|
266
|
+
"spain_1720_2007": "Spain 1720/2007",
|
|
267
|
+
"spain_311_2022": "Spain 311/2022",
|
|
268
|
+
"spain_ccn_stic_825": "Spain CCN-STIC 825",
|
|
269
|
+
"switzerland": "Switzerland Cybersecurity",
|
|
270
|
+
"turkey": "Turkey Cybersecurity",
|
|
271
|
+
"russia": "Russia Cybersecurity",
|
|
272
|
+
"serbia_87_2018": "Serbia 87/2018",
|
|
273
|
+
"enisa_2.0": "ENISA 2.0",
|
|
274
|
+
|
|
275
|
+
# === MIDDLE EAST / AFRICA ===
|
|
276
|
+
"israel": "Israel Cybersecurity",
|
|
277
|
+
"israel_cdmo_1.0": "Israel CDMO 1.0",
|
|
278
|
+
"saudi_sama_csf_1.0": "Saudi Arabia SAMA CSF 1.0",
|
|
279
|
+
"saudi_cscc_1_2019": "Saudi Arabia CSCC-1 2019",
|
|
280
|
+
"saudi_ecc_1_2018": "Saudi Arabia ECC-1 2018",
|
|
281
|
+
"saudi_otcc_1_2022": "Saudi Arabia OTCC-1 2022",
|
|
282
|
+
"saudi_cgiot_1_2024": "Saudi Arabia IoT CGIoT-1 2024",
|
|
283
|
+
"saudi_pdpl": "Saudi Arabia PDPL",
|
|
284
|
+
"saudi_sacs_002": "Saudi Arabia SACS-002",
|
|
285
|
+
"uae_niaf": "UAE NIAF",
|
|
286
|
+
"qatar_pdppl": "Qatar PDPPL",
|
|
287
|
+
"south_africa": "South Africa (POPIA)",
|
|
288
|
+
"kenya_dpa_2019": "Kenya DPA 2019",
|
|
289
|
+
"nigeria_dpr_2019": "Nigeria DPR 2019",
|
|
290
|
+
|
|
291
|
+
# === APAC ===
|
|
59
292
|
"australia_essential_8": "Australian Essential Eight",
|
|
60
293
|
"australia_ism_2024": "Australian ISM (June 2024)",
|
|
294
|
+
"australia_privacy_act": "Australian Privacy Act",
|
|
295
|
+
"australia_privacy_principles": "Australian Privacy Principles",
|
|
296
|
+
"australia_iot_cop": "Australia IoT Code of Practice",
|
|
297
|
+
"australia_cps_230": "Australia Prudential Standard CPS 230",
|
|
298
|
+
"australia_cps_234": "Australia Prudential Standard CPS 234",
|
|
299
|
+
"singapore": "Singapore Cybersecurity",
|
|
300
|
+
"singapore_cyber_hygiene": "Singapore Cyber Hygiene Practice",
|
|
61
301
|
"singapore_mas_trm_2021": "Singapore MAS TRM 2021",
|
|
62
|
-
|
|
302
|
+
"japan_appi": "Japan APPI",
|
|
303
|
+
"japan_ismap": "Japan ISMAP",
|
|
304
|
+
"china_cybersecurity_law": "China Cybersecurity Law",
|
|
305
|
+
"china_data_security_law": "China Data Security Law",
|
|
306
|
+
"china_privacy_law": "China Privacy Law (PIPL)",
|
|
307
|
+
"china_dnsip": "China DNSIP",
|
|
308
|
+
"hong_kong": "Hong Kong Cybersecurity",
|
|
309
|
+
"india_dpdpa_2023": "India DPDPA 2023",
|
|
310
|
+
"india_itr": "India ITR",
|
|
311
|
+
"india_sebi_cscrf": "India SEBI CSCRF",
|
|
312
|
+
"south_korea": "South Korea Cybersecurity",
|
|
313
|
+
"taiwan": "Taiwan Cybersecurity",
|
|
314
|
+
"malaysia": "Malaysia Cybersecurity",
|
|
315
|
+
"philippines": "Philippines Cybersecurity",
|
|
316
|
+
"nz_hisf_2022": "New Zealand HISF 2022",
|
|
317
|
+
"nz_hisf_suppliers_2023": "New Zealand HISF Suppliers 2023",
|
|
318
|
+
"nz_nzism_3.6": "New Zealand NZISM 3.6",
|
|
319
|
+
"nz_privacy_act_2020": "New Zealand Privacy Act 2020",
|
|
320
|
+
|
|
321
|
+
# === AMERICAS (non-US) ===
|
|
322
|
+
"canada_pipeda": "Canada PIPEDA",
|
|
323
|
+
"canada_csag": "Canada CSAG",
|
|
324
|
+
"canada_osfi_b13": "Canada OSFI B-13",
|
|
325
|
+
"canada_itsp_10_171": "Canada ITSP-10-171",
|
|
326
|
+
"brazil_lgpd": "Brazil LGPD",
|
|
327
|
+
"argentina_ppl": "Argentina PPL",
|
|
328
|
+
"argentina_reg_132_2018": "Argentina Reg 132-2018",
|
|
329
|
+
"mexico": "Mexico Cybersecurity",
|
|
330
|
+
"chile": "Chile Cybersecurity",
|
|
331
|
+
"colombia": "Colombia Cybersecurity",
|
|
332
|
+
"peru": "Peru Cybersecurity",
|
|
333
|
+
"costa_rica": "Costa Rica Cybersecurity",
|
|
334
|
+
"uruguay": "Uruguay Cybersecurity",
|
|
335
|
+
"bahamas": "Bahamas Cybersecurity",
|
|
336
|
+
"bermuda_bmaccc": "Bermuda BMACCC",
|
|
337
|
+
|
|
338
|
+
# === AUTOMOTIVE ===
|
|
339
|
+
"tisax_isa_6": "TISAX ISA 6 (Automotive)",
|
|
340
|
+
"un_r155": "UN R155 (Vehicle Cybersecurity)",
|
|
341
|
+
"un_ece_wp29": "UN ECE WP.29 (Automotive)",
|
|
342
|
+
"ul_2900_1_2017": "UL 2900-1:2017 (Software Cybersecurity)",
|
|
343
|
+
|
|
344
|
+
# === OTHER INDUSTRY ===
|
|
63
345
|
"swift_cscf_2023": "SWIFT Customer Security Framework 2023",
|
|
64
|
-
"
|
|
65
|
-
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
"
|
|
346
|
+
"shared_assessments_sig_2025": "Shared Assessments SIG 2025",
|
|
347
|
+
"sparta": "SPARTA (Space Attack Research)",
|
|
348
|
+
"mpa_csp_5.1": "MPA Content Security Program 5.1",
|
|
349
|
+
"owasp_top_10_2021": "OWASP Top 10 2021",
|
|
350
|
+
"mitre_attack_10": "MITRE ATT&CK v10",
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
# Framework categories for filtering
|
|
354
|
+
self.framework_categories = {
|
|
355
|
+
"ai_governance": [
|
|
356
|
+
"iso_42001_2023", "nist_ai_rmf_1.0", "nist_ai_600_1",
|
|
357
|
+
"eu_ai_act", "eu_cyber_resilience_act"
|
|
358
|
+
],
|
|
359
|
+
"cloud_security": [
|
|
360
|
+
"iso_27017_2015", "iso_27018_2014", "csa_ccm_4",
|
|
361
|
+
"csa_iot_scf_2", "germany_c5_2020"
|
|
362
|
+
],
|
|
363
|
+
"privacy": [
|
|
364
|
+
"gdpr", "iso_27701_2025", "nist_privacy_framework_1.0",
|
|
365
|
+
"us_ca_ccpa_2025", "brazil_lgpd", "india_dpdpa_2023",
|
|
366
|
+
"china_privacy_law", "apec_privacy_2015"
|
|
367
|
+
],
|
|
368
|
+
"us_federal": [
|
|
369
|
+
"nist_csf_2.0", "nist_800_53_r5", "fedramp_r5_moderate",
|
|
370
|
+
"fedramp_r5_high", "cmmc_2.0_level_2", "cjis_5.9.3"
|
|
371
|
+
],
|
|
372
|
+
"financial": [
|
|
373
|
+
"pci_dss_4.0.1", "sox", "glba_cfr_314_2023", "ffiec",
|
|
374
|
+
"dora", "psd2", "swift_cscf_2023"
|
|
375
|
+
],
|
|
376
|
+
"healthcare": [
|
|
377
|
+
"hipaa_security_rule", "hipaa_hicp_small", "hipaa_hicp_medium",
|
|
378
|
+
"hipaa_hicp_large", "cms_mars_e_2.0"
|
|
379
|
+
],
|
|
380
|
+
"industrial_ot": [
|
|
381
|
+
"iec_62443_4_2_2019", "nerc_cip_2024",
|
|
382
|
+
"nist_800_82_r3_moderate", "nist_800_82_r3_high"
|
|
383
|
+
],
|
|
384
|
+
"automotive": [
|
|
385
|
+
"iso_sae_21434_2021", "tisax_isa_6", "un_r155", "un_ece_wp29"
|
|
386
|
+
],
|
|
74
387
|
}
|
|
75
388
|
|
|
76
|
-
# Count controls per framework
|
|
389
|
+
# Count controls per framework (only for frameworks that have mappings)
|
|
77
390
|
for fw_key, fw_name in framework_names.items():
|
|
78
391
|
count = sum(1 for ctrl in self.controls if ctrl["framework_mappings"].get(fw_key))
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
392
|
+
if count > 0: # Only include frameworks with actual mappings
|
|
393
|
+
self.frameworks[fw_key] = {
|
|
394
|
+
"key": fw_key,
|
|
395
|
+
"name": fw_name,
|
|
396
|
+
"controls_mapped": count,
|
|
397
|
+
}
|
|
84
398
|
|
|
85
399
|
def get_control(self, control_id: str) -> dict[str, Any] | None:
|
|
86
400
|
"""Get control by SCF ID."""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: security-controls-mcp
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: MCP server for querying security framework controls (SCF) - map between ISO 27001, NIST CSF, DORA, PCI DSS, and more
|
|
5
5
|
Author-email: Ansvar Systems <hello@ansvar.eu>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -42,13 +42,14 @@ Dynamic: license-file
|
|
|
42
42
|
|
|
43
43
|
## Overview
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
**THE definitive MCP server for security framework mapping.** Makes 1,451 security controls across **261 frameworks** searchable and AI-accessible through Claude, Cursor, or any MCP-compatible client.
|
|
46
46
|
|
|
47
47
|
Built on the [Secure Controls Framework (SCF)](https://securecontrolsframework.com/) by ComplianceForge.
|
|
48
48
|
|
|
49
49
|
**Key capabilities:**
|
|
50
50
|
- 1,451 security controls across governance, risk, compliance, and technical domains
|
|
51
|
-
-
|
|
51
|
+
- **261 frameworks** including ISO 27001, NIST CSF, DORA, PCI DSS, CMMC, and 256 more
|
|
52
|
+
- **AI Governance:** ISO 42001, NIST AI RMF, EU AI Act, Cyber Resilience Act
|
|
52
53
|
- Bidirectional mapping between frameworks via SCF rosetta stone
|
|
53
54
|
- Optional integration with purchased standards (ISO, NIST 800-53) for official text
|
|
54
55
|
- Full-text search across all control descriptions
|
|
@@ -91,6 +92,18 @@ Add to `claude_desktop_config.json`:
|
|
|
91
92
|
}
|
|
92
93
|
```
|
|
93
94
|
|
|
95
|
+
**macOS users:** GUI apps don't inherit your shell's PATH. Use the full path instead:
|
|
96
|
+
```json
|
|
97
|
+
{
|
|
98
|
+
"mcpServers": {
|
|
99
|
+
"security-controls": {
|
|
100
|
+
"command": "/Users/YOUR_USERNAME/.local/bin/scf-mcp"
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
Find your path with: `which scf-mcp`
|
|
106
|
+
|
|
94
107
|
**Config location:**
|
|
95
108
|
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
96
109
|
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
@@ -107,27 +120,46 @@ Same configuration under `"mcp.servers"` in your settings.
|
|
|
107
120
|
- "List all controls needed for PCI DSS compliance"
|
|
108
121
|
- "Which DORA requirements does ISO 27001 A.5.15 satisfy?"
|
|
109
122
|
- "Show me all NIST CSF 2.0 controls related to incident response"
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
- **
|
|
117
|
-
- **
|
|
118
|
-
- **
|
|
119
|
-
- **
|
|
120
|
-
- **
|
|
121
|
-
|
|
123
|
+
- **NEW:** "What ISO 42001 controls map to NIST AI RMF?"
|
|
124
|
+
- **NEW:** "Show me EU AI Act requirements for high-risk AI systems"
|
|
125
|
+
|
|
126
|
+
## Available Frameworks (261)
|
|
127
|
+
|
|
128
|
+
### AI Governance (NEW in v0.4.0)
|
|
129
|
+
- **ISO 42001:2023** (149) - AI Management System
|
|
130
|
+
- **NIST AI RMF 1.0** (158) - AI Risk Management Framework
|
|
131
|
+
- **NIST AI 600-1** (139) - Generative AI Profile
|
|
132
|
+
- **EU AI Act** (119) - Regulation 2024/1689
|
|
133
|
+
- **EU Cyber Resilience Act** (18)
|
|
134
|
+
|
|
135
|
+
### Core Frameworks
|
|
136
|
+
- **US Government:** NIST 800-53 R5 (777), NIST CSF 2.0 (253), FedRAMP R5 (423), CMMC 2.0 (198/52)
|
|
137
|
+
- **International Standards:** ISO 27001 (51), ISO 27002 (316), ISO 27017 (119), ISO 27018 (70), ISO 27701 (187), ISO 22301 (52)
|
|
138
|
+
- **US Industry:** PCI DSS v4.0.1 (364), SOC 2 (412), HIPAA (136), SOX (2)
|
|
139
|
+
- **Financial:** SWIFT CSCF 2023 (127), FFIEC (231), GLBA (108), DORA (103)
|
|
140
|
+
- **Cloud:** CSA CCM v4 (334), Germany C5 (239)
|
|
141
|
+
|
|
142
|
+
### Regional Coverage (50+ countries)
|
|
143
|
+
- **APAC:** Australia ISM/Essential 8, Singapore MAS TRM, Japan ISMAP, China Cybersecurity Law, India DPDPA
|
|
144
|
+
- **EU:** GDPR (42), NIS2 (68), PSD2 (61), plus 20+ national frameworks
|
|
145
|
+
- **Americas:** US state laws (CA, NY, TX, etc.), Brazil LGPD, Canada PIPEDA
|
|
146
|
+
- **Middle East/Africa:** Saudi SAMA, UAE NIAF, South Africa POPIA
|
|
147
|
+
|
|
148
|
+
### Specialized
|
|
149
|
+
- **Industrial/OT:** IEC 62443 (197), NERC CIP (224), NIST 800-82
|
|
150
|
+
- **Automotive:** ISO/SAE 21434, TISAX, UN R155
|
|
151
|
+
- **Healthcare:** HIPAA, HITRUST, CMS MARS-E
|
|
152
|
+
|
|
153
|
+
See [docs/coverage.md](docs/coverage.md) for the complete list of 261 frameworks.
|
|
122
154
|
|
|
123
155
|
## Tools
|
|
124
156
|
|
|
125
157
|
### Core Tools
|
|
126
158
|
|
|
127
|
-
**`list_frameworks()`** - List all
|
|
159
|
+
**`list_frameworks()`** - List all 261 frameworks with control counts
|
|
128
160
|
|
|
129
161
|
**`get_control(control_id)`** - Get full details for a specific SCF control
|
|
130
|
-
- Returns description, domain, weight, PPTDF category, and mappings to all
|
|
162
|
+
- Returns description, domain, weight, PPTDF category, and mappings to all 261 frameworks
|
|
131
163
|
|
|
132
164
|
**`search_controls(query, frameworks=[], limit=10)`** - Search controls by keyword
|
|
133
165
|
- Optional framework filtering
|
|
@@ -159,10 +191,10 @@ Import your purchased ISO 27001, NIST SP 800-53, or other standards to get offic
|
|
|
159
191
|
|
|
160
192
|
```bash
|
|
161
193
|
# Install import tools
|
|
162
|
-
pip install -
|
|
194
|
+
pip install security-controls-mcp[import-tools]
|
|
163
195
|
|
|
164
196
|
# Import purchased PDF
|
|
165
|
-
scf-mcp import-standard \
|
|
197
|
+
scf-mcp-import import-standard \
|
|
166
198
|
--file ~/Downloads/ISO-27001-2022.pdf \
|
|
167
199
|
--type iso_27001_2022 \
|
|
168
200
|
--title "ISO/IEC 27001:2022"
|
|
@@ -195,7 +227,7 @@ SCF JSON → In-memory index → MCP tools → AI response
|
|
|
195
227
|
Based on **SCF 2025.4** (released December 29, 2025)
|
|
196
228
|
|
|
197
229
|
- 1,451 controls across all domains
|
|
198
|
-
-
|
|
230
|
+
- **261 frameworks** with full mapping coverage
|
|
199
231
|
- Licensed under Creative Commons (data)
|
|
200
232
|
- Source: [ComplianceForge SCF](https://securecontrolsframework.com/)
|
|
201
233
|
|
|
@@ -287,4 +319,20 @@ For complete terms: [SCF Terms & Conditions](https://securecontrolsframework.com
|
|
|
287
319
|
|
|
288
320
|
---
|
|
289
321
|
|
|
322
|
+
## More Open Source from Ansvar
|
|
323
|
+
|
|
324
|
+
We maintain a family of MCP servers for compliance and security professionals:
|
|
325
|
+
|
|
326
|
+
| Server | Description | Install |
|
|
327
|
+
|--------|-------------|---------|
|
|
328
|
+
| **[EU Regulations](https://github.com/Ansvar-Systems/EU_compliance_MCP)** | 47 EU regulations (GDPR, AI Act, DORA, NIS2, MiFID II, eIDAS, MDR...) | `npx @ansvar/eu-regulations-mcp` |
|
|
329
|
+
| **[US Regulations](https://github.com/Ansvar-Systems/US_Compliance_MCP)** | HIPAA, CCPA, SOX, GLBA, FERPA, COPPA, FDA 21 CFR Part 11, state privacy laws | `npx @ansvar/us-regulations-mcp` |
|
|
330
|
+
| **[OT Security](https://github.com/Ansvar-Systems/ot-security-mcp)** | IEC 62443, NIST 800-82, MITRE ATT&CK for ICS | `npx @ansvar/ot-security-mcp` |
|
|
331
|
+
| **[Automotive](https://github.com/Ansvar-Systems/Automotive-MCP)** | UNECE R155/R156, ISO 21434 for automotive cybersecurity | `npx @ansvar/automotive-cybersecurity-mcp` |
|
|
332
|
+
| **[Sanctions](https://github.com/Ansvar-Systems/Sanctions-MCP)** | Offline sanctions screening with OpenSanctions (30+ lists) | `pip install ansvar-sanctions-mcp` |
|
|
333
|
+
|
|
334
|
+
Browse all projects: [ansvar.eu/open-source](https://ansvar.eu/open-source)
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
290
338
|
**Built by:** [Ansvar Systems](https://ansvar.eu) (Stockholm, Sweden)
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
security_controls_mcp/__init__.py,sha256=
|
|
2
|
-
security_controls_mcp/__main__.py,sha256=
|
|
1
|
+
security_controls_mcp/__init__.py,sha256=Qx8EKLIh07k8qqBQ7Fz0cOujf5LRgQyPIbEcMjFMPXo,108
|
|
2
|
+
security_controls_mcp/__main__.py,sha256=21ikbl67KnwaZghEwGtF5Hm7YwpNUOzQPNdPvb4EgGQ,225
|
|
3
3
|
security_controls_mcp/cli.py,sha256=7LoL0pJOVIrvfvZn7TfBb9V8sLg8UdDBn35JI5c9r3s,7540
|
|
4
4
|
security_controls_mcp/config.py,sha256=7MW9pxKf9Fc0A8D25VW9SqSJbTMWw5r7mSezX164-oQ,4996
|
|
5
|
-
security_controls_mcp/data_loader.py,sha256=
|
|
5
|
+
security_controls_mcp/data_loader.py,sha256=OMcHZMfYH387XwnWIMDW53641-O-hSKeBnw27ZTAxxs,23436
|
|
6
6
|
security_controls_mcp/http_server.py,sha256=NL7hSJ_1L1RV3zNYt_z-BXrVNKY8gjqV9dZ-M2Bp-gQ,16785
|
|
7
7
|
security_controls_mcp/legal_notice.py,sha256=078PKSwxc0-MYt9NxCXp0ayAGOcRffLwbIWAkq-cXi8,4330
|
|
8
8
|
security_controls_mcp/providers.py,sha256=GrKpLnqqxnktoq1yIuxKCyE23IKql6XZ6O_E_iE1GzA,8547
|
|
9
9
|
security_controls_mcp/registry.py,sha256=aPbI_zFF7XzjIif1wGE4o2Rd_0HbJvOeNSe0xWHKG_o,4417
|
|
10
10
|
security_controls_mcp/server.py,sha256=SHzp9Iu0qdStU0imh9KMjtJjOolozhJC-FJAHM6d9ZY,24667
|
|
11
|
-
security_controls_mcp/data/framework-to-scf.json,sha256=
|
|
12
|
-
security_controls_mcp/data/scf-controls.json,sha256=
|
|
11
|
+
security_controls_mcp/data/framework-to-scf.json,sha256=ofrm898jgeMG-8KlRp7w_qUwxiAQmf4R0-6UqmWtpig,1862041
|
|
12
|
+
security_controls_mcp/data/scf-controls.json,sha256=hOxl-PuCuQMniVKiICmXJWBpNY-32c8dcC-q0emKXEw,14470140
|
|
13
13
|
security_controls_mcp/extractors/__init__.py,sha256=_dQ1HOD7gTyw2FwQMMtgVTYQVSpxIdwBwqsdkSo1nyE,143
|
|
14
14
|
security_controls_mcp/extractors/pdf_extractor.py,sha256=nYd8mbKn_ejeEm02VZrFColRIfYFbP_oOuUm2SfOVqc,7490
|
|
15
|
-
security_controls_mcp-0.
|
|
16
|
-
security_controls_mcp-0.
|
|
17
|
-
security_controls_mcp-0.
|
|
18
|
-
security_controls_mcp-0.
|
|
19
|
-
security_controls_mcp-0.
|
|
20
|
-
security_controls_mcp-0.
|
|
21
|
-
security_controls_mcp-0.
|
|
15
|
+
security_controls_mcp-0.4.0.dist-info/licenses/LICENSE,sha256=RjWhs6k8-dS1rdwUk40lp3R0kf8UVOrlASOO0FTDRnU,743
|
|
16
|
+
security_controls_mcp-0.4.0.dist-info/licenses/LICENSE-DATA.md,sha256=I7iuA6E8TQyL3SMQltKFoOO12Ew2W0D8NSEmFAL5XDw,2096
|
|
17
|
+
security_controls_mcp-0.4.0.dist-info/METADATA,sha256=872IAofJD0A3aNGqgKPcm6-xcGsne3BNh3-E0vsFIIA,13439
|
|
18
|
+
security_controls_mcp-0.4.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
19
|
+
security_controls_mcp-0.4.0.dist-info/entry_points.txt,sha256=2Xf2NGyYld_-LRggliVsOOu4Ux7EQ93FWnEY4hXSff8,112
|
|
20
|
+
security_controls_mcp-0.4.0.dist-info/top_level.txt,sha256=BEEvk-ppPSeK1_OyEy0SIpt04wnf3nUorVOFU0fEmS0,22
|
|
21
|
+
security_controls_mcp-0.4.0.dist-info/RECORD,,
|
|
File without changes
|
{security_controls_mcp-0.3.4.dist-info → security_controls_mcp-0.4.0.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|
{security_controls_mcp-0.3.4.dist-info → security_controls_mcp-0.4.0.dist-info}/top_level.txt
RENAMED
|
File without changes
|