@ansvar/us-regulations-mcp 1.0.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 +190 -0
- package/README.md +275 -0
- package/data/.gitkeep +0 -0
- package/data/regulations.db +0 -0
- package/data/seed/applicability/rules.json +74 -0
- package/data/seed/mappings/ccpa-nist-csf.json +144 -0
- package/data/seed/mappings/hipaa-nist-800-53.json +377 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/ingest/adapters/california-leginfo.d.ts +72 -0
- package/dist/ingest/adapters/california-leginfo.d.ts.map +1 -0
- package/dist/ingest/adapters/california-leginfo.js +270 -0
- package/dist/ingest/adapters/california-leginfo.js.map +1 -0
- package/dist/ingest/adapters/ecfr.d.ts +76 -0
- package/dist/ingest/adapters/ecfr.d.ts.map +1 -0
- package/dist/ingest/adapters/ecfr.js +355 -0
- package/dist/ingest/adapters/ecfr.js.map +1 -0
- package/dist/ingest/adapters/regulations-gov.d.ts +47 -0
- package/dist/ingest/adapters/regulations-gov.d.ts.map +1 -0
- package/dist/ingest/adapters/regulations-gov.js +91 -0
- package/dist/ingest/adapters/regulations-gov.js.map +1 -0
- package/dist/ingest/framework.d.ts +84 -0
- package/dist/ingest/framework.d.ts.map +1 -0
- package/dist/ingest/framework.js +8 -0
- package/dist/ingest/framework.js.map +1 -0
- package/dist/tools/action-items.d.ts +23 -0
- package/dist/tools/action-items.d.ts.map +1 -0
- package/dist/tools/action-items.js +118 -0
- package/dist/tools/action-items.js.map +1 -0
- package/dist/tools/applicability.d.ts +26 -0
- package/dist/tools/applicability.d.ts.map +1 -0
- package/dist/tools/applicability.js +49 -0
- package/dist/tools/applicability.js.map +1 -0
- package/dist/tools/compare.d.ts +20 -0
- package/dist/tools/compare.d.ts.map +1 -0
- package/dist/tools/compare.js +35 -0
- package/dist/tools/compare.js.map +1 -0
- package/dist/tools/definitions.d.ts +22 -0
- package/dist/tools/definitions.d.ts.map +1 -0
- package/dist/tools/definitions.js +43 -0
- package/dist/tools/definitions.js.map +1 -0
- package/dist/tools/evidence.d.ts +23 -0
- package/dist/tools/evidence.d.ts.map +1 -0
- package/dist/tools/evidence.js +27 -0
- package/dist/tools/evidence.js.map +1 -0
- package/dist/tools/list.d.ts +25 -0
- package/dist/tools/list.d.ts.map +1 -0
- package/dist/tools/list.js +66 -0
- package/dist/tools/list.js.map +1 -0
- package/dist/tools/map.d.ts +26 -0
- package/dist/tools/map.d.ts.map +1 -0
- package/dist/tools/map.js +58 -0
- package/dist/tools/map.js.map +1 -0
- package/dist/tools/registry.d.ts +19 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +260 -0
- package/dist/tools/registry.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 +94 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/section.d.ts +19 -0
- package/dist/tools/section.d.ts.map +1 -0
- package/dist/tools/section.js +50 -0
- package/dist/tools/section.js.map +1 -0
- package/package.json +76 -0
- package/scripts/build-db.ts +268 -0
- package/scripts/ingest.ts +214 -0
- package/scripts/load-seed-data.ts +133 -0
- package/scripts/quality-test.ts +346 -0
- package/scripts/test-mcp-tools.ts +187 -0
- package/scripts/test-remaining-tools.ts +107 -0
- package/src/index.ts +55 -0
- package/src/ingest/adapters/california-leginfo.ts +322 -0
- package/src/ingest/adapters/ecfr.ts +403 -0
- package/src/ingest/adapters/regulations-gov.ts +112 -0
- package/src/ingest/framework.ts +92 -0
- package/src/tools/action-items.ts +164 -0
- package/src/tools/applicability.ts +91 -0
- package/src/tools/compare.ts +61 -0
- package/src/tools/definitions.ts +79 -0
- package/src/tools/evidence.ts +53 -0
- package/src/tools/list.ts +120 -0
- package/src/tools/map.ts +100 -0
- package/src/tools/registry.ts +275 -0
- package/src/tools/search.ts +132 -0
- package/src/tools/section.ts +85 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
10
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
11
|
+
|
|
12
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
13
|
+
the copyright owner that is granting the License.
|
|
14
|
+
|
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
16
|
+
other entities that control, are controlled by, or are under common
|
|
17
|
+
control with that entity. For the purposes of this definition,
|
|
18
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
19
|
+
direction or management of such entity, whether by contract or
|
|
20
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
21
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
22
|
+
|
|
23
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
24
|
+
exercising permissions granted by this License.
|
|
25
|
+
|
|
26
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
27
|
+
including but not limited to software source code, documentation
|
|
28
|
+
source, and configuration files.
|
|
29
|
+
|
|
30
|
+
"Object" form shall mean any form resulting from mechanical
|
|
31
|
+
transformation or translation of a Source form, including but
|
|
32
|
+
not limited to compiled object code, generated documentation,
|
|
33
|
+
and conversions to other media types.
|
|
34
|
+
|
|
35
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
36
|
+
Object form, made available under the License, as indicated by a
|
|
37
|
+
copyright notice that is included in or attached to the work
|
|
38
|
+
(an example is provided in the Appendix below).
|
|
39
|
+
|
|
40
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
41
|
+
form, that is based on (or derived from) the Work and for which the
|
|
42
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
43
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
44
|
+
of this License, Derivative Works shall not include works that remain
|
|
45
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
46
|
+
the Work and Derivative Works thereof.
|
|
47
|
+
|
|
48
|
+
"Contribution" shall mean any work of authorship, including
|
|
49
|
+
the original version of the Work and any modifications or additions
|
|
50
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
51
|
+
submitted to the Licensor for inclusion in the Work by the copyright owner
|
|
52
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
53
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
54
|
+
means any form of electronic, verbal, or written communication sent
|
|
55
|
+
to the Licensor or its representatives, including but not limited to
|
|
56
|
+
communication on electronic mailing lists, source code control systems,
|
|
57
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
58
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
59
|
+
excluding communication that is conspicuously marked or otherwise
|
|
60
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
61
|
+
|
|
62
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
63
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
64
|
+
subsequently incorporated within the Work.
|
|
65
|
+
|
|
66
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
67
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
68
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
69
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
70
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
71
|
+
Work and such Derivative Works in Source or Object form.
|
|
72
|
+
|
|
73
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
74
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
75
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
76
|
+
(except as stated in this section) patent license to make, have made,
|
|
77
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
78
|
+
where such license applies only to those patent claims licensable
|
|
79
|
+
by such Contributor that are necessarily infringed by their
|
|
80
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
81
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
82
|
+
institute patent litigation against any entity (including a
|
|
83
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
84
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
85
|
+
or contributory patent infringement, then any patent licenses
|
|
86
|
+
granted to You under this License for that Work shall terminate
|
|
87
|
+
as of the date such litigation is filed.
|
|
88
|
+
|
|
89
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
90
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
91
|
+
modifications, and in Source or Object form, provided that You
|
|
92
|
+
meet the following conditions:
|
|
93
|
+
|
|
94
|
+
(a) You must give any other recipients of the Work or
|
|
95
|
+
Derivative Works a copy of this License; and
|
|
96
|
+
|
|
97
|
+
(b) You must cause any modified files to carry prominent notices
|
|
98
|
+
stating that You changed the files; and
|
|
99
|
+
|
|
100
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
101
|
+
that You distribute, all copyright, patent, trademark, and
|
|
102
|
+
attribution notices from the Source form of the Work,
|
|
103
|
+
excluding those notices that do not pertain to any part of
|
|
104
|
+
the Derivative Works; and
|
|
105
|
+
|
|
106
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
107
|
+
distribution, then any Derivative Works that You distribute must
|
|
108
|
+
include a readable copy of the attribution notices contained
|
|
109
|
+
within such NOTICE file, excluding those notices that do not
|
|
110
|
+
pertain to any part of the Derivative Works, in at least one
|
|
111
|
+
of the following places: within a NOTICE text file distributed
|
|
112
|
+
as part of the Derivative Works; within the Source form or
|
|
113
|
+
documentation, if provided along with the Derivative Works; or,
|
|
114
|
+
within a display generated by the Derivative Works, if and
|
|
115
|
+
wherever such third-party notices normally appear. The contents
|
|
116
|
+
of the NOTICE file are for informational purposes only and
|
|
117
|
+
do not modify the License. You may add Your own attribution
|
|
118
|
+
notices within Derivative Works that You distribute, alongside
|
|
119
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
120
|
+
that such additional attribution notices cannot be construed
|
|
121
|
+
as modifying the License.
|
|
122
|
+
|
|
123
|
+
You may add Your own copyright statement to Your modifications and
|
|
124
|
+
may provide additional or different license terms and conditions
|
|
125
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
126
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
127
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
128
|
+
the conditions stated in this License.
|
|
129
|
+
|
|
130
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
131
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
132
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
133
|
+
this License, without any additional terms or conditions.
|
|
134
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
135
|
+
the terms of any separate license agreement you may have executed
|
|
136
|
+
with Licensor regarding such Contributions.
|
|
137
|
+
|
|
138
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
139
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
140
|
+
except as required for reasonable and customary use in describing the
|
|
141
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
142
|
+
|
|
143
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
144
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
145
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
146
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
147
|
+
implied, including, without limitation, any warranties or conditions
|
|
148
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
149
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
150
|
+
appropriateness of using or redistributing the Work and assume any
|
|
151
|
+
risks associated with Your exercise of permissions under this License.
|
|
152
|
+
|
|
153
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
154
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
155
|
+
unless required by applicable law (such as deliberate and grossly
|
|
156
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
157
|
+
liable to You for damages, including any direct, indirect, special,
|
|
158
|
+
incidental, or consequential damages of any character arising as a
|
|
159
|
+
result of this License or out of the use or inability to use the
|
|
160
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
161
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
162
|
+
other commercial damages or losses), even if such Contributor
|
|
163
|
+
has been advised of the possibility of such damages.
|
|
164
|
+
|
|
165
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
166
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
167
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
168
|
+
or other liability obligations and/or rights consistent with this
|
|
169
|
+
License. However, in accepting such obligations, You may act only
|
|
170
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
171
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
172
|
+
defend, and hold each Contributor harmless for any liability
|
|
173
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
174
|
+
of your accepting any such warranty or additional liability.
|
|
175
|
+
|
|
176
|
+
END OF TERMS AND CONDITIONS
|
|
177
|
+
|
|
178
|
+
Copyright 2024-2026 Ansvar Systems
|
|
179
|
+
|
|
180
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
181
|
+
you may not use this file except in compliance with the License.
|
|
182
|
+
You may obtain a copy of the License at
|
|
183
|
+
|
|
184
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
185
|
+
|
|
186
|
+
Unless required by applicable law or agreed to in writing, software
|
|
187
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
188
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
189
|
+
See the License for the specific language governing permissions and
|
|
190
|
+
limitations under the License.
|
package/README.md
ADDED
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
# US Regulations MCP
|
|
2
|
+
|
|
3
|
+
[](https://modelcontextprotocol.io)
|
|
4
|
+
[](https://www.typescriptlang.org/)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
[](https://nodejs.org)
|
|
7
|
+
|
|
8
|
+
A Model Context Protocol (MCP) server for US cybersecurity and privacy regulations. Query HIPAA, CCPA, SOX, and more directly from Claude with full-text search, control framework mappings, and compliance action item generation.
|
|
9
|
+
|
|
10
|
+
**Built by [Ansvar Systems](https://ansvar.eu)**
|
|
11
|
+
|
|
12
|
+
## Features
|
|
13
|
+
|
|
14
|
+
- **Full-text search** across HIPAA, CCPA, and SOX regulations
|
|
15
|
+
- **Control framework mappings** (NIST 800-53, NIST CSF)
|
|
16
|
+
- **Compliance action items** with structured priority and evidence requirements
|
|
17
|
+
- **Cross-regulation comparison** (e.g., compare breach notification requirements)
|
|
18
|
+
- **Applicability checking** (which regulations apply to your sector?)
|
|
19
|
+
- **Official term definitions** from regulatory sources
|
|
20
|
+
- **Section retrieval** with cross-references and metadata
|
|
21
|
+
- **Token-efficient** search results with highlighted snippets
|
|
22
|
+
|
|
23
|
+
## Quick Start
|
|
24
|
+
|
|
25
|
+
### Installation
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm install @ansvar/us-regulations-mcp
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Claude Desktop Configuration
|
|
32
|
+
|
|
33
|
+
Add to your Claude Desktop config file:
|
|
34
|
+
|
|
35
|
+
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
36
|
+
|
|
37
|
+
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
38
|
+
|
|
39
|
+
```json
|
|
40
|
+
{
|
|
41
|
+
"mcpServers": {
|
|
42
|
+
"us-regulations": {
|
|
43
|
+
"command": "npx",
|
|
44
|
+
"args": ["-y", "@ansvar/us-regulations-mcp"]
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Restart Claude Desktop. The server will appear in the MCP tools menu.
|
|
51
|
+
|
|
52
|
+
## Example Queries
|
|
53
|
+
|
|
54
|
+
Try these queries in Claude Desktop:
|
|
55
|
+
|
|
56
|
+
### Healthcare & HIPAA
|
|
57
|
+
```
|
|
58
|
+
"What are the HIPAA security rule requirements for access controls?"
|
|
59
|
+
"Does my telemedicine app need to comply with HIPAA?"
|
|
60
|
+
"What audit logs does HIPAA require for ePHI access?"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Privacy & CCPA
|
|
64
|
+
```
|
|
65
|
+
"Compare breach notification timelines between HIPAA and CCPA"
|
|
66
|
+
"What consumer rights does CCPA provide for data deletion?"
|
|
67
|
+
"Do I need to comply with CCPA if I have 10,000 California customers?"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Financial & SOX
|
|
71
|
+
```
|
|
72
|
+
"What IT controls does SOX Section 404 require?"
|
|
73
|
+
"Which NIST 800-53 controls satisfy SOX audit requirements?"
|
|
74
|
+
"How long must I retain financial records under SOX?"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Cross-Regulation Analysis
|
|
78
|
+
```
|
|
79
|
+
"Compare incident response requirements across HIPAA, CCPA, and SOX"
|
|
80
|
+
"Which regulations apply to a fintech company in California?"
|
|
81
|
+
"Map NIST CSF to our HIPAA and SOX obligations"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Compliance Planning
|
|
85
|
+
```
|
|
86
|
+
"Generate compliance action items for HIPAA security risk assessment"
|
|
87
|
+
"What evidence do I need for HIPAA access control compliance?"
|
|
88
|
+
"List all CCPA consumer rights requirements"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## What's Included
|
|
92
|
+
|
|
93
|
+
### MVP Regulations (3)
|
|
94
|
+
|
|
95
|
+
- **HIPAA** - Health Insurance Portability and Accountability Act
|
|
96
|
+
- Privacy Rule (45 CFR Part 160, 164 Subpart E)
|
|
97
|
+
- Security Rule (45 CFR 164 Subpart C)
|
|
98
|
+
- Breach Notification Rule (45 CFR 164 Subpart D)
|
|
99
|
+
|
|
100
|
+
- **CCPA/CPRA** - California Consumer Privacy Act / Privacy Rights Act
|
|
101
|
+
- California Civil Code §1798.100-1798.199
|
|
102
|
+
- Consumer rights and business obligations
|
|
103
|
+
|
|
104
|
+
- **SOX** - Sarbanes-Oxley Act
|
|
105
|
+
- Section 404 (Management Assessment of Internal Controls)
|
|
106
|
+
- IT controls and audit requirements
|
|
107
|
+
- Financial data retention requirements
|
|
108
|
+
|
|
109
|
+
### Control Framework Mappings
|
|
110
|
+
|
|
111
|
+
- **NIST 800-53** - Security and Privacy Controls (Rev 5)
|
|
112
|
+
- **NIST CSF 2.0** - Cybersecurity Framework
|
|
113
|
+
- **ISO 27001** - Information Security Management (planned)
|
|
114
|
+
|
|
115
|
+
### Data Status
|
|
116
|
+
|
|
117
|
+
**MVP Note**: This is an initial release with placeholder ingestion adapters. The database schema and all 9 MCP tools are fully functional. Automated ingestion from official API sources (regulations.gov, ecfr.gov, California LegInfo) is in development.
|
|
118
|
+
|
|
119
|
+
## Available Tools
|
|
120
|
+
|
|
121
|
+
The server provides 9 MCP tools:
|
|
122
|
+
|
|
123
|
+
| Tool | Description |
|
|
124
|
+
|------|-------------|
|
|
125
|
+
| `search_regulations` | Full-text search across all regulations with highlighted snippets |
|
|
126
|
+
| `get_section` | Retrieve full text of a specific regulation section |
|
|
127
|
+
| `list_regulations` | List available regulations or get hierarchical structure |
|
|
128
|
+
| `compare_requirements` | Compare topic across multiple regulations |
|
|
129
|
+
| `map_controls` | Map NIST controls to regulation sections |
|
|
130
|
+
| `check_applicability` | Determine which regulations apply to your sector |
|
|
131
|
+
| `get_definitions` | Look up official term definitions |
|
|
132
|
+
| `get_evidence_requirements` | Get compliance evidence requirements for a section |
|
|
133
|
+
| `get_compliance_action_items` | Generate structured compliance action items |
|
|
134
|
+
|
|
135
|
+
See [docs/tools.md](docs/tools.md) for complete tool reference with examples.
|
|
136
|
+
|
|
137
|
+
## Development
|
|
138
|
+
|
|
139
|
+
### Prerequisites
|
|
140
|
+
|
|
141
|
+
- Node.js 18 or higher
|
|
142
|
+
- npm or yarn
|
|
143
|
+
|
|
144
|
+
### Setup
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# Clone the repository
|
|
148
|
+
git clone https://github.com/ansvar-systems/us-regulations-mcp.git
|
|
149
|
+
cd us-regulations-mcp
|
|
150
|
+
|
|
151
|
+
# Install dependencies
|
|
152
|
+
npm install
|
|
153
|
+
|
|
154
|
+
# Build the database schema
|
|
155
|
+
npm run build:db
|
|
156
|
+
|
|
157
|
+
# Build the TypeScript code
|
|
158
|
+
npm run build
|
|
159
|
+
|
|
160
|
+
# Run in development mode
|
|
161
|
+
npm run dev
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Available Scripts
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
npm run build # Compile TypeScript to dist/
|
|
168
|
+
npm run dev # Run server in development mode with tsx
|
|
169
|
+
npm run build:db # Initialize database schema
|
|
170
|
+
npm test # Run test suite with vitest
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Project Structure
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
us-regulations-mcp/
|
|
177
|
+
├── src/
|
|
178
|
+
│ ├── index.ts # MCP server entry point
|
|
179
|
+
│ ├── tools/ # MCP tool implementations
|
|
180
|
+
│ │ ├── registry.ts # Central tool registry
|
|
181
|
+
│ │ ├── search.ts # Full-text search
|
|
182
|
+
│ │ ├── section.ts # Section retrieval
|
|
183
|
+
│ │ ├── list.ts # List regulations
|
|
184
|
+
│ │ ├── compare.ts # Compare requirements
|
|
185
|
+
│ │ ├── map.ts # Control mappings
|
|
186
|
+
│ │ ├── applicability.ts # Applicability checker
|
|
187
|
+
│ │ ├── definitions.ts # Term definitions
|
|
188
|
+
│ │ ├── evidence.ts # Evidence requirements
|
|
189
|
+
│ │ └── action-items.ts # Compliance action items
|
|
190
|
+
│ └── ingest/ # Ingestion framework (in development)
|
|
191
|
+
│ ├── framework.ts # Base interfaces
|
|
192
|
+
│ └── adapters/ # Source-specific adapters
|
|
193
|
+
├── scripts/
|
|
194
|
+
│ └── build-db.ts # Database schema builder
|
|
195
|
+
├── data/
|
|
196
|
+
│ └── regulations.db # SQLite database
|
|
197
|
+
└── docs/ # Documentation
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## Architecture Overview
|
|
201
|
+
|
|
202
|
+
### Database
|
|
203
|
+
|
|
204
|
+
The server uses SQLite with FTS5 (full-text search) for efficient querying:
|
|
205
|
+
|
|
206
|
+
- **regulations** - Metadata for each regulation
|
|
207
|
+
- **sections** - Regulation sections with full text
|
|
208
|
+
- **sections_fts** - FTS5 index for fast full-text search
|
|
209
|
+
- **definitions** - Official term definitions
|
|
210
|
+
- **control_mappings** - NIST control to regulation mappings
|
|
211
|
+
- **applicability_rules** - Sector applicability rules
|
|
212
|
+
- **source_registry** - Data source tracking for updates
|
|
213
|
+
|
|
214
|
+
### Ingestion Framework
|
|
215
|
+
|
|
216
|
+
The ingestion framework uses an adapter pattern to normalize data from multiple US regulatory sources:
|
|
217
|
+
|
|
218
|
+
- **regulations.gov API** - Federal regulations
|
|
219
|
+
- **ecfr.gov API** - Electronic Code of Federal Regulations (HIPAA)
|
|
220
|
+
- **California LegInfo API** - State legislation (CCPA/CPRA)
|
|
221
|
+
|
|
222
|
+
Each adapter handles source-specific pagination, authentication, and data normalization.
|
|
223
|
+
|
|
224
|
+
### MCP Protocol
|
|
225
|
+
|
|
226
|
+
The server implements the Model Context Protocol specification:
|
|
227
|
+
|
|
228
|
+
- **stdio transport** for Claude Desktop integration
|
|
229
|
+
- **Centralized tool registry** for consistent tool definitions
|
|
230
|
+
- **Structured error handling** with informative messages
|
|
231
|
+
- **Token-efficient responses** with snippet highlighting
|
|
232
|
+
|
|
233
|
+
## Coverage & Roadmap
|
|
234
|
+
|
|
235
|
+
See [docs/coverage.md](docs/coverage.md) for:
|
|
236
|
+
|
|
237
|
+
- Current regulation coverage status
|
|
238
|
+
- Planned future regulations
|
|
239
|
+
- Control framework mappings
|
|
240
|
+
- Data source details
|
|
241
|
+
- Update frequency
|
|
242
|
+
|
|
243
|
+
## License
|
|
244
|
+
|
|
245
|
+
This project is licensed under the Apache License 2.0. See [LICENSE](LICENSE) for details.
|
|
246
|
+
|
|
247
|
+
## Disclaimer
|
|
248
|
+
|
|
249
|
+
This tool provides regulatory text from official sources but is **NOT legal advice**. Control mappings and applicability rules are interpretive aids only. Always consult qualified legal counsel for compliance decisions.
|
|
250
|
+
|
|
251
|
+
## Contributing
|
|
252
|
+
|
|
253
|
+
Contributions are welcome. Please open an issue or pull request for:
|
|
254
|
+
|
|
255
|
+
- Bug fixes
|
|
256
|
+
- New regulation support
|
|
257
|
+
- Additional control framework mappings
|
|
258
|
+
- Documentation improvements
|
|
259
|
+
|
|
260
|
+
## Support
|
|
261
|
+
|
|
262
|
+
For issues, questions, or feature requests:
|
|
263
|
+
|
|
264
|
+
- Open a [GitHub issue](https://github.com/ansvar-systems/us-regulations-mcp/issues)
|
|
265
|
+
- Email: hello@ansvar.eu
|
|
266
|
+
|
|
267
|
+
## Acknowledgments
|
|
268
|
+
|
|
269
|
+
- Based on the EU Compliance MCP architecture
|
|
270
|
+
- Uses the [Model Context Protocol](https://modelcontextprotocol.io) by Anthropic
|
|
271
|
+
- Regulatory data from official US government sources
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
**Built by Ansvar Systems** - Making compliance accessible through AI
|
package/data/.gitkeep
ADDED
|
File without changes
|
|
Binary file
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"rules": [
|
|
3
|
+
{
|
|
4
|
+
"regulation": "HIPAA",
|
|
5
|
+
"sector": "healthcare",
|
|
6
|
+
"subsector": null,
|
|
7
|
+
"confidence": "definite",
|
|
8
|
+
"rationale": "HIPAA applies to covered entities: healthcare providers, health plans, and healthcare clearinghouses"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"regulation": "HIPAA",
|
|
12
|
+
"sector": "technology",
|
|
13
|
+
"subsector": "health-tech",
|
|
14
|
+
"confidence": "likely",
|
|
15
|
+
"rationale": "Health technology companies are typically business associates under HIPAA when handling PHI"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"regulation": "HIPAA",
|
|
19
|
+
"sector": "insurance",
|
|
20
|
+
"subsector": "health-insurance",
|
|
21
|
+
"confidence": "definite",
|
|
22
|
+
"rationale": "Health plans are covered entities under HIPAA"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"regulation": "CCPA",
|
|
26
|
+
"sector": "all",
|
|
27
|
+
"subsector": null,
|
|
28
|
+
"confidence": "possible",
|
|
29
|
+
"rationale": "CCPA applies to for-profit businesses in California with $25M+ revenue, 50K+ consumers, or 50%+ revenue from selling data"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"regulation": "CCPA",
|
|
33
|
+
"sector": "technology",
|
|
34
|
+
"subsector": null,
|
|
35
|
+
"confidence": "likely",
|
|
36
|
+
"rationale": "Technology companies often meet CCPA thresholds for consumer data processing"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"regulation": "CCPA",
|
|
40
|
+
"sector": "retail",
|
|
41
|
+
"subsector": null,
|
|
42
|
+
"confidence": "likely",
|
|
43
|
+
"rationale": "Retail businesses in California commonly collect consumer personal information"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"regulation": "CCPA",
|
|
47
|
+
"sector": "marketing",
|
|
48
|
+
"subsector": null,
|
|
49
|
+
"confidence": "likely",
|
|
50
|
+
"rationale": "Marketing firms typically process significant California consumer data"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"regulation": "SOX",
|
|
54
|
+
"sector": "financial",
|
|
55
|
+
"subsector": "public-companies",
|
|
56
|
+
"confidence": "definite",
|
|
57
|
+
"rationale": "SOX applies to all publicly traded companies and their auditors"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"regulation": "SOX",
|
|
61
|
+
"sector": "technology",
|
|
62
|
+
"subsector": "public-companies",
|
|
63
|
+
"confidence": "definite",
|
|
64
|
+
"rationale": "Public technology companies must comply with SOX Section 404"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"regulation": "SOX",
|
|
68
|
+
"sector": "financial",
|
|
69
|
+
"subsector": "accounting-firms",
|
|
70
|
+
"confidence": "definite",
|
|
71
|
+
"rationale": "Public accounting firms auditing public companies must comply with SOX"
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
{
|
|
2
|
+
"framework": "NIST_CSF_2_0",
|
|
3
|
+
"regulation": "CCPA",
|
|
4
|
+
"generated_at": "2026-01-29",
|
|
5
|
+
"generated_by": "claude-sonnet-4-5",
|
|
6
|
+
"description": "Mapping of CCPA/CPRA requirements to NIST Cybersecurity Framework 2.0",
|
|
7
|
+
"mappings": [
|
|
8
|
+
{
|
|
9
|
+
"section_number": "1798.100",
|
|
10
|
+
"function": "GV",
|
|
11
|
+
"category": "GV.PO",
|
|
12
|
+
"subcategory": "GV.PO-02",
|
|
13
|
+
"coverage": "full",
|
|
14
|
+
"confidence": 93,
|
|
15
|
+
"rationale": "Privacy program roles and responsibilities align with governance"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"section_number": "1798.105",
|
|
19
|
+
"function": "PR",
|
|
20
|
+
"category": "PR.DS",
|
|
21
|
+
"subcategory": "PR.DS-03",
|
|
22
|
+
"coverage": "partial",
|
|
23
|
+
"confidence": 88,
|
|
24
|
+
"rationale": "Right to deletion requires data lifecycle management"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"section_number": "1798.110",
|
|
28
|
+
"function": "ID",
|
|
29
|
+
"category": "ID.IM",
|
|
30
|
+
"subcategory": "ID.IM-01",
|
|
31
|
+
"coverage": "full",
|
|
32
|
+
"confidence": 91,
|
|
33
|
+
"rationale": "Right to know requires data inventory and mapping"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"section_number": "1798.115",
|
|
37
|
+
"function": "GV",
|
|
38
|
+
"category": "GV.MT",
|
|
39
|
+
"subcategory": "GV.MT-04",
|
|
40
|
+
"coverage": "partial",
|
|
41
|
+
"confidence": 85,
|
|
42
|
+
"rationale": "Disclosure requirements align with transparency goals"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"section_number": "1798.121",
|
|
46
|
+
"function": "PR",
|
|
47
|
+
"category": "PR.DS",
|
|
48
|
+
"subcategory": "PR.DS-01",
|
|
49
|
+
"coverage": "full",
|
|
50
|
+
"confidence": 92,
|
|
51
|
+
"rationale": "Sensitive personal information controls require protection"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"section_number": "1798.125",
|
|
55
|
+
"function": "GV",
|
|
56
|
+
"category": "GV.PO",
|
|
57
|
+
"subcategory": "GV.PO-01",
|
|
58
|
+
"coverage": "partial",
|
|
59
|
+
"confidence": 79,
|
|
60
|
+
"rationale": "Non-discrimination provisions relate to privacy governance"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"section_number": "1798.135",
|
|
64
|
+
"function": "GV",
|
|
65
|
+
"category": "GV.RR",
|
|
66
|
+
"subcategory": "GV.RR-01",
|
|
67
|
+
"coverage": "full",
|
|
68
|
+
"confidence": 89,
|
|
69
|
+
"rationale": "Opt-out mechanisms require rights management processes"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"section_number": "1798.14",
|
|
73
|
+
"function": "GV",
|
|
74
|
+
"category": "GV.PO",
|
|
75
|
+
"subcategory": "GV.PO-03",
|
|
76
|
+
"coverage": "full",
|
|
77
|
+
"confidence": 94,
|
|
78
|
+
"rationale": "Privacy notice requirements align with policy establishment"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"section_number": "1798.145",
|
|
82
|
+
"function": "GV",
|
|
83
|
+
"category": "GV.OC",
|
|
84
|
+
"subcategory": "GV.OC-01",
|
|
85
|
+
"coverage": "partial",
|
|
86
|
+
"confidence": 81,
|
|
87
|
+
"rationale": "Exemptions require organizational context awareness"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"section_number": "1798.15",
|
|
91
|
+
"function": "PR",
|
|
92
|
+
"category": "PR.DS",
|
|
93
|
+
"subcategory": "PR.DS-02",
|
|
94
|
+
"coverage": "full",
|
|
95
|
+
"confidence": 90,
|
|
96
|
+
"rationale": "Data protection measures required for consumer information"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"section_number": "1798.155",
|
|
100
|
+
"function": "GV",
|
|
101
|
+
"category": "GV.SC",
|
|
102
|
+
"subcategory": "GV.SC-04",
|
|
103
|
+
"coverage": "partial",
|
|
104
|
+
"confidence": 84,
|
|
105
|
+
"rationale": "Service provider requirements align with supply chain management"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"section_number": "1798.16",
|
|
109
|
+
"function": "PR",
|
|
110
|
+
"category": "PR.AA",
|
|
111
|
+
"subcategory": "PR.AA-02",
|
|
112
|
+
"coverage": "full",
|
|
113
|
+
"confidence": 87,
|
|
114
|
+
"rationale": "Consumer verification processes require identity management"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"section_number": "1798.175",
|
|
118
|
+
"function": "GV",
|
|
119
|
+
"category": "GV.RR",
|
|
120
|
+
"subcategory": "GV.RR-03",
|
|
121
|
+
"coverage": "full",
|
|
122
|
+
"confidence": 86,
|
|
123
|
+
"rationale": "Enforcement procedures align with rights response"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"section_number": "1798.185",
|
|
127
|
+
"function": "RS",
|
|
128
|
+
"category": "RS.MA",
|
|
129
|
+
"subcategory": "RS.MA-02",
|
|
130
|
+
"coverage": "partial",
|
|
131
|
+
"confidence": 83,
|
|
132
|
+
"rationale": "Data breach notification aligns with incident communication"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"section_number": "1798.199",
|
|
136
|
+
"function": "GV",
|
|
137
|
+
"category": "GV.OV",
|
|
138
|
+
"subcategory": "GV.OV-01",
|
|
139
|
+
"coverage": "full",
|
|
140
|
+
"confidence": 91,
|
|
141
|
+
"rationale": "Privacy program oversight requirements"
|
|
142
|
+
}
|
|
143
|
+
]
|
|
144
|
+
}
|