npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

bsv-aio-mcp

v1.1.1

Published

Read-only BSV knowledge MCP server: pinned-snapshot answers for BRCs, Bitcoin Script opcodes, BEEF, Runar, the Tier 0 SDKs and the Craig Wright essay corpus. Never fetches live HTTP; never actuates.

Readme

BSV-AIO-MCP

A read-only Model Context Protocol server that gives any MCP-capable assistant (Cursor, Claude Desktop, Claude Code, …) grounded answers about Bitcoin SV: the BRC specifications, Bitcoin Script opcodes, BEEF transaction formats, the Rúnar smart-contract toolchain, the Tier 0 SDKs (@bsv/sdk, @bsv/wallet-toolbox, go-sdk, go-wallet-toolbox) and a structured corpus of Craig Wright's essays.

It answers from a pinned snapshot of these sources — never from the live web.

Design invariants

  • Snapshot-only. Every claim quotes a contiguous slice of a cited, pinned document. The server never fetches live HTTP and never actuates (no broadcasting, no wallet creation, no faucet claims). Live facts are declared in needs for the host to resolve.
  • Fail-closed. When the snapshot cannot answer, the server says so (insufficient + a specific gap) instead of presenting incidental mentions as an answer.
  • Authority model. BRCs rank 1, SDK/package cards 2, ops playbooks 3, essays 4. A named or governing spec always outranks commentary.
  • Deny list. Deprecated/unsafe packages (bsv, run-sdk, js-1sat-ord, …) are never recommended; naming one as a dependency returns the denial, its reason (e.g. CVE-2025-69287) and its successor.
  • Recency honesty. "Latest/newest/superseded" questions are answered as of the pin date, with the pin declared in the package's gaps.

Install

Requires Node.js ≥ 22.13. No build step, no API keys, no network access at runtime.

Add to your MCP client config — Cursor (~/.cursor/mcp.json), Claude Desktop (claude_desktop_config.json), or equivalent:

{
  "mcpServers": {
    "bsv-aio": {
      "command": "npx",
      "args": ["-y", "bsv-aio-mcp"]
    }
  }
}

Restart the client. The server builds its local SQLite index from the shipped snapshot on first launch (a few seconds), then answers over stdio.

From source

git clone https://github.com/BMX-Casey94/BSV-AIO-MCP.git
cd BSV-AIO-MCP
npm install
npm run build

Then point the client at the built entry directly:

{
  "mcpServers": {
    "bsv-aio": {
      "command": "node",
      "args": ["C:/path/to/BSV-AIO-MCP/server/dist/index.mjs"]
    }
  }
}

Configuration

| Env var | Default | Purpose | |---|---|---| | BSV_AIO_ROOT | the installed package root | Corpus root override (development). | | BSV_AIO_DB_PATH | %TEMP%/bsv-aio-mcp/knowledge.sqlite | Index cache location. |

Tools

| Tool | What it returns | |---|---| | investigate | A structured EvidencePackage: claims with citations, hits, gaps, contradictions, declared live needs, and an answer sketch. The main entry point. | | search_knowledge | Ranked hits over the pinned snapshot (BM25), with kind/authority/theme/network/language/era filters. | | get_resource | The full pinned text behind any hit (brc://spec/62, ops://testnet, …). | | list_contradictions | Curated contradiction findings across the essay corpus. | | get_index_status | The snapshot pin: revision, fetch date, document counts, policy version. Read this before trusting any hit. | | get_symbol / find_references | Tier 0 SDK symbol cards and reference graphs. | | get_package_for_concept | Which confirmed package owns a concept ("BEEF", "runar", …). | | inspect_schema | Pinned service schemas (e.g. the BRC-100 wallet interface). | | error_taxonomy | The pinned ERR_* error catalogue with descriptions and interfaces. | | get_conformance_vector | Pinned test vectors (e.g. BRC-100 createAction). | | check_dependency | Read-only policy: is this package name denied (with reason and successor), confirmed in the pinned Tier 0/1 cards, or unknown? Absence from the deny list is never an endorsement. | | network_guard | Read-only policy: which network does this intent belong on? Testing on mainnet gets ask_switch to ttn; actuation requests are refused — this server never broadcasts, signs, or claims. |

The corpus

The snapshot pins: the BRC index and full BRC bodies; BSV Academy opcode/Script documentation; the Rúnar documentation set; Tier 0 package/symbol/spec cards plus Tier 0/1 repo documentation (READMEs, docs, examples) with evidenced BRC-to-package edges; a deny list; testnet operations notes; ordinality/provenance rules; curated Teranode throughput benchmark facts (AWS 1M TPS trial, SSRN 79.09B TPS preprint — conditions and sources inline); an attributed analysis card on Bitcoin's 2014–2017 direction change (documented / disputed / unproven kept separate); and 476 summarised Craig Wright essays (Medium 2018–2022 and Substack 2025–2026) with a curated contradiction map. See CORPUS.md for the full corpus documentation.

The snapshot is the product: answers are reproducible and auditable against it. It does not update itself. npx bsv-aio-mcp serves whatever pin was inside the last npm publish. The operator refreshes weekly (or on a repo tag) with the gated jobs below, then republishes so consumers receive the new pin. Full policy: mcp/refresh-policy.md.

$env:BSV_AIO_ALLOW_REFRESH = "1"
npm run refresh:tier0 --workspace=server   # Tier 0 SDKs/wallets + BRC bodies (regenerates brc_index.json)
npm run refresh:tier1 --workspace=server   # Tier 1 services/libraries
npm run fetch:academy --workspace=server   # Academy + Rúnar
npm test

Each job is guarded against accidental corpus collapse (80% retention). Review the diff, commit, bump the patch version, and npm publish.

Development

npm install          # install workspace deps
npm run build        # bundle server/dist
npm test             # 210 tests: goldens (A–D), tools, composition, ingest
npm run typecheck    # tsc --noEmit
node server/probe-full-battery.mjs   # adversarial smoke battery against the built server

Security model

Stdio transport only — no network listener. All tool inputs are schema-validated with length caps; FTS queries are tokenised, quoted and capped; snapshot file reads are confined to the corpus root (symlink-resolved); the serving database handle is reopened read-only after ingest; the deny list and live-fetch refusal cannot be bypassed by prompt phrasing. The threat model and test battery are in server/test/.