security-controls-mcp 0.2.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 +3 -0
- security_controls_mcp/__main__.py +8 -0
- security_controls_mcp/cli.py +255 -0
- security_controls_mcp/config.py +145 -0
- security_controls_mcp/data/framework-to-scf.json +13986 -0
- security_controls_mcp/data/scf-controls.json +50162 -0
- security_controls_mcp/data_loader.py +180 -0
- security_controls_mcp/extractors/__init__.py +5 -0
- security_controls_mcp/extractors/pdf_extractor.py +248 -0
- security_controls_mcp/http_server.py +477 -0
- security_controls_mcp/legal_notice.py +82 -0
- security_controls_mcp/providers.py +238 -0
- security_controls_mcp/registry.py +132 -0
- security_controls_mcp/server.py +613 -0
- security_controls_mcp-0.2.0.dist-info/METADATA +467 -0
- security_controls_mcp-0.2.0.dist-info/RECORD +21 -0
- security_controls_mcp-0.2.0.dist-info/WHEEL +5 -0
- security_controls_mcp-0.2.0.dist-info/entry_points.txt +2 -0
- security_controls_mcp-0.2.0.dist-info/licenses/LICENSE +17 -0
- security_controls_mcp-0.2.0.dist-info/licenses/LICENSE-DATA.md +61 -0
- security_controls_mcp-0.2.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,467 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: security-controls-mcp
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: MCP server for querying security framework controls (SCF) - map between ISO 27001, NIST CSF, DORA, PCI DSS, and more
|
|
5
|
+
Author-email: Ansvar Systems <hello@ansvar.eu>
|
|
6
|
+
License: Apache-2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/Ansvar-Systems/security-controls-mcp
|
|
8
|
+
Project-URL: Repository, https://github.com/Ansvar-Systems/security-controls-mcp
|
|
9
|
+
Project-URL: Issues, https://github.com/Ansvar-Systems/security-controls-mcp/issues
|
|
10
|
+
Keywords: mcp,security,compliance,iso27001,nist,dora,pci-dss
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Requires-Python: >=3.10
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
License-File: LICENSE
|
|
21
|
+
License-File: LICENSE-DATA.md
|
|
22
|
+
Requires-Dist: mcp>=0.9.0
|
|
23
|
+
Provides-Extra: dev
|
|
24
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
25
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
26
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
27
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
28
|
+
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
|
|
29
|
+
Provides-Extra: import-tools
|
|
30
|
+
Requires-Dist: pdfplumber>=0.11.0; extra == "import-tools"
|
|
31
|
+
Requires-Dist: Pillow>=10.0.0; extra == "import-tools"
|
|
32
|
+
Requires-Dist: click>=8.0.0; extra == "import-tools"
|
|
33
|
+
Dynamic: license-file
|
|
34
|
+
|
|
35
|
+
# Security Controls MCP Server
|
|
36
|
+
|
|
37
|
+
[](https://modelcontextprotocol.io)
|
|
38
|
+
[](https://www.python.org)
|
|
39
|
+
[](LICENSE)
|
|
40
|
+
[](https://securecontrolsframework.com/)
|
|
41
|
+
|
|
42
|
+
## Overview
|
|
43
|
+
|
|
44
|
+
**The universal translator for security frameworks.**
|
|
45
|
+
|
|
46
|
+
The Security Controls MCP Server is an open-source tool that makes 1,451 security controls across 16 frameworks searchable and AI-accessible directly through Claude, Cursor, or any MCP-compatible client.
|
|
47
|
+
|
|
48
|
+
Built on the [Secure Controls Framework (SCF)](https://securecontrolsframework.com/) by ComplianceForge.
|
|
49
|
+
|
|
50
|
+
## Key Features
|
|
51
|
+
|
|
52
|
+
**Coverage:**
|
|
53
|
+
- 1,451 security controls spanning governance, risk, compliance, and technical domains
|
|
54
|
+
- 16 major frameworks including ISO 27001, NIST CSF, DORA, PCI DSS, CMMC, and more
|
|
55
|
+
- Bidirectional mapping between any two frameworks via SCF rosetta stone
|
|
56
|
+
- Optional integration with purchased standards (ISO, NIST 800-53) for official text
|
|
57
|
+
|
|
58
|
+
**Capabilities:**
|
|
59
|
+
- Full-text search across all control descriptions and names
|
|
60
|
+
- Natural language queries instead of framework-specific control IDs
|
|
61
|
+
- Cross-framework requirement comparison (e.g., "What DORA controls does ISO 27001 A.5.15 map to?")
|
|
62
|
+
- Control filtering by framework, domain, or keyword
|
|
63
|
+
- SCF control metadata including PPTDF categories and security domain weights
|
|
64
|
+
|
|
65
|
+
**Integration:**
|
|
66
|
+
- Works seamlessly with [EU Regulations MCP](https://github.com/Ansvar-Systems/eu-regulations-mcp) for complete EU compliance coverage
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Why This Exists
|
|
71
|
+
|
|
72
|
+
When you're implementing security controls, you face a common problem: different frameworks describe the same security measures in different ways. ISO 27001 has one control ID, NIST CSF has another, PCI DSS has yet another — but they're all talking about the same thing.
|
|
73
|
+
|
|
74
|
+
This MCP server solves that by giving you instant **bidirectional mapping** between any two frameworks via the SCF rosetta stone. Ask Claude "What DORA controls does ISO 27001 A.5.15 map to?" and get an immediate, authoritative answer backed by ComplianceForge's comprehensive framework database.
|
|
75
|
+
|
|
76
|
+
**Works with:** [EU Regulations MCP](https://github.com/Ansvar-Systems/eu-regulations-mcp) for complete EU compliance coverage (DORA + NIS2 + AI Act + GDPR + more).
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 🔒 Add Your Purchased Standards (Optional)
|
|
81
|
+
|
|
82
|
+
**NEW:** Import your purchased ISO 27001, NIST SP 800-53, or other standards to get:
|
|
83
|
+
|
|
84
|
+
✅ **Official text** from your licensed copies alongside SCF descriptions
|
|
85
|
+
✅ **Full clauses** with page numbers for compliance research
|
|
86
|
+
✅ **Enhanced queries** - see both SCF mappings AND official requirements
|
|
87
|
+
|
|
88
|
+
Your paid content stays private in `~/.security-controls-mcp/` (never committed to git).
|
|
89
|
+
|
|
90
|
+
**Quick example:**
|
|
91
|
+
```bash
|
|
92
|
+
# Install import tools
|
|
93
|
+
pip install -e '.[import-tools]'
|
|
94
|
+
|
|
95
|
+
# Import your purchased PDF
|
|
96
|
+
scf-mcp import-standard \
|
|
97
|
+
--file ~/Downloads/ISO-27001-2022.pdf \
|
|
98
|
+
--type iso_27001_2022 \
|
|
99
|
+
--title "ISO/IEC 27001:2022"
|
|
100
|
+
|
|
101
|
+
# Restart MCP, then query:
|
|
102
|
+
# "Show me GOV-01 with official ISO 27001 text"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**📖 Full Guide:** [PAID_STANDARDS_GUIDE.md](PAID_STANDARDS_GUIDE.md) - Complete setup, troubleshooting, and license compliance information.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Installation & Setup
|
|
110
|
+
|
|
111
|
+
### Quick Install (Recommended)
|
|
112
|
+
|
|
113
|
+
**Option 1: Using pipx (Recommended)**
|
|
114
|
+
```bash
|
|
115
|
+
pipx install security-controls-mcp
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Option 2: Using pip**
|
|
119
|
+
```bash
|
|
120
|
+
pip install security-controls-mcp
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**Option 3: From Source**
|
|
124
|
+
```bash
|
|
125
|
+
git clone https://github.com/Ansvar-Systems/security-controls-mcp.git
|
|
126
|
+
cd security-controls-mcp
|
|
127
|
+
pip install -e .
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**Requirements:**
|
|
131
|
+
- Python 3.10 or higher
|
|
132
|
+
- pip or pipx
|
|
133
|
+
|
|
134
|
+
### Development Setup (For Contributors)
|
|
135
|
+
|
|
136
|
+
If you're contributing to the project, install development tools and pre-commit hooks:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# Install development dependencies
|
|
140
|
+
pip install -e '.[dev]'
|
|
141
|
+
|
|
142
|
+
# Install pre-commit hooks (runs tests/linting before each commit)
|
|
143
|
+
pre-commit install
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Pre-commit hooks automatically run before each commit:
|
|
147
|
+
- **Code formatting** - black, ruff (auto-fixes)
|
|
148
|
+
- **Linting** - ruff check, YAML/JSON validation
|
|
149
|
+
- **Tests** - pytest, smoke tests, server startup test
|
|
150
|
+
|
|
151
|
+
**Bypass hooks (emergencies only):**
|
|
152
|
+
```bash
|
|
153
|
+
git commit --no-verify
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Run hooks manually:**
|
|
157
|
+
```bash
|
|
158
|
+
# All hooks on all files
|
|
159
|
+
pre-commit run --all-files
|
|
160
|
+
|
|
161
|
+
# Specific hook
|
|
162
|
+
pre-commit run black --all-files
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Claude Desktop Configuration
|
|
166
|
+
|
|
167
|
+
After installation, add to `claude_desktop_config.json`:
|
|
168
|
+
|
|
169
|
+
**If installed via pip/pipx:**
|
|
170
|
+
```json
|
|
171
|
+
{
|
|
172
|
+
"mcpServers": {
|
|
173
|
+
"security-controls": {
|
|
174
|
+
"command": "scf-mcp"
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**If installed from source:**
|
|
181
|
+
```json
|
|
182
|
+
{
|
|
183
|
+
"mcpServers": {
|
|
184
|
+
"security-controls": {
|
|
185
|
+
"command": "python",
|
|
186
|
+
"args": ["-m", "security_controls_mcp"],
|
|
187
|
+
"cwd": "/path/to/security-controls-mcp"
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**Config file location:**
|
|
194
|
+
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
195
|
+
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
196
|
+
|
|
197
|
+
### Cursor / VS Code Configuration
|
|
198
|
+
|
|
199
|
+
Same configuration under `"mcp.servers"` instead of `"mcpServers"` in your settings.
|
|
200
|
+
|
|
201
|
+
### Testing
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
# Run all tests
|
|
205
|
+
pytest tests/ -v
|
|
206
|
+
|
|
207
|
+
# Or run quick validation
|
|
208
|
+
python test_server.py
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**📖 Full Documentation:**
|
|
212
|
+
- **[INSTALL.md](INSTALL.md)** - Detailed setup instructions
|
|
213
|
+
- **[TESTING.md](TESTING.md)** - Validation steps and example queries
|
|
214
|
+
- **[PAID_STANDARDS_GUIDE.md](PAID_STANDARDS_GUIDE.md)** - Import purchased standards for official text
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Example Queries
|
|
219
|
+
|
|
220
|
+
Ask Claude these natural language questions:
|
|
221
|
+
|
|
222
|
+
- *"What does GOV-01 require?"*
|
|
223
|
+
- *"Search for controls about encryption key management"*
|
|
224
|
+
- *"What ISO 27001 controls map to DORA?"*
|
|
225
|
+
- *"List all controls needed for PCI DSS compliance"*
|
|
226
|
+
- *"Which DORA requirements does ISO 27001 A.5.15 satisfy?"*
|
|
227
|
+
- *"Show me all NIST CSF 2.0 controls related to incident response"*
|
|
228
|
+
- *"Map CMMC Level 2 controls to FedRAMP requirements"*
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Available Frameworks (16 Total)
|
|
233
|
+
|
|
234
|
+
When you call `list_frameworks()`, you get:
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
Available Frameworks (16 total)
|
|
238
|
+
|
|
239
|
+
- nist_800_53_r5: NIST SP 800-53 Revision 5 (777 controls)
|
|
240
|
+
- soc_2_tsc: SOC 2 (TSC 2017:2022) (412 controls)
|
|
241
|
+
- pci_dss_4.0.1: PCI DSS v4.0.1 (364 controls)
|
|
242
|
+
- fedramp_r5_moderate: FedRAMP Revision 5 (Moderate) (343 controls)
|
|
243
|
+
- iso_27002_2022: ISO/IEC 27002:2022 (316 controls)
|
|
244
|
+
- nist_csf_2.0: NIST Cybersecurity Framework 2.0 (253 controls)
|
|
245
|
+
- cis_csc_8.1: CIS Critical Security Controls v8.1 (234 controls)
|
|
246
|
+
- cmmc_2.0_level_2: CMMC 2.0 Level 2 (198 controls)
|
|
247
|
+
- hipaa_security_rule: HIPAA Security Rule (136 controls)
|
|
248
|
+
- dora: Digital Operational Resilience Act (DORA) (103 controls)
|
|
249
|
+
- nis2: Network and Information Security Directive (NIS2) (68 controls)
|
|
250
|
+
- ncsc_caf_4.0: NCSC Cyber Assessment Framework 4.0 (67 controls)
|
|
251
|
+
- cmmc_2.0_level_1: CMMC 2.0 Level 1 (52 controls)
|
|
252
|
+
- iso_27001_2022: ISO/IEC 27001:2022 (51 controls)
|
|
253
|
+
- gdpr: General Data Protection Regulation (GDPR) (42 controls)
|
|
254
|
+
- uk_cyber_essentials: UK Cyber Essentials (26 controls)
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
**Framework categories:**
|
|
258
|
+
- **Government:** NIST 800-53, NIST CSF, FedRAMP, CMMC
|
|
259
|
+
- **International Standards:** ISO 27001, ISO 27002, CIS CSC
|
|
260
|
+
- **Industry:** PCI DSS, SOC 2, HIPAA
|
|
261
|
+
- **EU Regulations:** DORA, NIS2, GDPR
|
|
262
|
+
- **UK Standards:** NCSC CAF, Cyber Essentials
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## Tools
|
|
267
|
+
|
|
268
|
+
### 1. `get_control`
|
|
269
|
+
Get details about a specific SCF control by ID.
|
|
270
|
+
|
|
271
|
+
```python
|
|
272
|
+
get_control(control_id="GOV-01")
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
**Returns:** Full control details including description, domain, weight, PPTDF category, and mappings to all 16 frameworks.
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
### 2. `search_controls`
|
|
280
|
+
Search for controls by keyword in name or description.
|
|
281
|
+
|
|
282
|
+
```python
|
|
283
|
+
search_controls(query="encryption", limit=10)
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
**Optional parameters:**
|
|
287
|
+
- `frameworks` - Filter to specific frameworks (e.g., `["dora", "iso_27001_2022"]`)
|
|
288
|
+
- `limit` - Maximum results (default: 10)
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
### 3. `list_frameworks`
|
|
293
|
+
List all available frameworks with metadata.
|
|
294
|
+
|
|
295
|
+
```python
|
|
296
|
+
list_frameworks()
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
**Returns:** All 16 frameworks with display names and control counts.
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
### 4. `get_framework_controls`
|
|
304
|
+
Get all SCF controls that map to a specific framework.
|
|
305
|
+
|
|
306
|
+
```python
|
|
307
|
+
get_framework_controls(framework="dora")
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**Returns:** All controls with mappings to the specified framework, organized by domain.
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
### 5. `map_frameworks`
|
|
315
|
+
Map controls between two frameworks via SCF.
|
|
316
|
+
|
|
317
|
+
```python
|
|
318
|
+
map_frameworks(
|
|
319
|
+
source_framework="iso_27001_2022",
|
|
320
|
+
source_control="A.5.15", # Optional: filter to specific control
|
|
321
|
+
target_framework="dora"
|
|
322
|
+
)
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
**Returns:** SCF controls that map to both frameworks, showing the connection between them.
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
### 6. `list_available_standards`
|
|
330
|
+
List all available standards including built-in SCF and any purchased standards you've imported.
|
|
331
|
+
|
|
332
|
+
```python
|
|
333
|
+
list_available_standards()
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
**Returns:** List of available standards with metadata (type, title, import date).
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
### 7. `query_standard`
|
|
341
|
+
Search within a specific purchased standard (requires import first).
|
|
342
|
+
|
|
343
|
+
```python
|
|
344
|
+
query_standard(
|
|
345
|
+
standard="iso_27001_2022",
|
|
346
|
+
query="access control",
|
|
347
|
+
limit=10
|
|
348
|
+
)
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
**Returns:** Relevant clauses/sections from the purchased standard with page numbers.
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
### 8. `get_clause`
|
|
356
|
+
Get the full text of a specific clause from a purchased standard.
|
|
357
|
+
|
|
358
|
+
```python
|
|
359
|
+
get_clause(
|
|
360
|
+
standard="iso_27001_2022",
|
|
361
|
+
clause_id="5.15"
|
|
362
|
+
)
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
**Returns:** Complete clause text with metadata from your purchased standard.
|
|
366
|
+
|
|
367
|
+
**Note:** Tools 6-8 require purchased standards to be imported first. See [PAID_STANDARDS_GUIDE.md](PAID_STANDARDS_GUIDE.md) for setup.
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## Technical Architecture
|
|
372
|
+
|
|
373
|
+
**Data Pipeline:**
|
|
374
|
+
SCF JSON → In-memory index → MCP tools → AI response
|
|
375
|
+
|
|
376
|
+
**Key Principles:**
|
|
377
|
+
- All control text returns verbatim from SCF source data with zero LLM paraphrasing
|
|
378
|
+
- Framework mappings use ComplianceForge's authoritative control crosswalks
|
|
379
|
+
- Optional purchased standards stored locally in `~/.security-controls-mcp/` (never committed)
|
|
380
|
+
|
|
381
|
+
**Context Management:**
|
|
382
|
+
- Search results optimized for AI context windows
|
|
383
|
+
- Full control retrieval includes all framework mappings
|
|
384
|
+
- Cross-framework queries use bidirectional SCF mapping indices
|
|
385
|
+
|
|
386
|
+
**Data Integrity:**
|
|
387
|
+
- SCF version locked to 2025.4 for consistency
|
|
388
|
+
- Optional standards imported from user-purchased PDFs (with license compliance)
|
|
389
|
+
- All mappings sourced from official SCF framework crosswalks
|
|
390
|
+
|
|
391
|
+
---
|
|
392
|
+
|
|
393
|
+
## Data Source
|
|
394
|
+
|
|
395
|
+
Based on **SCF 2025.4** released December 29, 2025.
|
|
396
|
+
|
|
397
|
+
- **1,451 controls** across all domains
|
|
398
|
+
- **180+ framework mappings** (16 frameworks × 0-777 controls each)
|
|
399
|
+
- Licensed under **Creative Commons** (data)
|
|
400
|
+
- Source: [ComplianceForge SCF](https://securecontrolsframework.com/)
|
|
401
|
+
|
|
402
|
+
**Data files included in package:**
|
|
403
|
+
- `scf-controls.json` - All 1,451 controls with framework mappings
|
|
404
|
+
- `framework-to-scf.json` - Reverse index for framework-to-SCF lookups
|
|
405
|
+
|
|
406
|
+
---
|
|
407
|
+
|
|
408
|
+
## Important Disclaimers
|
|
409
|
+
|
|
410
|
+
**Not Legal or Compliance Advice:** Control text is sourced directly from official SCF data, but framework mappings and control interpretations are provided for research purposes only. This tool should not be used as the sole basis for compliance decisions. Always verify against official framework sources and consult qualified compliance professionals and auditors for your specific regulatory requirements.
|
|
411
|
+
|
|
412
|
+
**AI Content Restrictions:** The SCF license explicitly prohibits using AI systems to generate derivative content such as policies, standards, procedures, metrics, risks, or threats based on SCF data. You may query and analyze controls, but not generate derivative compliance artifacts.
|
|
413
|
+
|
|
414
|
+
**Purchased Standards:** Optional standards imports (ISO, NIST) require valid licenses. You must own legitimate copies and comply with copyright restrictions. This tool does not include or distribute any copyrighted standards text.
|
|
415
|
+
|
|
416
|
+
**Framework Coverage:** While SCF provides comprehensive mappings, not all controls map 1:1 across frameworks. Some controls may be interpreted, consolidated, or split during mapping. Always review official framework documentation for authoritative requirements.
|
|
417
|
+
|
|
418
|
+
---
|
|
419
|
+
|
|
420
|
+
## Developer Information
|
|
421
|
+
|
|
422
|
+
**Built by:** [Ansvar Systems](https://ansvar.eu) (Stockholm, Sweden) — specializes in AI-accelerated threat modeling and compliance tools
|
|
423
|
+
|
|
424
|
+
**License:** Apache License 2.0 (code) / CC BY-ND 4.0 (data)
|
|
425
|
+
|
|
426
|
+
**Documentation:**
|
|
427
|
+
- [INSTALL.md](INSTALL.md) - Complete installation guide for all platforms
|
|
428
|
+
- [TESTING.md](TESTING.md) - Validation steps and example queries
|
|
429
|
+
- [PAID_STANDARDS_GUIDE.md](PAID_STANDARDS_GUIDE.md) - Import purchased standards
|
|
430
|
+
- [LEGAL_COMPLIANCE.md](LEGAL_COMPLIANCE.md) - License requirements and restrictions
|
|
431
|
+
|
|
432
|
+
**Related Projects:**
|
|
433
|
+
- **[EU Regulations MCP](https://github.com/Ansvar-Systems/eu-regulations-mcp)** - Query 37 EU regulations (AI Act, DORA, NIS2, GDPR, etc.) for complete EU compliance coverage
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
## License
|
|
438
|
+
|
|
439
|
+
### Code License
|
|
440
|
+
|
|
441
|
+
The source code in this repository is licensed under the **Apache License 2.0** (see [LICENSE](LICENSE)).
|
|
442
|
+
|
|
443
|
+
### Data License
|
|
444
|
+
|
|
445
|
+
The SCF control data (`scf-controls.json`, `framework-to-scf.json`) is licensed under the **Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0)** by ComplianceForge.
|
|
446
|
+
|
|
447
|
+
- **Source:** [Secure Controls Framework (SCF)](https://securecontrolsframework.com/)
|
|
448
|
+
- **License:** [CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0/)
|
|
449
|
+
- **Copyright:** ComplianceForge
|
|
450
|
+
- **Version:** SCF 2025.4 (Released December 29, 2025)
|
|
451
|
+
|
|
452
|
+
#### ⚠️ Important: AI Derivative Content Restriction
|
|
453
|
+
|
|
454
|
+
The SCF license **explicitly prohibits** using AI systems (including Claude) to generate derivative content such as policies, standards, procedures, metrics, risks, or threats based on SCF data.
|
|
455
|
+
|
|
456
|
+
**You MAY:**
|
|
457
|
+
- Query and analyze SCF controls
|
|
458
|
+
- Map between frameworks (e.g., "What DORA controls does ISO 27001 A.5.15 map to?")
|
|
459
|
+
- Reference controls in your own work (with proper attribution)
|
|
460
|
+
- Use this MCP server to understand control requirements
|
|
461
|
+
|
|
462
|
+
**You MAY NOT:**
|
|
463
|
+
- Ask Claude (or any AI) to generate policies or procedures based on SCF controls
|
|
464
|
+
- Create derivative frameworks or modified versions for distribution
|
|
465
|
+
- Remove or modify control definitions
|
|
466
|
+
|
|
467
|
+
For complete terms and conditions, see: [SCF Terms & Conditions](https://securecontrolsframework.com/terms-conditions/)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
security_controls_mcp/__init__.py,sha256=-331-VrKgRg6Va-GKynT7P1SesVazmZHN0Mwfq7_49s,108
|
|
2
|
+
security_controls_mcp/__main__.py,sha256=4qAnCoMWk197dfiYhSjKJjYWpM-ZCQEHDu6dhZmf3Co,132
|
|
3
|
+
security_controls_mcp/cli.py,sha256=7LoL0pJOVIrvfvZn7TfBb9V8sLg8UdDBn35JI5c9r3s,7540
|
|
4
|
+
security_controls_mcp/config.py,sha256=7MW9pxKf9Fc0A8D25VW9SqSJbTMWw5r7mSezX164-oQ,4996
|
|
5
|
+
security_controls_mcp/data_loader.py,sha256=-JiOX8O8owTyADkMPZplRhEvDz_5wW5E-OyNi-NCx1Q,6883
|
|
6
|
+
security_controls_mcp/http_server.py,sha256=NL7hSJ_1L1RV3zNYt_z-BXrVNKY8gjqV9dZ-M2Bp-gQ,16785
|
|
7
|
+
security_controls_mcp/legal_notice.py,sha256=078PKSwxc0-MYt9NxCXp0ayAGOcRffLwbIWAkq-cXi8,4330
|
|
8
|
+
security_controls_mcp/providers.py,sha256=GrKpLnqqxnktoq1yIuxKCyE23IKql6XZ6O_E_iE1GzA,8547
|
|
9
|
+
security_controls_mcp/registry.py,sha256=aPbI_zFF7XzjIif1wGE4o2Rd_0HbJvOeNSe0xWHKG_o,4417
|
|
10
|
+
security_controls_mcp/server.py,sha256=SHzp9Iu0qdStU0imh9KMjtJjOolozhJC-FJAHM6d9ZY,24667
|
|
11
|
+
security_controls_mcp/data/framework-to-scf.json,sha256=2frpsqOtxf5EOBJbm3TaeRYz6fT5xykCaUsmYHpZmqk,199403
|
|
12
|
+
security_controls_mcp/data/scf-controls.json,sha256=7cfgsTmf56i4depNKqZqdjUK0qNt8ybdZJQN906yRZk,1540302
|
|
13
|
+
security_controls_mcp/extractors/__init__.py,sha256=_dQ1HOD7gTyw2FwQMMtgVTYQVSpxIdwBwqsdkSo1nyE,143
|
|
14
|
+
security_controls_mcp/extractors/pdf_extractor.py,sha256=nYd8mbKn_ejeEm02VZrFColRIfYFbP_oOuUm2SfOVqc,7490
|
|
15
|
+
security_controls_mcp-0.2.0.dist-info/licenses/LICENSE,sha256=RjWhs6k8-dS1rdwUk40lp3R0kf8UVOrlASOO0FTDRnU,743
|
|
16
|
+
security_controls_mcp-0.2.0.dist-info/licenses/LICENSE-DATA.md,sha256=I7iuA6E8TQyL3SMQltKFoOO12Ew2W0D8NSEmFAL5XDw,2096
|
|
17
|
+
security_controls_mcp-0.2.0.dist-info/METADATA,sha256=GyLyzQtRf8rWlwSOP51YZOuUNRzaNWJyCjbGO5L6VnM,15823
|
|
18
|
+
security_controls_mcp-0.2.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
19
|
+
security_controls_mcp-0.2.0.dist-info/entry_points.txt,sha256=pDgfu1FAwJGyGp2yGU4uhiLrt9Wy06uzTybWh7frYCs,59
|
|
20
|
+
security_controls_mcp-0.2.0.dist-info/top_level.txt,sha256=BEEvk-ppPSeK1_OyEy0SIpt04wnf3nUorVOFU0fEmS0,22
|
|
21
|
+
security_controls_mcp-0.2.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
Copyright 2026 Ansvar Systems
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Data License
|
|
2
|
+
|
|
3
|
+
The SCF control data files in this repository (`scf-controls.json`, `framework-to-scf.json`) are licensed under:
|
|
4
|
+
|
|
5
|
+
**Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0)**
|
|
6
|
+
|
|
7
|
+
**Copyright:** ComplianceForge
|
|
8
|
+
**Source:** [Secure Controls Framework (SCF)](https://securecontrolsframework.com/)
|
|
9
|
+
**Version:** SCF 2025.4 (Released December 29, 2025)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## License Summary
|
|
14
|
+
|
|
15
|
+
You are free to:
|
|
16
|
+
|
|
17
|
+
- **Share** — copy and redistribute the material in any medium or format for any purpose, even commercially
|
|
18
|
+
|
|
19
|
+
Under the following terms:
|
|
20
|
+
|
|
21
|
+
- **Attribution** — You must give appropriate credit to ComplianceForge, provide a link to the license, and indicate if changes were made
|
|
22
|
+
- **NoDerivatives** — If you remix, transform, or build upon the material, you may not distribute the modified material
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## ⚠️ Important: AI Derivative Content Restriction
|
|
27
|
+
|
|
28
|
+
The SCF End User License Agreement specifically prohibits:
|
|
29
|
+
|
|
30
|
+
> "utilizing Artificial Intelligence (AI) (or similar technologies) to leverage SCF content to generate policies, standards, procedures, metrics, risks, threats or other derivative content"
|
|
31
|
+
|
|
32
|
+
This means you **may not** use AI systems (including Claude, ChatGPT, or similar) to generate derivative content based on SCF data.
|
|
33
|
+
|
|
34
|
+
**Permitted Uses:**
|
|
35
|
+
- Query and analyze control mappings
|
|
36
|
+
- Map between frameworks
|
|
37
|
+
- Reference controls in your work (with attribution)
|
|
38
|
+
- Understand compliance requirements
|
|
39
|
+
|
|
40
|
+
**Prohibited Uses:**
|
|
41
|
+
- Asking AI to write policies/procedures based on SCF controls
|
|
42
|
+
- Creating derivative frameworks for distribution
|
|
43
|
+
- Generating automated compliance content using AI
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Full License
|
|
48
|
+
|
|
49
|
+
The complete CC BY-ND 4.0 license is available at:
|
|
50
|
+
https://creativecommons.org/licenses/by-nd/4.0/legalcode
|
|
51
|
+
|
|
52
|
+
For SCF-specific terms and conditions, see:
|
|
53
|
+
https://securecontrolsframework.com/terms-conditions/
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Questions?
|
|
58
|
+
|
|
59
|
+
For questions about permitted uses, contact ComplianceForge directly or consult a legal professional.
|
|
60
|
+
|
|
61
|
+
**This is not legal advice.** Consult qualified legal counsel for compliance guidance specific to your situation.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
security_controls_mcp
|