@ansvar/eu-regulations-mcp 0.1.0
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.
- package/LICENSE +21 -0
- package/README.md +242 -0
- package/data/seed/ai-act.json +1026 -0
- package/data/seed/applicability/dora.json +92 -0
- package/data/seed/applicability/gdpr.json +74 -0
- package/data/seed/applicability/nis2.json +83 -0
- package/data/seed/cra.json +690 -0
- package/data/seed/cybersecurity-act.json +534 -0
- package/data/seed/dora.json +719 -0
- package/data/seed/gdpr.json +732 -0
- package/data/seed/mappings/iso27001-dora.json +106 -0
- package/data/seed/mappings/iso27001-gdpr.json +114 -0
- package/data/seed/mappings/iso27001-nis2.json +98 -0
- package/data/seed/nis2.json +492 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +271 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/applicability.d.ts +20 -0
- package/dist/tools/applicability.d.ts.map +1 -0
- package/dist/tools/applicability.js +42 -0
- package/dist/tools/applicability.js.map +1 -0
- package/dist/tools/article.d.ts +17 -0
- package/dist/tools/article.d.ts.map +1 -0
- package/dist/tools/article.js +29 -0
- package/dist/tools/article.js.map +1 -0
- package/dist/tools/compare.d.ts +18 -0
- package/dist/tools/compare.d.ts.map +1 -0
- package/dist/tools/compare.js +60 -0
- package/dist/tools/compare.js.map +1 -0
- package/dist/tools/definitions.d.ts +14 -0
- package/dist/tools/definitions.d.ts.map +1 -0
- package/dist/tools/definitions.js +26 -0
- package/dist/tools/definitions.js.map +1 -0
- package/dist/tools/list.d.ts +22 -0
- package/dist/tools/list.d.ts.map +1 -0
- package/dist/tools/list.js +67 -0
- package/dist/tools/list.js.map +1 -0
- package/dist/tools/map.d.ts +19 -0
- package/dist/tools/map.d.ts.map +1 -0
- package/dist/tools/map.js +44 -0
- package/dist/tools/map.js.map +1 -0
- package/dist/tools/search.d.ts +15 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +62 -0
- package/dist/tools/search.js.map +1 -0
- package/package.json +70 -0
- package/scripts/build-db.ts +292 -0
- package/scripts/check-updates.ts +192 -0
- package/scripts/ingest-eurlex.ts +219 -0
- package/src/index.ts +294 -0
- package/src/tools/applicability.ts +84 -0
- package/src/tools/article.ts +61 -0
- package/src/tools/compare.ts +94 -0
- package/src/tools/definitions.ts +54 -0
- package/src/tools/list.ts +116 -0
- package/src/tools/map.ts +84 -0
- package/src/tools/search.ts +95 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ansvar Systems AB
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# EU Regulations MCP Server
|
|
2
|
+
|
|
3
|
+
**The first open-source MCP server for European cybersecurity regulations.**
|
|
4
|
+
|
|
5
|
+
Query DORA, NIS2, GDPR, the EU AI Act, Cyber Resilience Act, and more — directly from Claude, Cursor, or any MCP-compatible client.
|
|
6
|
+
|
|
7
|
+
Built by [Ansvar Systems](https://ansvar.ai) — Stockholm, Sweden
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Why This Exists
|
|
12
|
+
|
|
13
|
+
European cybersecurity compliance is fragmented across dozens of PDFs, EUR-Lex pages, and regulatory documents. We built this for our own threat modeling work and figured others might find it useful.
|
|
14
|
+
|
|
15
|
+
No more tab-switching. No more "wait, what article was that?" Just ask.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## What's Included
|
|
20
|
+
|
|
21
|
+
| Regulation | Coverage | Status |
|
|
22
|
+
|------------|----------|--------|
|
|
23
|
+
| **DORA** (Digital Operational Resilience Act) | Full text, 64 articles, 65 definitions | ✅ |
|
|
24
|
+
| **NIS2** (Network and Information Security Directive) | Full text, 46 articles, 41 definitions | ✅ |
|
|
25
|
+
| **GDPR** (General Data Protection Regulation) | Full text, 99 articles, 26 definitions | ✅ |
|
|
26
|
+
| **EU AI Act** | Full text, 113 articles, 68 definitions | ✅ |
|
|
27
|
+
| **Cyber Resilience Act** | Full text, 71 articles, 51 definitions | ✅ |
|
|
28
|
+
| **EU Cybersecurity Act** | Full text, 69 articles, 22 definitions | ✅ |
|
|
29
|
+
|
|
30
|
+
**Total: 462 articles, 273 definitions across 6 regulations**
|
|
31
|
+
|
|
32
|
+
Plus:
|
|
33
|
+
- **39 ISO 27001:2022 control mappings** to regulation requirements
|
|
34
|
+
- **27 sector applicability rules** for determining which regulations apply
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Quick Start
|
|
39
|
+
|
|
40
|
+
### Claude Desktop
|
|
41
|
+
|
|
42
|
+
Add to your `claude_desktop_config.json`:
|
|
43
|
+
|
|
44
|
+
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
45
|
+
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"mcpServers": {
|
|
50
|
+
"eu-regulations": {
|
|
51
|
+
"command": "npx",
|
|
52
|
+
"args": ["-y", "@ansvar/eu-regulations-mcp"]
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Restart Claude Desktop. Done.
|
|
59
|
+
|
|
60
|
+
### Cursor / VS Code
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"mcp.servers": {
|
|
65
|
+
"eu-regulations": {
|
|
66
|
+
"command": "npx",
|
|
67
|
+
"args": ["-y", "@ansvar/eu-regulations-mcp"]
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Docker (Self-Hosted)
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
docker run -d --name eu-regs-mcp \
|
|
77
|
+
ansvar/eu-regulations-mcp:latest
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### From Source
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
git clone https://github.com/Ansvar-Systems/EU_compliance_MCP
|
|
84
|
+
cd eu-regulations-mcp
|
|
85
|
+
npm install
|
|
86
|
+
npm run build
|
|
87
|
+
npm start
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Available Tools
|
|
93
|
+
|
|
94
|
+
### `search_regulations`
|
|
95
|
+
Full-text search across all regulations.
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
"Search for incident reporting requirements across all regulations"
|
|
99
|
+
→ Returns matching articles from DORA, NIS2, GDPR with context
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### `get_article`
|
|
103
|
+
Retrieve a specific article with full text and context.
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
"Get DORA Article 17"
|
|
107
|
+
→ Returns ICT-related incident management process requirements
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### `list_regulations`
|
|
111
|
+
List available regulations or show detailed structure.
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
"List all regulations"
|
|
115
|
+
→ Returns overview of all 6 regulations with article counts
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### `get_definitions`
|
|
119
|
+
Get official definitions from any regulation.
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
"What does NIS2 define as an 'essential entity'?"
|
|
123
|
+
→ Returns Article 3 definition + criteria
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### `compare_requirements`
|
|
127
|
+
Side-by-side comparison between frameworks.
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
"Compare incident reporting timelines between DORA and NIS2"
|
|
131
|
+
→ DORA: 4 hours (major), 24 hours (intermediate)
|
|
132
|
+
→ NIS2: 24 hours (early warning), 72 hours (full notification)
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### `check_applicability`
|
|
136
|
+
Determine if a regulation applies to an entity type.
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
"Does DORA apply to a Swedish fintech with 50 employees?"
|
|
140
|
+
→ Yes, if providing financial services covered under Article 2
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### `map_controls`
|
|
144
|
+
Map ISO 27001:2022 controls to regulation requirements.
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
"Which regulations require access control (A.5.15)?"
|
|
148
|
+
→ Returns mappings to GDPR Art 32, DORA Art 9, NIS2 Art 21
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Example Queries
|
|
154
|
+
|
|
155
|
+
Once connected, just ask naturally:
|
|
156
|
+
|
|
157
|
+
- *"What are the risk management requirements under NIS2 Article 21?"*
|
|
158
|
+
- *"How long do I have to report a security incident under DORA?"*
|
|
159
|
+
- *"Compare GDPR breach notification with NIS2 incident reporting"*
|
|
160
|
+
- *"Does the EU AI Act apply to my recruitment screening tool?"*
|
|
161
|
+
- *"What are the essential cybersecurity requirements under the Cyber Resilience Act?"*
|
|
162
|
+
- *"Which regulations apply to a healthcare organization in Germany?"*
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Data Sources
|
|
167
|
+
|
|
168
|
+
All content is sourced from official public sources:
|
|
169
|
+
|
|
170
|
+
- **[EUR-Lex](https://eur-lex.europa.eu/)** — Official EU law portal (CC BY 4.0)
|
|
171
|
+
- **[ENISA](https://enisa.europa.eu/)** — EU Agency for Cybersecurity guidance
|
|
172
|
+
|
|
173
|
+
No copyrighted ISO standards are included. For ISO 27001 full text, you'll need to purchase licenses from ISO.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Development
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
# Clone the repository
|
|
181
|
+
git clone https://github.com/Ansvar-Systems/EU_compliance_MCP
|
|
182
|
+
cd eu-regulations-mcp
|
|
183
|
+
|
|
184
|
+
# Install dependencies
|
|
185
|
+
npm install
|
|
186
|
+
|
|
187
|
+
# Run tests
|
|
188
|
+
npm test
|
|
189
|
+
|
|
190
|
+
# Run in development
|
|
191
|
+
npm run dev
|
|
192
|
+
|
|
193
|
+
# Build for production
|
|
194
|
+
npm run build
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Ingesting New Regulations
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# Ingest a regulation from EUR-Lex
|
|
201
|
+
npm run ingest -- 32016R0679 data/seed/gdpr.json
|
|
202
|
+
|
|
203
|
+
# Check for regulation updates
|
|
204
|
+
npm run check-updates
|
|
205
|
+
|
|
206
|
+
# Rebuild the database
|
|
207
|
+
npm run build:db
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## About Ansvar Systems
|
|
213
|
+
|
|
214
|
+
We build AI-accelerated threat modeling tools for automotive and financial services. This MCP server powers our internal compliance workflows — we're sharing it because navigating EU regulations shouldn't require a law degree.
|
|
215
|
+
|
|
216
|
+
**[ansvar.ai](https://ansvar.ai)** — Threat modeling in days, not weeks.
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## License
|
|
221
|
+
|
|
222
|
+
MIT License. Use it however you want. Keep the attribution.
|
|
223
|
+
|
|
224
|
+
The "EU Regulations MCP" name and Ansvar Systems branding are trademarks.
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## Contributing
|
|
229
|
+
|
|
230
|
+
PRs welcome, especially for:
|
|
231
|
+
- Additional regulation coverage
|
|
232
|
+
- Improved cross-references
|
|
233
|
+
- National transposition details
|
|
234
|
+
- Bug fixes and improvements
|
|
235
|
+
|
|
236
|
+
See [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
<p align="center">
|
|
241
|
+
<sub>Built with care in Stockholm, Sweden</sub>
|
|
242
|
+
</p>
|