Skip to main content
ClaudeWave

Open recordkeeping protocol for fact-specific written interpretations between two parties: JIAs, RMAs, no-action letters, private letter rulings, advisory opinions. Drafting in public.

MCP ServersOfficial Registry0 stars0 forksJavaScriptNOASSERTIONUpdated today
ClaudeWave Trust Score
62/100
· OK
Passed
  • Actively maintained (<30d)
  • Clear description
  • Topics declared
Flags
  • !No standard license detected
Last scanned: 6/11/2026
Install in Claude Code / Claude Desktop
Method: NPX · publedge
Claude Code CLI
claude mcp add publedge -- npx -y publedge
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "publedge": {
      "command": "npx",
      "args": ["-y", "publedge"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Use cases

MCP Servers overview

# PubLedge

[![CI](https://github.com/snapsynapse/publedge/actions/workflows/build.yml/badge.svg)](https://github.com/snapsynapse/publedge/actions/workflows/build.yml)
[![Spec](https://img.shields.io/badge/spec-v0.1.2--pre-blue)](PROTOCOL.md)
[![Registry](https://img.shields.io/badge/registry-18%20instruments%20%C2%B7%2026%20obligations%20%C2%B7%208%20authorities-informational)](data/examples/instruments/)
[![Content license: CC BY 4.0](https://img.shields.io/badge/content-CC%20BY%204.0-lightgrey)](LICENSE-CC-BY-4.0)
[![Code license: Apache 2.0](https://img.shields.io/badge/code-Apache%202.0-lightgrey)](LICENSE-APACHE)
[![Bound to gist](https://img.shields.io/badge/ontology-gist-green)](https://semanticarts.com/gist/)

Open recordkeeping protocol for fact-specific written interpretations between two parties — Joint Interpretation Agreements (JIAs), Regulatory Mitigation Agreements (RMAs), no-action letters, private letter rulings, advisory opinions, and analogous civic instruments (HOA decision logs, co-op governance records, flying-club asset agreements, and the like).

Plain markdown with structured frontmatter. SHA-256 manifest checks provide source-to-manifest consistency. Bound to the [Semantic Arts gist](https://semanticarts.com/gist/) upper ontology so records from different authorities can be queried together.

**Public and maintained. Protocol specification v0.1.2-pre; stable MCP server v0.1.2. Standalone product expansion is parked pending a concrete legal-graph or adopter demand signal.**

## Who this is for

Regulators, regulated parties, and civic bodies that issue or rely on fact-specific written interpretations and need them recorded in a portable, queryable form.

## What problem it solves

Fact-specific interpretations (no-action letters, private rulings, JIAs, HOA decisions) live in scattered, unstructured records that can't be compared across authorities. PubLedge is an open protocol that records them as manifest-checked markdown bound to a shared ontology.

## Canonical URL

https://publedge.org/

## Part of the PAICE legal graph

PubLedge is one component of the PAICE legal graph (with EveryAILaw, AI Incident Law, and Obligation First). It is intentionally open: code under Apache 2.0, protocol and content under CC BY 4.0, commercial use permitted with attribution. The open siblings are funded by EveryAILaw Pro, the graph's single restricted layer; openness here is a deliberate PBC-charter choice. The canonical model is in the PAICE Foundation INTENT.

## What this repo is

Three things in one place:

1. **The protocol** — the [PROTOCOL.md](PROTOCOL.md) specification and the [PRIOR-ART.md](PRIOR-ART.md) survey that motivates it.
2. **Utah-shaped reference content** — 5 JIA/RMA templates anchored to Utah's AI Policy Act (Utah Code §13-72a) and GenAI safe-harbor (§13-75-104), plus 18 demonstration instruments under `data/examples/instruments/` spanning 8 authorities (Utah OAIP, Utah Legislature, Colorado Legislature, SEC, CFPB, IRS Chief Counsel, IRS TEGE, CFTC) and 7 instrument types (JIA, RMA, no-action letter, advisory opinion, private letter ruling, interpretive letter, statute). 26 first-class obligation records under `data/examples/obligations/` are mapped to the instruments via `data/examples/mapping/index.yml`.
3. **The published site** — rendered HTML under `docs/`, served by GitHub Pages from `main /docs`. Regenerate with `node scripts/build.js && node scripts/build-extras.js` before committing; CI fails if `docs/` drifts from sources.

## Machine-readable endpoints

Every record and index is published in parallel HTML + structured form so agents can walk the registry without scraping:

| Surface | Shape |
|---|---|
| `/` | `WebSite` + `Organization` + `DataCatalog` JSON-LD (`@graph`); links to every dataset distribution |
| `/us/{jurisdiction}/{authority}/{type}/{instance}/` | Canonical hierarchical URL per record; inline `Schema.org` `LegalDocument` JSON-LD; PDF + OCR text co-located |
| `/us/{jurisdiction}/{authority}/{type}/{instance}/record.json` | Same record as JSON; shape validated by `/schema/json/record.schema.json`; includes `authority_response` annotations when present |
| `/instruments.html`, `/obligations.html`, `/authorities.html` | `ItemList` JSON-LD; human-readable filter + sort |
| `/matrix.html` | `Dataset` JSON-LD + coverage matrix; `DataDownload` distribution at `/api/v1/matrix.json` |
| `/definitions/` | `DefinedTermSet` with instrument types + statuses as `DefinedTerm`s |
| `/api/v1/*.json` | Machine manifests: containers, primaries, authorities, mappings, matrix, upcoming, recently-changed |
| `/api/v1/of/*.json` | Obligation-First v0.1 binding records for authorities, instruments, terms, obligations, and determinations |
| `/calendar.ics` | Enforcement calendar (iCal) |
| `/feed.xml`, `/atom.xml`, `/feed.json` | RSS 2.0, Atom 1.0, JSON Feed 1.1 |
| `/sitemap.xml` | Sitemap index → per-section sitemaps (`records`, `authorities`, `statutes`, `reference`, `templates`, `bridges`, `meta`) |
| `/llms.txt`, `/agents.json` | Agent-discovery briefing + capabilities |
| `/.well-known/mcp.json` | Installable MCP server discovery for `npx -y publedge` |
| `/robots.txt` | Explicit allow for 17 AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Applebot-Extended, etc.) |
| `mcp-server.js` | MCP server exposing 13 read-only tools: `list_<legal-instruments>` (with jurisdiction/authority/type/status filters), `get_<legal-instrument>`, `list_obligations`, `get_obligation`, `list_authorities`, `get_authority`, `search`, `search_obligations`, `get_matrix`, `get_mappings`, `fetch_by_url`, `get_upcoming`, `get_recently_changed` |

## What this repo is not

- Not a regulator. PubLedge does not issue rulings.
- Not a law firm. Templates here are prior art, not legal advice.
- Not a CMS. Editors edit markdown in git.
- Not a blockchain. The integrity layer is plain SHA-256 over plain files.

## Quickstart

```bash
git clone https://github.com/snapsynapse/publedge.git
cd publedge
./scripts/validate-hashes.sh           # verify integrity
node scripts/validate.js               # cross-reference checks
node scripts/build.js                  # regenerate docs/ entity pages + API
node scripts/build-extras.js           # copy reference HTML, feeds, discovery files
```

To validate the Obligation-First binding, check out `snapsynapse/obligation-first` beside this repo or set `OBLIGATION_FIRST_DIR`, then run `npm run validate:of`.

After intentional content edits, refresh hashes:

```bash
./scripts/validate-hashes.sh --update
```

CI runs all of the above, plus a pa11y-ci WCAG 2.1 AA pass across every URL in the sitemap, on every push and pull request.

## Use PubLedge in five minutes

Choose the surface that matches the job:

1. Browse the [instrument registry](https://publedge.org/instruments.html) or open a canonical record such as the [SEC CorpFin no-action letter](https://publedge.org/us/federal/sec-corpfin/nal/2025-001/).
2. Query an index without scraping HTML:
```bash
curl -sS https://publedge.org/api/v1/containers.json | jq '.[0]'
```
3. Fetch a record-shaped JSON representation by appending `record.json` to its canonical record URL:
```bash
curl -sS https://publedge.org/us/federal/sec-corpfin/nal/2025-001/record.json | jq '.id, .status'
```
4. Add the read-only MCP server to any stdio-capable client:
```json
{
  "mcpServers": {
    "publedge": {
      "command": "npx",
      "args": ["-y", "publedge"]
    }
  }
}
```
5. Use `search` to discover records and `fetch_by_url` when you already have a canonical PubLedge URL. The complete endpoint and capability inventories are at [api/v1/index.json](https://publedge.org/api/v1/index.json) and [agents.json](https://publedge.org/agents.json).

Canonical markdown under `data/examples/` is the maintained source. Published HTML, API indexes, and each `record.json` are generated representations and should not be edited directly.

## Repository layout

| Path | Purpose |
|---|---|
| `PROTOCOL.md` | The PubLedge specification |
| `INTENT.md` | Authoritative repository disposition, active work, and revisit triggers |
| `PRIOR-ART.md` | Survey of analogous instrument programs |
| `DEFINITIONS.md` | Canonical vocabulary (status values, instrument types, obligation kinds) |
| `MANIFEST.yaml` | SHA-256 hashes for every canonical file |
| `_templates/jia/`, `_templates/rma/` | Fill-in templates with `{{variable}}` placeholders |
| `data/examples/instruments/` | 18 demonstration instruments; filename = stable id (e.g. `us-ut-oaip-rma-2025-001.md`) |
| `data/examples/authorities/` | Authority records for each issuing body |
| `data/examples/obligations/` | Obligation definitions linked from instruments |
| `data/examples/mapping/` | Obligation-to-statute mapping index |
| `about/` | Hand-crafted `/about/` source page (copied verbatim into `docs/`) |
| `reference/` | Hand-crafted reference HTML (prior-art, disclaimer, vocabulary) |
| `schema/json/` | JSON Schemas + JSON-LD context |
| `vendor/gist/` | Pinned snapshot of the Semantic Arts gist core ontology |
| `scripts/` | Validators (`validate.js`, `verify.js`), build (`build.js`, `build-extras.js`), hash check |
| `_workshop/` | Site ontology workshop output (taxonomy, sitemap, content guide, roadmap) |

The `_workshop/` directory documents the design decisions behind the layout above. Read [_workshop/TAXONOMY.md](_workshop/TAXONOMY.md), [_workshop/SITEMAP.md](_workshop/SITEMAP.md), and [_workshop/CONTENT-GUIDE.md](_workshop/CONTENT-GUIDE.md) before proposing structural changes.

## Contributing an instrument

1. Pick template under `_templates/jia/` or `_templates/rma/`.
2. Replace every `{{variable_name}}` with applicable values.
3. Set `id` to `{jurisdiction}-{authority}-{type}-{YYYY-NNN}` (e.g. `us-ut-oaip-rma-2025-003`). Filename must match: `us-ut-oaip-rma-2025-003.md`.
4. Set `status: draft`. Add parties under `parties:`.
5. Place file under `data/examples/instruments/`.
6. Run `./s
ai-governanceai-regulationcivic-techgist-ontologyjoint-interpretation-agreementknowledge-as-codelegal-techmcp-serveropen-standardpubledgeregulatory-protocolregulatory-sandboxschema-org

What people ask about publedge

What is snapsynapse/publedge?

+

snapsynapse/publedge is mcp servers for the Claude AI ecosystem. Open recordkeeping protocol for fact-specific written interpretations between two parties: JIAs, RMAs, no-action letters, private letter rulings, advisory opinions. Drafting in public. It has 0 GitHub stars and was last updated today.

How do I install publedge?

+

You can install publedge by cloning the repository (https://github.com/snapsynapse/publedge) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is snapsynapse/publedge safe to use?

+

Our security agent has analyzed snapsynapse/publedge and assigned a Trust Score of 62/100 (tier: OK). See the full breakdown of passed checks and flags on this page.

Who maintains snapsynapse/publedge?

+

snapsynapse/publedge is maintained by snapsynapse. The last recorded GitHub activity is from today, with 0 open issues.

Are there alternatives to publedge?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy publedge to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: snapsynapse/publedge
[![Featured on ClaudeWave](https://claudewave.com/api/badge/snapsynapse-publedge)](https://claudewave.com/repo/snapsynapse-publedge)
<a href="https://claudewave.com/repo/snapsynapse-publedge"><img src="https://claudewave.com/api/badge/snapsynapse-publedge" alt="Featured on ClaudeWave: snapsynapse/publedge" width="320" height="64" /></a>

More MCP Servers

publedge alternatives