mcpbeat Sign in

BNM Data Shop MCP Server

answering

BNM Data Shop is answering right now. Last checked 10 min ago. It exposes 65 tools. Last commit 31 Aug 2026.

Official public-data caches sold per pull via x402/USDC on Base.

Uptime history 21 days of history · worst day 77%
21 days agonow
92.4%
Uptime 24h
85 of 92 checks
65
Tools
read from the server
5169 ms
Response time
average over 24h
2
Stars
last commit 31 Aug 2026

What changed 261

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 1 September 2026. No other catalogue keeps this.

17 Sep 3 tools changed the parameters they ask for get-one, get-page, search
17 Sep a tool appeared fmc-orders
16 Sep 3 tools changed the parameters they ask for get-one, get-page, search
16 Sep a tool appeared oalj-decisions
15 Sep 3 tools changed the parameters they ask for get-one, get-page, search
15 Sep a tool appeared stb-decisions
12 Sep 3 tools changed the parameters they ask for get-one, get-page, search
12 Sep a tool appeared faa-civil-penalty
11 Sep 3 tools changed the parameters they ask for get-one, get-page, search
11 Sep a tool appeared epa-eab
and 241 more, back to 1 September 2026

BNM Data Shop does not always answer

Over the last week it answered 82.6% of our checks. We check every 15 minutes, so you hear about the next outage within the hour — not from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 10 min ago.

run in your terminal
claude mcp add bnm-data-shop --transport http https://ticks.bnm.farm/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "bnm-data-shop": {
      "url": "https://ticks.bnm.farm/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.bnm-data-shop]
url = "https://ticks.bnm.farm/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "bnm-data-shop": {
      "url": "https://ticks.bnm.farm/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "bnm-data-shop": {
      "url": "https://ticks.bnm.farm/mcp"
    }
  }
}

Available tools 65

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

