@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.
Files changed (58) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +242 -0
  3. package/data/seed/ai-act.json +1026 -0
  4. package/data/seed/applicability/dora.json +92 -0
  5. package/data/seed/applicability/gdpr.json +74 -0
  6. package/data/seed/applicability/nis2.json +83 -0
  7. package/data/seed/cra.json +690 -0
  8. package/data/seed/cybersecurity-act.json +534 -0
  9. package/data/seed/dora.json +719 -0
  10. package/data/seed/gdpr.json +732 -0
  11. package/data/seed/mappings/iso27001-dora.json +106 -0
  12. package/data/seed/mappings/iso27001-gdpr.json +114 -0
  13. package/data/seed/mappings/iso27001-nis2.json +98 -0
  14. package/data/seed/nis2.json +492 -0
  15. package/dist/index.d.ts +3 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +271 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/tools/applicability.d.ts +20 -0
  20. package/dist/tools/applicability.d.ts.map +1 -0
  21. package/dist/tools/applicability.js +42 -0
  22. package/dist/tools/applicability.js.map +1 -0
  23. package/dist/tools/article.d.ts +17 -0
  24. package/dist/tools/article.d.ts.map +1 -0
  25. package/dist/tools/article.js +29 -0
  26. package/dist/tools/article.js.map +1 -0
  27. package/dist/tools/compare.d.ts +18 -0
  28. package/dist/tools/compare.d.ts.map +1 -0
  29. package/dist/tools/compare.js +60 -0
  30. package/dist/tools/compare.js.map +1 -0
  31. package/dist/tools/definitions.d.ts +14 -0
  32. package/dist/tools/definitions.d.ts.map +1 -0
  33. package/dist/tools/definitions.js +26 -0
  34. package/dist/tools/definitions.js.map +1 -0
  35. package/dist/tools/list.d.ts +22 -0
  36. package/dist/tools/list.d.ts.map +1 -0
  37. package/dist/tools/list.js +67 -0
  38. package/dist/tools/list.js.map +1 -0
  39. package/dist/tools/map.d.ts +19 -0
  40. package/dist/tools/map.d.ts.map +1 -0
  41. package/dist/tools/map.js +44 -0
  42. package/dist/tools/map.js.map +1 -0
  43. package/dist/tools/search.d.ts +15 -0
  44. package/dist/tools/search.d.ts.map +1 -0
  45. package/dist/tools/search.js +62 -0
  46. package/dist/tools/search.js.map +1 -0
  47. package/package.json +70 -0
  48. package/scripts/build-db.ts +292 -0
  49. package/scripts/check-updates.ts +192 -0
  50. package/scripts/ingest-eurlex.ts +219 -0
  51. package/src/index.ts +294 -0
  52. package/src/tools/applicability.ts +84 -0
  53. package/src/tools/article.ts +61 -0
  54. package/src/tools/compare.ts +94 -0
  55. package/src/tools/definitions.ts +54 -0
  56. package/src/tools/list.ts +116 -0
  57. package/src/tools/map.ts +84 -0
  58. 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>