# PubLedge (npm · publedge)

Open recordkeeping protocol for JIAs, RMAs, no-action letters, and analogous instruments.

- Trust score: 68/100 (medium)
- Change this week: +6
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `publedge`: 68/100 (this document), [markdown](https://verifymcp.io/servers/snapsynapse-publedge/publedge.md), [page](https://verifymcp.io/servers/snapsynapse-publedge/publedge)

## Channel facts

- Registry: `npm`
- Package: `publedge`
- Version: `0.1.3`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (Apache-2.0).
  - Actively maintained (last published 8 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 73/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 632 tokens (~48/item across 13 items; 13 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 20/100
  - Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add snapsynapse-publedge -- npx -y publedge
```

### Codex

```bash
codex mcp add snapsynapse-publedge -- npx -y publedge
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "snapsynapse-publedge": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "publedge"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add snapsynapse-publedge --command npx --arg -y --arg publedge
```

### Hermes

```yaml
mcp_servers:
  snapsynapse-publedge:
    command: "npx"
    args: ["-y", "publedge"]
```

### Other

```json
{
  "mcpServers": {
    "snapsynapse-publedge": {
      "command": "npx",
      "args": [
        "-y",
        "publedge"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 68, +3)

- [functional improvement] Stability: unverified → 0.23

### 2026-08-02 (score 65, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-07-31 (score 50, −12)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-27 (score 62, +33)

- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Tool coverage: 100
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: pass
- [functional] First check of Schema quality: good

### 2026-07-26 (score 29)

First indexed and scored.

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

## MCP tools (13)

### `list_obligations` (~28 tokens)

List all obligations in the knowledge base. Returns id, title, and group for each.

### `get_obligation` (~41 tokens)

Get a single obligation by its ID. Returns all frontmatter fields and body content.

Input parameters:

- `id` (string, required): The obligation ID (filename without .md)

### `list_legal-instruments` (~159 tokens)

List legal instruments in the knowledge base. Optional filters: jurisdiction, authority, type, status. Returns id, title, status, authority, type, jurisdiction, and canonical url for each match.

Input parameters:

- `authority` (string): Filter by authority slug (e.g. "utah-oaip", "cfpb").
- `jurisdiction` (string): Filter by jurisdiction slug (e.g. "us-ut", "us").
- `status` (string): Filter by status (e.g. "enforcing", "executed", "enacted").
- `type` (string): Filter by instrument type (e.g. "statute", "rma", "jia", "ao", "nal", "plr", "il").

### `get_legal-instrument` (~45 tokens)

Get a single legal instrument by its ID. Returns frontmatter, timeline, and provisions.

Input parameters:

- `id` (string, required): The legal instrument ID (filename without .md)

### `list_authorities` (~17 tokens)

List all authorities in the knowledge base.

### `get_authority` (~41 tokens)

Get a single authority by its ID. Returns all frontmatter fields and body content.

Input parameters:

- `id` (string, required): The authority ID (filename without .md)

### `search` (~42 tokens)

Full-text search across all entities in the knowledge base. Searches titles, IDs, and body content.

Input parameters:

- `query` (string, required): Search query (case-insensitive substring match)

### `get_matrix` (~20 tokens)

Coverage matrix showing which obligations are addressed by which legal instruments.

### `get_mappings` (~20 tokens)

All mapping entries connecting legal instruments to obligations via terms.

### `fetch_by_url` (~83 tokens)

Fetch a legal instrument by its canonical URL (e.g. https://publedge.org/us/utah/oaip/rma/2025-001/ or /us/utah/oaip/rma/2025-001/). Returns the same payload as get_legal-instrument.

Input parameters:

- `url` (string, required): Canonical hierarchical URL or path.

### `search_obligations` (~47 tokens)

Search only within obligations (obligation titles, IDs, body text). Same query semantics as search but scoped.

Input parameters:

- `query` (string, required): Search query (case-insensitive substring match)

### `get_upcoming` (~47 tokens)

Return legal instruments with upcoming milestones (enacted, effective, expires dates in the future). Sorted by date ascending.

Input parameters:

- `limit` (number): Max results to return (default 20).

### `get_recently_changed` (~42 tokens)

Return legal instruments sorted by last_verified or last changelog entry, most recent first.

Input parameters:

- `limit` (number): Max results to return (default 20).

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/snapsynapse-publedge/publedge#diagnostics

## Score history

- 2026-08-03: 68
- 2026-08-02: 65
- 2026-08-01: 50
- 2026-07-31: 50
- 2026-07-30: 62
- 2026-07-28: 62
- 2026-07-27: 62
- 2026-07-26: 29

## Links

- npm package: https://www.npmjs.com/package/publedge
- Socket report: https://socket.dev/npm/package/publedge
- Repository: https://github.com/snapsynapse/publedge
- Website: https://publedge.org/
- Changelog RSS feed: https://verifymcp.io/servers/snapsynapse-publedge/publedge/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/snapsynapse-publedge/publedge/changelog.json
- HTML version of this page: https://verifymcp.io/servers/snapsynapse-publedge/publedge