mariners
mariners
GET https://ticks.bnm.farm/mariners — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. USCG D13 / Northwest LNM Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
mariners-d1
GET https://ticks.bnm.farm/mariners-d1 — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. USCG D1 / Northeast LNM Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
mariners-d11
GET https://ticks.bnm.farm/mariners-d11 — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. USCG D11 / Southwest LNM Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
mariners-d14
GET https://ticks.bnm.farm/mariners-d14 — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. USCG D14 / Pacific LNM Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
mariners-d17
GET https://ticks.bnm.farm/mariners-d17 — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. USCG D17 / Alaska LNM Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
mariners-d5
GET https://ticks.bnm.farm/mariners-d5 — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. USCG D5 / Mid-Atlantic LNM Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
mariners-d7
GET https://ticks.bnm.farm/mariners-d7 — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. USCG D7 / Southeast LNM Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
mariners-d8
GET https://ticks.bnm.farm/mariners-d8 — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. USCG D8 / Gulf LNM Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
mariners-d9
GET https://ticks.bnm.farm/mariners-d9 — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. USCG D9 / Great Lakes LNM Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
epa
epa-alj
GET https://ticks.bnm.farm/epa-alj — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. EPA OALJ Initial Decision and Order + ALJ Order text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
epa-cafo
GET https://ticks.bnm.farm/epa-cafo — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. EPA Part 22 CAFO / ESA administrative penalty letter text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
epa-eab
GET https://ticks.bnm.farm/epa-eab — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. EPA EAB Unpublished Final Order / Board Order text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
gmp
gmp
GET https://ticks.bnm.farm/gmp — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. Health Canada Drug GMP report-card observation bodies GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
gmp-md
GET https://ticks.bnm.farm/gmp-md — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. Health Canada medical-device report-card observation bodies GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
aaib
aaib-reports
GET https://ticks.bnm.farm/aaib-reports — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. UK AAIB investigation-report text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
air
air-letters
GET https://ticks.bnm.farm/air-letters — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. USDA APHIS AIR confirmation-letter text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
awa
awa
GET https://ticks.bnm.farm/awa — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. USDA APHIS AWA inspection-report observation text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
bis
bis-orders
GET https://ticks.bnm.farm/bis-orders — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. BIS institution charging-letter / order text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
bsee
bsee-reports
GET https://ticks.bnm.farm/bsee-reports — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. BSEE District Accident Investigation Report text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
cder
cder-reviews
GET https://ticks.bnm.farm/cder-reviews — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. FDA CDER Integrated Review text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
cfpb
cfpb-orders
GET https://ticks.bnm.farm/cfpb-orders — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. CFPB consent-order / administrative-order text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
cftc
cftc-orders
GET https://ticks.bnm.farm/cftc-orders — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. CFTC institution enforcement-order / settlement text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
cma
cma-ca98
GET https://ticks.bnm.farm/cma-ca98 — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. UK CMA CA98 infringement-decision text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
csb
csb-reports
GET https://ticks.bnm.farm/csb-reports — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. US CSB final investigation report PDFs Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
denovo
denovo-orders
GET https://ticks.bnm.farm/denovo-orders — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. FDA De Novo classification-order text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
eis
eis-reports
GET https://ticks.bnm.farm/eis-reports — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. EPA NEPA Environmental Impact Statement PDFs GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
ema
ema-referrals
GET https://ticks.bnm.farm/ema-referrals — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. EMA human-medicine referral procedure text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
faa
faa-civil-penalty
GET https://ticks.bnm.farm/faa-civil-penalty — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. FAA Civil Penalty Appeals Administrator Order text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
fdic
fdic-orders
GET https://ticks.bnm.farm/fdic-orders — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. FDIC institution consent-order / C&D text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
ferc
ferc-orders
GET https://ticks.bnm.farm/ferc-orders — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. FERC institution stipulation-and-consent text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
fifra
fifra-orders
GET https://ticks.bnm.farm/fifra-orders — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. EPA FIFRA institution order / consent text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
fincen
fincen-orders
GET https://ticks.bnm.farm/fincen-orders — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. FinCEN institution consent-order text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
firm
firm-check
Free cross-door search of official caches: Form 483, FDA warning letters, FDA untitled letters, FTC BCP warning letters, Ofwat enforcement, Ofgem enforcement, CFPB orders, OCC C&Ds, FDIC orders, and the FDA import-alert catalog. Not a paid SKU. Hits name the door, the id or page to buy, and fetchedAt/asOf. One official text is GET ?id= ($0.02). The page of newest 10 official texts is $0.05. The import-alert table stays the entire current table at $0.05. Does not return letter bodies or the full import-alert table.
fmc
fmc-orders
GET https://ticks.bnm.farm/fmc-orders — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. FMC Initial Decision / Commission Order text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
fmshrc
fmshrc-orders
GET https://ticks.bnm.farm/fmshrc-orders — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. FMSHRC ALJ + Commission Decision/Order text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
form
form-483
GET https://ticks.bnm.farm/form-483 — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. FDA Form 483 observation bodies GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
frb
frb-orders
GET https://ticks.bnm.farm/frb-orders — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. FRB institution C&D / written-agreement / PCA text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
fsis
fsis-humane
GET https://ticks.bnm.farm/fsis-humane — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. USDA FSIS humane-handling enforcement letter text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
ftc
ftc-wl
GET https://ticks.bnm.farm/ftc-wl — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. FTC BCP warning-letter text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
gain
gain
GET https://ticks.bnm.farm/gain — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. USDA FAS GAIN attaché report TEXT GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
hhs
hhs-oig-reports
GET https://ticks.bnm.farm/hhs-oig-reports — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. HHS OIG audit and evaluation report PDFs Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
ico
ico-mpn
GET https://ticks.bnm.farm/ico-mpn — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. ICO Monetary Penalty Notice text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
import
import-alerts
GET https://ticks.bnm.farm/import-alerts — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. FDA Import Alerts / DWPE Whole current table ($0.05). Send If-None-Match or ?since= to 304 an unchanged snapshot. Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
ncua
ncua-orders
GET https://ticks.bnm.farm/ncua-orders — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. NCUA institution consent C&D text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
npdes
npdes-permits
GET https://ticks.bnm.farm/npdes-permits — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. EPA individual NPDES permit text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
oalj
oalj-decisions
GET https://ticks.bnm.farm/oalj-decisions — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. DOL OALJ / BALCA / ARB Decision and Order text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
occ
occ-cd
GET https://ticks.bnm.farm/occ-cd — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. OCC institution C&D / consent-order text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
ofac
ofac-orders
GET https://ticks.bnm.farm/ofac-orders — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. OFAC institution enforcement-release text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
ofgem
ofgem-enforcement
GET https://ticks.bnm.farm/ofgem-enforcement — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. Ofgem enforcement-notice text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
ofsted
ofsted-inspections
GET https://ticks.bnm.farm/ofsted-inspections — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. Ofsted school / provider inspection report text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
ofwat
ofwat-enforcement
GET https://ticks.bnm.farm/ofwat-enforcement — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. Ofwat Water Industry Act 1991 enforcement-notice text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
one
get-one
Paid get-one on an extracted-body door. Same URL ?id= ($0.02 / 20000 atomic). Not a new SKU. Unpaid returns HTTP 402 asking 20000.
orr
orr-enforcement
GET https://ticks.bnm.farm/orr-enforcement — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. ORR Railways Act s.55 enforcement-notice text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
oshrc
oshrc-orders
GET https://ticks.bnm.farm/oshrc-orders — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. OSHRC ALJ Decision/Order + Commission Final Order text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
page
get-page
Paid get-page on an extracted-body door. Same URL as the door GET ($0.05). Omit before/page for the newest 10 official texts; pass the free-index cursor for an older page; ?since= for newer-than. Not a new SKU. Unpaid returns HTTP 402.
pcac
pcac
GET https://ticks.bnm.farm/pcac — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. FDA PCAC 503A briefing-memo evaluation text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
phmsa
phmsa-orders
GET https://ticks.bnm.farm/phmsa-orders — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. PHMSA pipeline enforcement-order text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
search
search
Free catalog search on an extracted-body door. Returns matching rows plus id, the ?id= URL ($0.02), and the page cursor ($0.05). Optional before/date filters. Not a paid SKU. Does not return official bodies.
stb
stb-decisions
GET https://ticks.bnm.farm/stb-decisions — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. STB Board Decision / Order text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
superfund
superfund-rods
GET https://ticks.bnm.farm/superfund-rods — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. EPA Superfund ROD and Five-Year Review text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
swisspar
swisspar
GET https://ticks.bnm.farm/swisspar — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. Swissmedic first-authorisation SwissPAR evaluation text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
ticks
ticks
GET https://ticks.bnm.farm/ticks — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. USDA farm market prices Whole current table ($0.05). Send If-None-Match or ?since= to 304 an unchanged snapshot. Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
ttb
ttb-oic
GET https://ticks.bnm.farm/ttb-oic — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. TTB institution Offer in Compromise text GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
untitled
untitled-letters
GET https://ticks.bnm.farm/untitled-letters — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. FDA Untitled Letter bodies (CDER OPDP + CBER promo) GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.
warning
warning-letters
GET https://ticks.bnm.farm/warning-letters — $0.05 USDC on Base to 0xf59621FC406D266e18f314Ae18eF0a33b8401004. FDA warning-letter bodies GET ?id= is one official text ($0.02). Newest chunk on a plain GET ($0.05); older chunk if they ask (?before, $0.05); newer than a watermark ?since= ($0.05). Unpaid returns HTTP 402. After a valid X-PAYMENT, the same URL returns JSON. Not a new SKU.

