Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

bolthub

NPM · @BOLTHUB/MCP · SCANNED AUG 3

The bolthub API marketplace, L402 gateways, and your other MCP servers, on one Lightning budget.

Available components

+53 this week 78 Trust /100
Trust breakdown (6 categories)

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. How we score →

Supply Chain Security88
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 10 of 10 dependencies flagged as unhealthy (10 deprecated). View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to signaltech-org/bolthub-sdk). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 9 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability66
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3871 tokens (~175/item across 22 items; 22 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @bolthub/mcp

# add to Claude Code
claude mcp add ai-bolthub-mcp -- npx -y @bolthub/mcp
# add to Codex CLI
codex mcp add ai-bolthub-mcp -- npx -y @bolthub/mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ai-bolthub-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@bolthub/mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add ai-bolthub-mcp --command npx --arg -y --arg @bolthub/mcp
# ~/.hermes/config.yaml
mcp_servers:
  ai-bolthub-mcp:
    command: "npx"
    args: ["-y", "@bolthub/mcp"]
// mcp.json
{
  "mcpServers": {
    "ai-bolthub-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@bolthub/mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Aug 26 +15
    • Malware scan: unverified → pass security
    • Dependency health: 0.94 → 0.00 functional
    • Stability: unverified → 0.23 functional
  • 1 Aug 26 −10
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 31 Jul 26 +62
    • Install scripts: unverified → pass security
    • Provenance: unverified → pass security
    • Known CVEs: unverified → pass security
    • The attested source repository moved: signaltech-org/bolthub-sdk security
    • Schema quality: unverified → excellent functional
    • Tool coverage: unverified → 100 functional
    • License: unverified → pass functional
    • Maintenance: unverified → pass functional
    • Dependency health: partial → 0.94 functional
    • Licence: MIT functional
  • 29 Jul 26 −50
    • Provenance: pass → unverified security
    • Known CVEs: pass → unverified security
    • Install scripts: pass → unverified security
    • The attested source repository moved: signaltech-org/bolthub-sdk security
    • License: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Maintenance: pass → unverified functional
    • First check of Schema quality: unverified functional
    • Dependency health: 0.94 → partial functional
    • Licence: MIT functional
  • 28 Jul 26 +35
    • Install scripts: unverified → pass security
    • Known CVEs: unverified → pass security
    • Provenance: unverified → pass security
    • The attested source repository moved: signaltech-org/bolthub-sdk security
    • Maintenance: unverified → pass functional
    • Dependency health: unverified → 0.94 functional
    • License: unverified → pass functional
    • Licence: MIT functional
  • 27 Jul 26 25

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/@bolthub/[email protected]

Provenance verified

Ecosystem: npm · Outcome: verified

Reason: verified

Source repo:
signaltech-org/bolthub-sdk
Certificate issuer:
https://token.actions.githubusercontent.com
Certificate SAN:
https://github.com/signaltech-org/bolthub-sdk/.github/workflows/publish.yml@refs/tags/v0.8.1
Rekor log index:
2241433245
Predicate type:
https://slsa.dev/provenance/v1
Subject digest:
sha512:8d8b7516b543ebf12d0514efe8306d87063623465b6254f3ee882c6402e80d70f437bb2991f9452c56bbefc140d8d4876e3035db8fe6ca3cb03cb1b85
Discovery method:
attestation_endpoint
Dependencies 10 packages

10 packages in the resolved dependency tree · 10 deprecated · 1 stale · 1 without a linked repository.

MCP tools — 22 exposed · ~3,871 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
analyze_listing ~153

Audit a bolthub listing you own against the seller-guide rubric and get a prioritized punch list (HIGH/MED/LOW findings with evidence and a fix pointer). Checks origin protection (is the paywall bypassable? is bolthub's signed traffic being rejected?), honest status codes, docs/examples quality, public schema visibility, uptime and p95 latency, pricing-model fit, samples, and free-try. Read-only — changes nothing. Useful before publish_listing and any time revenue looks off. Requires BOLTHUB_ACCOUNT_TOKEN.

NameTypeReqDescription
endpoint_idstringAudit a single endpoint instead of the whole listing.
tenant_idstringWorkspace id. Omit when the account has exactly one workspace.

No output schema declared.

No examples provided.

buy_credit ~248

Buy prepaid CREDIT for a bolthub provider: pay ONCE for a sats budget spendable across ALL of that provider's endpoints, then call_api to any of them draws the credit with no further Lightning payment until it runs out. Use this when you'll call SEVERAL of one provider's endpoints — sum their costs and buy that much credit in one payment. Credit is face-value (the provider charges exactly the sats you ask for, no discount tiers) and per-provider: it never covers a different provider (you'd buy separate credit for each). Unused credit at expiry is non-refundable, so size it to what you expect to spend.

NameTypeReqDescription
credit_satsnumberyesAmount of credit to buy in sats (charged at face value)
max_cost_satsnumberMaximum sats to pay for the credit. If the price exceeds this, the purchase is refused and nothing is paid.
pathstringyesAny endpoint path of the provider to buy against (e.g. '/v1/history/candles'); the credit covers all of the provider's endpoints
slugstringyesThe provider's API slug (e.g. 'btc-intel')

No output schema declared.

No examples provided.

call_api ~264

Call an API endpoint on the bolthub marketplace. Handles L402 Lightning payments automatically. Use get_api_details or preview_cost first to check pricing. Returns the response along with cost and budget information.

NameTypeReqDescription
bodyobjectJSON request body for POST/PUT/PATCH requests
headersobjectAdditional HTTP headers
max_cost_satsnumberMaximum sats to pay for this request. If the invoice exceeds this amount, the call is refused and nothing is paid.
methodstringHTTP method — defaults to GET
pathstringyesThe endpoint path (e.g. '/v1/history/candles')
query_paramsobjectQuery parameters as key-value pairs
slugstringyesThe API slug (e.g. 'btc-intel')
stream_eventsnumberFor streaming (SSE) endpoints only: return after this many live events (default 20, max 200). One call buys one stream window; zero events in a window is normal for event-driven feeds. For continuous…
stream_secondsnumberFor streaming (SSE) endpoints only: return after this many seconds of listening (default 10, max 60).

No output schema declared.

No examples provided.

close_stream ~72

Close a stream opened with open_stream and get a final summary (events, duration, cost). Closing does not refund the connection payment. Streams also close themselves on gateway limits, on the paid window ending, or after 10 minutes without a read.

NameTypeReqDescription
stream_idstringyesThe id returned by open_stream

No output schema declared.

No examples provided.

connect_account ~114

One-click connect this MCP server to the user's bolthub account. Starts a browser pairing: returns an approval link and a short confirmation code — show BOTH to the user and tell them to check the codes match before approving. After they approve, call connect_status to finish. The minted account token is stored locally and never appears in chat. Use when a seller tool reports no account token.

NameTypeReqDescription
labelstringName shown on the approval page and in the dashboard token list. Defaults to 'Claude Desktop on <hostname>'.

No output schema declared.

No examples provided.

connect_status ~52

Finish or check the account pairing started by connect_account. Call it after the user says they approved in the browser. On success the account token is stored locally (never shown in chat) and the seller tools start working.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

connect_wallet ~177

Check or set up the payout wallet for a workspace. A deployed bolthub node can be bound directly (pass node_id — the credential copy is server-side, nothing secret enters chat). Other wallets connect in the browser: the tool returns the dashboard link plus guidance for self-hosted LND (invoice-only macaroon) and always-on NWC services; the chat only ever sees connected yes/no and reachability. Re-run after the user connects to confirm. Non-custodial: sats settle directly to the user's wallet.

NameTypeReqDescription
node_idstringBind this deployed bolthub node as the payout wallet (from deploy_node/node_status, or the list this tool shows). Server-side credential copy; changes where payouts land.
tenant_idstringWorkspace id. Omit when the account has exactly one workspace.

No output schema declared.

No examples provided.

create_workspace ~233

Create a new bolthub workspace (tenant) for selling APIs. Secret-free and reversible: an empty workspace costs nothing and the 30-day trial only starts when a first endpoint is published. A wallet is OPTIONAL until you publish a paid endpoint — then it's required (publishing a paid endpoint without one is blocked). Bind a deployed node as the payout wallet now with wallet_node_id, or later with connect_wallet. Requires an account token (connect_account).

NameTypeReqDescription
descriptionstringOptional workspace description shown in the directory.
namestringyesWorkspace display name.
slugstringURL slug (lowercase letters, digits, hyphens; 3-63 chars). Omit to derive from the name; taken slugs get a numbered variant automatically.
tagsarrayOptional directory tags (max 10).
wallet_node_idstringOptionally bind this deployed bolthub node (from deploy_node/node_status) as the payout wallet in the same call. Server-side credential copy; nothing secret enters chat. Omit to stay walletless and c…

No output schema declared.

No examples provided.

deploy_node ~340

Deploy a Lightning node (LND + Neutrino) on the user's own VPS — fully non-custodial. GUIDED FLOW, call it repeatedly as the conversation progresses: (1) no arguments → provider menu with prices; (2) provider chosen but no credential stored → sign-up + access-token steps for that provider (the token itself is entered at bolthub.ai/nodes/deploy in the browser, never in chat); (3) credential present → region menu; (4) region → server sizes with monthly prices; (5) region + size (or size 'recommended') → deploys and returns the node id. The user then creates the wallet + seed phrase on their own node page; bind it as the payout wallet afterwards with connect_wallet.

NameTypeReqDescription
api_keystringDEPRECATED: passing a VPS key here puts it into chat context, and agent sessions can't store keys anyway. The tool walks the user through adding it at bolthub.ai/nodes/deploy instead.
credential_idstringStored VPS credential id. Omit when the account has exactly one (it's used automatically); the tool lists them when there are several.
providerstringChosen provider. Omit to get the provider menu with prices.
regionstringRegion slug from the region menu step.
sizestringServer size slug from the sizes step, or 'recommended' for the cheapest (a Lightning node runs fine on it). Deploy starts only when both region and size are given.
torbooleanEnable Tor-only mode for maximum privacy. Default: false.

No output schema declared.

No examples provided.

get_api_details ~63

Get full details for a specific API including all endpoints, pricing, example requests/responses, and usage instructions. Use the slug from search_apis results.

NameTypeReqDescription
slugstringyesThe API slug from search_apis results (e.g. 'btc-intel')

No output schema declared.

No examples provided.

get_earnings ~103

Revenue report for a bolthub workspace you own: all-time and windowed earnings in sats, recent paid days, and top-earning endpoints. Read-only. Requires BOLTHUB_ACCOUNT_TOKEN.

NameTypeReqDescription
daysnumberReporting window in days for the recent-revenue figures (default 30, max 365). All-time totals are always included.
tenant_idstringWorkspace id. Omit when the account has exactly one workspace.

No output schema declared.

No examples provided.

get_onboarding_state ~78

One-look onboarding checklist for a workspace: wallet connected, endpoints drafted/published, origin-protection verdict (live probe), listing live, trial state — plus the single next step. Use it to drive the seller onboarding conversation. Read-only.

NameTypeReqDescription
tenant_idstringWorkspace id. Omit when the account has exactly one workspace.

No output schema declared.

No examples provided.

list_api ~352

Turn an API spec into a DRAFT bolthub listing: parses OpenAPI/Swagger or Postman (JSON or YAML), creates the endpoints as unlisted drafts (never visible in the directory), and applies a default per-request price you can refine. Publishing is a separate explicit step — use publish_listing. Requires BOLTHUB_ACCOUNT_TOKEN (your bolthub account, dashboard → MCP setup). Re-importing a spec for an origin that already has endpoints shows a dry-run diff instead of duplicating anything.

NameTypeReqDescription
apply_syncbooleanRe-import only: after reviewing the dry-run diff from a previous call, set true to apply it. Sync updates spec-owned fields only and never touches pricing.
origin_urlstringBase URL of the upstream API (e.g. https://api.example.com). Required when the spec declares no servers/base URL; overrides it when it does.
price_satsnumberPer-request price in sats applied to the draft (default 5, minimum 1). Per-endpoint refinement happens in the dashboard before publishing.
spec_contentstringInline spec instead of a URL: OpenAPI/Swagger/Postman JSON or YAML, or a plain JSON array of rows like [{"method":"GET","path":"/v1/x","title":"...","description":"..."}] for manual assembly from a c…
spec_urlstringURL of the spec. Fetched server-side through bolthub's SSRF-safe proxy — never directly.
tenant_idstringWorkspace id to list into. Omit when the account has exactly one workspace; with several, the tool lists them so the user can pick.

No output schema declared.

No examples provided.

mint_scoped_token ~309

Mint a scoped, capped child credential from a multi-use credential you already hold for an endpoint, to hand to a sub-agent. Attenuates OFFLINE (no payment, no round-trip): the child is a normal L402 token the worker spends with call_api or a plain client, and the gateway enforces every cap. Attenuation is tighten-only — a child can never widen scope or exceed the parent's remaining uses/sats. Give at least one restriction. Requires a held multi-use credential for this endpoint (a single-use payment has nothing to delegate). Revoke the whole tree with revoke_token.

NameTypeReqDescription
expirystringChild expiry as an ISO 8601 timestamp (e.g. '2026-08-01T00:00:00Z') or Unix milliseconds; must be no later than the parent's expiry
n_usesnumberCap the child to this many requests (must not exceed the parent's remaining n_uses)
pathstringyesThe endpoint path the held bundle is for (e.g. '/v1/history/candles')
path_prefixstringRestrict the child to request paths at or under this prefix (must be at or under the parent's path scope)
slugstringyesThe API slug the credential is for (e.g. 'btc-intel')
spend_cap_satsnumberCap the child's cumulative spend in sats (must not exceed the parent's max_sats)

No output schema declared.

No examples provided.

node_status ~315

Check the status of a deployed Lightning node. Returns current state, IP address, sync progress, and setup instructions when applicable. Pass wait_for to BLOCK until a milestone is reached (for driving deploy → wallet → bind without babysitting): the call polls server-side state and returns as soon as the condition holds, errors loudly on timeout or a terminal state, and stops immediately when only user action can progress things (wallet creation is a browser step). One call blocks at most ~150s (desktop MCP clients abort longer calls); with a bigger timeout_s the tool returns WAIT PAUSED with the remaining budget — re-call with that budget to continue. That single re-call is expected; never wrap this tool in your own polling loop.

NameTypeReqDescription
node_idstringyesNode ID returned by deploy_node
timeout_snumberTotal wait budget in seconds, 5-600 (default 120). A single call blocks at most ~150s to stay under desktop MCP transport kill-timers; a larger budget is spent across re-calls (the WAIT PAUSED result…
wait_forstringBlock until: wallet_pending = VPS up, LND waiting for its wallet (next step is the user's seed ceremony); ready = wallet created and macaroon minted; payable = ready AND an active channel with inboun…

No output schema declared.

No examples provided.

open_stream ~196

Open a live streaming (SSE) endpoint and hold the connection in the background. One Lightning payment buys the connection; read_stream then returns events for free until the stream closes. Use for continuous monitoring ("tell me when a big liquidation happens"); for a one-off taste use call_api with stream_events/stream_seconds instead. At most 3 streams can be open at once, and a stream nobody reads for 10 minutes closes itself.

NameTypeReqDescription
max_cost_satsnumberMaximum sats to pay for the connection. If the invoice exceeds this, nothing is paid.
pathstringyesThe streaming endpoint path (e.g. '/v1/derivatives/liquidations/stream')
query_paramsobjectQuery parameters (e.g. { min_size_usd: '100000' } to filter server-side)
slugstringyesThe API slug (e.g. 'btc-intel')

No output schema declared.

No examples provided.

preview_cost ~87

Preview the cost of calling an API endpoint without making the actual request or paying. Use this to check pricing before committing to a call.

NameTypeReqDescription
methodstringHTTP method — defaults to GET
pathstringSpecific endpoint path to check. If omitted, shows pricing for all endpoints.
slugstringyesThe API slug (e.g. 'btc-intel')

No output schema declared.

No examples provided.

publish_listing ~161

Take a workspace's draft endpoints live in the bolthub directory. Without confirm:true it is a DRY RUN that shows exactly what would go live (endpoints, prices, workspace activation) — show that to the user and get their go-ahead before re-calling with confirm:true. Publishing the first endpoint starts the workspace's 30-day free trial. Requires BOLTHUB_ACCOUNT_TOKEN.

NameTypeReqDescription
confirmbooleanOmitted/false = dry run (no changes). true = publish exactly what the dry run showed.
endpoint_idsarraySpecific endpoint ids to publish. Omit to publish every unlisted endpoint in the workspace.
tenant_idstringWorkspace id. Omit when the account has exactly one workspace.

No output schema declared.

No examples provided.

read_stream ~130

Read new events from a stream opened with open_stream. Free (the connection is already paid). Returns events since your previous read; pass wait_seconds (max 25) to wait for the next event instead of returning immediately — "wake me when something happens". Zero events on a healthy connection is normal for event-driven feeds. After the stream ends, one final read returns the closing summary.

NameTypeReqDescription
stream_idstringyesThe id returned by open_stream
wait_secondsnumberSeconds to wait for a new event when none are buffered (default 0 = return immediately, max 25)

No output schema declared.

No examples provided.

revoke_token ~178

Revoke the grant behind a prepaid bundle this session bought, killing the whole delegation tree minted from it (every scoped child made with mint_scoped_token). Takes effect on the next request within ~15s, returning token_revoked. Use it to cut off a sub-agent (or all of them) after handing out children. Optionally pass released_sats to return child-cap budget you reserved back to your budget.

NameTypeReqDescription
pathstringyesThe endpoint path the held bundle is for (e.g. '/v1/history/candles')
released_satsnumberOptional: sats of child-cap budget to return to your budget (what you reserved via mint_scoped_token for children of this grant)
slugstringyesThe API slug whose bundle grant you want to revoke (e.g. 'btc-intel')

No output schema declared.

No examples provided.

search_apis ~112

Search the bolthub API marketplace. Returns a list of available APIs with names, descriptions, tags, endpoint counts, and pricing. Use this to discover APIs that match your needs. Call without arguments to list all available APIs.

NameTypeReqDescription
querystringSearch query — matches API names, descriptions, tags, and endpoint paths
tagstringFilter by tag (e.g. 'weather', 'finance', 'ai'). Use search_apis() with no args to see all available tags.

No output schema declared.

No examples provided.

usage_summary ~134

Operational usage for a bolthub workspace you own: billing status and projected platform fee for the current cycle, paid traffic by endpoint, and SDK-tool (facilitator) usage. Pass endpoint_id for one endpoint's latency/error detail. Read-only. Requires BOLTHUB_ACCOUNT_TOKEN.

NameTypeReqDescription
daysnumberWindow for SDK-tool usage figures (default 30, max 365).
endpoint_idstringDrill into one endpoint: request count, success rate, avg/p95 latency, error breakdown.
tenant_idstringWorkspace id. Omit when the account has exactly one workspace.

No output schema declared.

No examples provided.