@presencis/regulatory-mcp
Official# @presencis/regulatory-mcp
Read-only [Model Context Protocol](https://modelcontextprotocol.io) server for the public Presencis regulatory corpus. It answers from a bundled JSON snapshot. It does not open network connections and it does not write files.
Tools:
- `list_frameworks` — optional exact `jurisdiction` or `sector`
- `get_framework` — exact `id`
- `find_crosswalk` — `source_id`, optional `target_id`
- `search_compliance_qa` — `query`, optional `regulation` and `limit`
- `map_sector_obligations` — exact `sector`
Question hits cite `https://presencis.com/questions/<slug>/`.
## Run from a checkout
Node.js 22 or newer.
```bash
npm install
export PRESENCIS_CORPUS_ROOT=/path/to/corpus
export CROSSWALKS_DATA=/path/to/regulatory-crosswalks/data
npm run sync
npm run build
node dist/index.js
```
`npm test` builds and runs the stdio JSON-RPC checks.
## Clients
The same command works for Claude Desktop, Cursor, and Antigravity. After this package is published:
```json
{
"mcpServers": {
"presencis-regulatory": {
"command": "npx",
"args": ["-y", "@presencis/regulatory-mcp"]
}
}
}
```
Until publish, point `command` at `node` and `args` at the absolute path of `dist/index.js`.
Apache-2.0.
TDQS
Scored across 5 tools
Two pairs overlap significantly: map_sector_obligations largely duplicates list_frameworks with a sector filter (plus a sector description), and find_crosswalk returns the same comparison/sector-overlap data that get_framework already bundles. The descriptions do help steer selection, but an agent could plausibly choose the wrong tool for a sector-scoped framework listing.
All names are snake_case verb_noun constructions (list_frameworks, get_framework, find_crosswalk, search_compliance_qa, map_sector_obligations), which is predictable and readable. Only minor deviation is the mix of verbs (find vs search vs map) for what could be treated as retrieval operations.
Five tools is a lean but defensible surface for a read-only regulatory lookup service, with each tool nominally owning a resource type. Slightly thin given the overlap, but nothing feels gratuitous.
There is no tool to enumerate sectors or jurisdictions even though both are required as exact filter inputs to list_frameworks and map_sector_obligations, creating a discovery dead end. The surface is also entirely read-only with no way to fetch a single Q&A record or framework version history, and article-level duties are explicitly out of scope.