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

bolthub

NPM · @BOLTHUB/MCP · SCANNED SEP 20

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

Available components

+1 this week 94 Trust /100
Trust breakdown (7 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 → Why this is hard to score →

Supply Chain Security99
  • 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
  • 1 of 10 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • 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 57 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability73
  • 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 Management97
  • Stability observed for 29 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
Tool Safety92
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 2 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "revoke_token" implies "revoke" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Partial
  • An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the bolthub MCP server?

bolthub runs locally as an npm package, launched with npx -y @bolthub/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @bolthub/mcp

# add to Claude Code
claude mcp add ai-bolthub-mcp -- npx -y @bolthub/mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "ai-bolthub-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@bolthub/mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "ai-bolthub-mcp": {
      "command": "npx",
      "args": [
        "-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"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "ai-bolthub-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@bolthub/mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add ai-bolthub-mcp -t stdio -c npx -a -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.

  • 20 Sept 26 +1

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

  • 17 Sept 26 +1

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

  • 16 Sept 26 −2
    • Stability: pass → 0.83 functional
  • 15 Sept 26 0
    • Stability: 0.97 → pass security
  • 14 Sept 26 +1

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

  • 11 Sept 26 +1

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

  • 9 Sept 26 −2
    • Stability: pass → 0.80 functional
  • 8 Sept 26 0
    • Stability: 0.97 → pass security
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 20 Sept 2026 · Analysed npm/@bolthub/mcp@0.7.2

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
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

Background: How many MCP packages publish verified provenance →

Dependencies 10 packages
Packages resolved 10
Stale 1
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

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.

Common questions

What is the bolthub MCP server?

bolthub is an MCP server listed in the public MCP registry as ai.bolthub/mcp. The bolthub API marketplace, L402 gateways, and your other MCP servers, on one Lightning budget. This page covers its npm package (@bolthub/mcp).

Is the bolthub MCP server safe to use?

bolthub scores 94 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the bolthub MCP server expose?

bolthub exposes 22 tools: search_apis, get_api_details, preview_cost, call_api, buy_credit, and 17 more. Their descriptions and schemas cost roughly 3,871 tokens of context every time the server is loaded.

Is the bolthub MCP server still maintained?

bolthub is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the bolthub MCP server under?

bolthub declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.