Endpoints

URLTransportStateLatencyChecked
https://ticks.bnm.farm/mcp streamable-http answering 4770 ms 10 min ago

Alternatives to BNM Data Shop

same job, measured the same way
X402 API
by fernsugi

DeFi data API for AI agents — pay-per-call via x402/USDC on Base

23 installs/wk local only
AgentPay
by agentpay

22 pay-per-call AI + crypto + data microservices via x402. USDC on Base.

local only
Boo X402 MCP
by lucle87

Pay-per-call crypto data for AI agents. USDC on Base via x402. No API key.

19 installs/wk local only
Crypto Market Pulse
by pythonanywhere-cryptopulse

Pay-per-call crypto data on Base: market pulse, prices, chain snapshot, USDC stats. x402 USDC.

8 tools answering
O
Polyform
by polyform

Pay-per-call data APIs for AI agents. USDC on Base via x402. 33 tools, no signup.

67 tools answering
A
CryptoPulse Data API
by saascloud

Pay-per-call crypto market intelligence for AI agents. USDC on Base via x402.

11 tools answering
C
Utilsforagents MCP
by utilsforagents

Pay-per-call AI agent utilities via x402 on Base (USDC). 7 tools, $0.003/call.

40 installs/wk local only
Orchard Data MCP
by letom1176-spec

Pay-per-call market data for AI agents via x402 (USDC on Base): regime, track record, catalysts.

28 installs/wk local only

BNM Data Shop — questions

Answers built from our own checks of this server.

What can BNM Data Shop do?
It exposes 65 tools, read directly from the server on our last check. Among them: aaib-reports, air-letters, awa, bis-orders, bsee-reports, cder-reviews and 59 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is BNM Data Shop mostly used for?
Its tools cluster around mariners, epa and gmp. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is BNM Data Shop working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 85 of 92 checks got a reply (92.4%), average response time 5169 ms. The bar chart above shows every period we have measured.
How do I connect BNM Data Shop?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does BNM Data Shop need an API key?
No. BNM Data Shop completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 65 of them are readable on this page. This is what we observed, not what the docs claim.
Is BNM Data Shop open source?
Yes — it is published under the MIT licence, written in TypeScript, 2 stars on GitHub and 2 open issues. The source link is on this page, so you can read exactly what it does with your data before you connect it.