Skip to main content
Glama

bolthub SDK

Source code for every publicly published bolthub.ai package: the npm @bolthub/* scope and the bolthub / bolthub-verify PyPI packages.

bolthub is a payment layer for agent-to-tool commerce: charge agents for your MCP tools and APIs per call, settling straight to your wallet over Lightning (L402), with bolthub never in the funds path. These packages are the open-source side of that: the tool-payment SDK, payment clients, MCP servers, a CLI, and origin-verification middleware.

Package

Registry

Directory

What it is

@bolthub/pay

npm

packages/pay

The payments SDK, both sides: price an MCP tool or HTTP endpoint (createPaywall), pay for tools within a budget (ToolClient for MCP, L402Client for HTTP), wallet adapters (LND, LNbits, Phoenixd, NWC, WebLN); rails: L402, facilitator. Zero runtime dependencies

@bolthub/mcp

npm

packages/mcp

The bolthub MCP server: marketplace + specific gateways + your other MCP servers behind one config entry, with one shared Lightning budget

@bolthub/cli

npm

packages/cli

Terminal client for the marketplace

@bolthub/verify

npm

packages/verify

Gateway signature verification middleware (Express/Fastify/Node)

bolthub

PyPI

packages/agent-python

The payments SDK in Python: L402 client + wallets, and the seller-side paywall

bolthub-verify

PyPI

packages/verify-python

Python gateway signature verification (Flask/Django/FastAPI)

packages/shared is internal (never published); it is here because @bolthub/mcp bundles it.

Consolidation (2026-07): @bolthub/agent merged into @bolthub/pay (≥0.4.0); @bolthub/mcp-registry and @bolthub/mcp-bridge merged into @bolthub/mcp. The old names are deprecated on npm and point here.

Relationship to the bolthub platform

The bolthub platform (gateway, API, web app) lives in a private monorepo. The SDK packages above are developed there and synced to this repository, which is the publish origin: releases are tagged here and built + published by CI with npm provenance, so what's on npm is verifiably built from this public source.

Issues and PRs are welcome here, but note that this repo is a generated mirror: PRs are never merged directly. Accepted changes are applied to the monorepo first (with attribution), then sync back out with the next release. See CONTRIBUTING.md before opening a PR.

Related MCP server: 402-mcp

Verifying what you install

Published dist/ bundles are built with Bun from this source and ship source maps with embedded sources, so the tarball itself is readable.

# provenance: confirm the tarball was built from this repo by GitHub Actions
npm audit signatures

# or rebuild and compare yourself
git clone https://github.com/signaltech-org/bolthub-sdk
cd bolthub-sdk && bun install
cd packages/mcp && bun run build

See SECURITY.md for the trust model (what touches your wallet credentials and what doesn't) and how to report vulnerabilities.

Development

bun install
bun test

Each TypeScript package builds with bun run build from its directory (@bolthub/pay must be built before the packages that bundle it).

License

MIT

Available Tools

19 tools
analyze_listingA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idNoWorkspace id. Omit when the account has exactly one workspace.
endpoint_idNoAudit a single endpoint instead of the whole listing.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description reinforces this with 'Read-only — changes nothing.' It adds extensive behavioral details about what checks are performed (e.g., origin protection, status codes, uptime) and the output format (prioritized punch list with evidence and fix pointer), far exceeding annotation requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately concise and well-structured. It front-loads the core purpose, then lists checks, states read-only, adds usage advice, and ends with a requirement. Every sentence adds value, but it could be slightly shorter without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description fully explains return values: 'prioritized punch list (HIGH/MED/LOW findings with evidence and a fix pointer).' It also covers the scope of checks and prerequisites, making it complete for a tool with no required parameters and no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already documented. The description adds moderate value by explaining the context of each parameter: 'Omit when the account has exactly one workspace' for tenant_id and 'Audit a single endpoint instead of the whole listing' for endpoint_id, providing usage guidance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Audit a bolthub listing you own against the seller-guide rubric and get a prioritized punch list'. It uses a specific verb (audit) and resource (listing), and distinguishes from siblings by mentioning 'useful before publish_listing'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: 'Useful before publish_listing and any time revenue looks off.' It also specifies a prerequisite: 'Requires BOLTHUB_ACCOUNT_TOKEN.' However, it does not explicitly state when not to use this tool or list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

buy_creditA

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.

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

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It fully discloses behavioral traits: credit is face-value, per-provider, non-refundable at expiry, and is consumed by call_api. This covers the key behavioral aspects an agent needs to avoid mistakes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat lengthy but efficient. It front-loads the main action and then adds necessary context. Every sentence contributes meaning, though it could be slightly tightened without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description adequately explains what happens upon purchase and how credit is used. It covers the lifecycle enough for an agent to use the tool correctly, though it omits details like balance checking or expiry specifics, which are minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions, so baseline is 3. The description adds value by explaining the relationship between parameters (e.g., credit_sats is face value, path is any endpoint for verification) and the overall workflow, justifying a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Buy prepaid CREDIT' and specifies the resource 'bolthub provider'. It distinguishes the tool from siblings like call_api by explaining that credit is drawn when calling APIs, and contrasts with per-endpoint payment. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this when you'll call SEVERAL of one provider's endpoints' and provides a rule of thumb: sum costs and buy that much credit. It also clarifies that credit is per-provider and non-transferable, effectively advising against using it for single calls or multiple providers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

call_apiA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body for POST/PUT/PATCH requests
pathYesThe endpoint path (e.g. '/v1/history/candles')
slugYesThe API slug (e.g. 'btc-intel')
methodNoHTTP method — defaults to GET
headersNoAdditional HTTP headers
query_paramsNoQuery parameters as key-value pairs
max_cost_satsNoMaximum sats to pay for this request. If the invoice exceeds this amount, the call is refused and nothing is paid.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses automatic L402 payment handling and that it returns cost and budget info. However, it does not mention failure modes, rate limits, or what happens when payment fails, leaving some behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, front-loaded with the core purpose, and contains no unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (7 params, no output schema), the description provides key context: payment handling, suggestion to check pricing first, and return info. It is nearly complete but could mention expected response format or error handling for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter is described in the schema. The tool description itself does not add additional parameter semantics beyond what is in the schema, meeting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it calls an API endpoint on the bolthub marketplace and handles L402 payments. It distinguishes from siblings like get_api_details (provides API info) and preview_cost (checks pricing), making the tool's purpose specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises using get_api_details or preview_cost first to check pricing, providing clear context for when to use this tool vs alternatives. It lacks explicit when-not-to-use guidance but is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

connect_accountA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNoName shown on the approval page and in the dashboard token list. Defaults to 'Claude Desktop on <hostname>'.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate openWorldHint=true, but description adds specifics: browser pairing, approval link, confirmation code, and token storage. No contradictions. The description enriches understanding of side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise and front-loaded with main purpose. The flow is described sequentially with clear instructions. A minor redundancy could be trimmed, but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional param, no output schema), the description covers all necessary aspects: purpose, flow, user guidance, follow-up tool, and security note. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already describes the label parameter with 100% coverage. Description adds context about where the name appears (approval page, token list). Adequate but doesn't significantly expand beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it connects the MCP server to the user's bolthub account via browser pairing. It distinguishes from siblings like connect_status and connect_wallet by specifying the exact flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'Use when a seller tool reports no account token.' Also tells the user to call connect_status after approval, providing a clear workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

connect_statusA
Idempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already note idempotent and non-destructive. The description adds that on success the account token is stored locally (never shown in chat) and seller tools start working, which provides behavioral context beyond annotations. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. Front-loaded with purpose, every sentence contributes value. Extremely concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description adequately covers the pairing flow, success behavior, and activation of seller tools. However, it could mention failure cases or what happens if the approval hasn't occurred.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters (100% coverage), so the description need not add parameter details. It uses no-parameter design effectively, and the description explains the tool's purpose without needing param info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool finishes or checks account pairing started by connect_account, and distinguishes it from its sibling tool connect_account. The verb 'check' or 'finish' is specific to this resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to call it after the user approves in the browser, providing a clear when-to-use. It also implies that it should be used after connect_account. However, it does not explicitly mention when not to use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

connect_walletA
Idempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
node_idNoBind 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_idNoWorkspace id. Omit when the account has exactly one workspace.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (idempotent, non-destructive), the description adds that it is non-custodial, that credentials are handled server-side, and that only connected status and reachability are exposed in chat.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is efficient and front-loaded with the purpose. While it contains multiple sentences, each adds necessary context without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains what the tool returns (dashboard link, guidance, confirmation). It covers both modes and mentions non-custodial nature, making it complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions already cover both parameters. The description adds value by explaining the workflow for node_id (server-side copy) and tenant_id (workspace id), and clarifies that node_id changes where payouts land.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it checks or sets up a payout wallet for a workspace, distinguishing it from sibling tools like connect_account or connect_status by focusing on wallet connection for payouts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear guidance on two usage modes (direct node binding vs browser link) and instructs to re-run after user connects. However, no explicit exclusions or comparisons to alternatives like connect_account.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_workspaceA

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. Wallet connection is a separate step (connect_wallet). Requires an account token (connect_account).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesWorkspace display name.
slugNoURL slug (lowercase letters, digits, hyphens; 3-63 chars). Omit to derive from the name; taken slugs get a numbered variant automatically.
tagsNoOptional directory tags (max 10).
descriptionNoOptional workspace description shown in the directory.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond annotations by explaining that the workspace is reversible, costs nothing initially, and the 30-day trial starts only on first publish. It also mentions the prerequisite for an account token. No contradiction with annotations (openWorldHint=true, idempotentHint=false, destructiveHint=false).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no fluff. The first sentence states the primary purpose, and the second adds key behavioral traits. Every sentence serves a purpose, and the structure is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 params, no output schema), the description covers creation behavior, cost implications, prerequisites, and relationship to other tools. It could mention the expected output (e.g., workspace ID) but is otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so descriptions already exist for each parameter. The description adds extra context for the 'slug' parameter (automatic derivation and fallback) and mentions tag limits. This enriches the schema but does not compensate for missing coverage since coverage is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Create' and resource 'bolthub workspace (tenant) for selling APIs'. It distinguishes from siblings like 'connect_wallet' and 'connect_account' by noting they are separate steps, making the purpose specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use: it is secret-free, reversible, and has cost implications only after publishing. It explicitly states the prerequisite 'Requires an account token (connect_account)' and separates steps. However, it does not explicitly exclude scenarios where the tool should not be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deploy_nodeA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
torNoEnable Tor-only mode for maximum privacy. Default: false.
sizeNoServer 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.
regionNoRegion slug from the region menu step.
api_keyNoDEPRECATED: 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.
providerNoChosen provider. Omit to get the provider menu with prices.
credential_idNoStored VPS credential id. Omit when the account has exactly one (it's used automatically); the tool lists them when there are several.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description fully discloses the guided flow, the need for user to enter token at a website, and that deployment yields a node id. It aligns with annotations (non-destructive, open world).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with numbered steps, each sentence adds essential detail for the guided flow, and it is concise given the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description states the result (node id) and covers all phases, leaving no ambiguity for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 6 parameters are described in schema and the description adds rich context: e.g., provider omitted for menu, credential_id automatic when one, meaning of 'recommended' size.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool deploys a Lightning node (LND+Neutrino) on the user's own VPS and details the guided multi-step flow, distinguishing it from siblings like connect_wallet and node_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly describes when to call repeatedly as the conversation progresses, when to omit parameters (e.g., omit provider for menu), and references connect_wallet for post-deployment binding.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_api_detailsA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe API slug from search_apis results (e.g. 'btc-intel')

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It indicates a read-only retrieval of details with no mention of side effects, which is appropriate. Could add more about rate limits or typical response size, but sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that conveys all essential information without redundancy. Front-loads the main action and includes a critical instruction for parameter usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given only one parameter, no output schema, and no nested objects, the description is complete. It tells the agent what the tool returns and how to call it appropriately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and description adds meaningful context: 'Use the slug from search_apis results' with an example value, going beyond the schema's generic description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves full details for a specific API, including endpoints, pricing, examples, and usage instructions. It distinguishes itself from sibling tools like search_apis (which returns summaries) and others that perform actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use the slug from search_apis results, guiding the agent on prerequisite. Does not mention when not to use, but the context is clear given the distinct purpose from siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_earningsA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoReporting window in days for the recent-revenue figures (default 30, max 365). All-time totals are always included.
tenant_idNoWorkspace id. Omit when the account has exactly one workspace.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already set readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds valuable context: the tool returns earnings data in sats, includes recent paid days and top-earning endpoints, and is read-only. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the purpose, scope, and constraints. Every sentence carries essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description clearly enumerates the return data (earnings, paid days, top endpoints). For a read-only reporting tool with good annotations, this is sufficiently complete for an agent to understand behavior and usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. The description adds the note 'All-time totals are always included', which clarifies behavior beyond the schema. However, this adds minimal value over the already comprehensive schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it's a revenue report for a bolthub workspace, specifying exact data (all-time and windowed earnings in sats, recent paid days, top-earning endpoints). This distinguishes it from sibling tools like 'usage_summary' or 'get_api_details'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Read-only' and 'Requires BOLTHUB_ACCOUNT_TOKEN', providing clear usage conditions. It also mentions default and max for the 'days' parameter and how to handle 'tenant_id'. However, it does not explicitly state when not to use this tool or suggest alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_onboarding_stateA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idNoWorkspace id. Omit when the account has exactly one workspace.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it as read-only and idempotent. Description reinforces 'Read-only' and adds context about the checklist contents (e.g., trial state, next step). No additional behavioral traits disclosed but no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is very concise: one sentence listing what it returns, plus usage note and read-only label. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and one optional parameter, the description sufficiently explains what the tool returns (full checklist) and its purpose (onboarding conversation). Complete for agent decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with description for the sole optional parameter. The tool description does not add parameter details beyond what the schema provides, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool returns an onboarding checklist for a workspace, listing specific items like wallet connection, endpoint status, etc. It distinguishes from sibling tools that are about analysis, listing, or deployment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description suggests using it 'to drive the seller onboarding conversation' but does not explicitly state when not to use or compare with alternatives. Usage context is clear but lacks exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_apiA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
spec_urlNoURL of the spec. Fetched server-side through bolthub's SSRF-safe proxy — never directly.
tenant_idNoWorkspace id to list into. Omit when the account has exactly one workspace; with several, the tool lists them so the user can pick.
apply_syncNoRe-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_urlNoBase 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_satsNoPer-request price in sats applied to the draft (default 5, minimum 1). Per-endpoint refinement happens in the dashboard before publishing.
spec_contentNoInline 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 conversation.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Disclosures include: endpoints are unlisted drafts (never visible), re-importing shows dry-run diff without duplication, spec fetching uses SSRF-safe proxy, and pricing applies by default. No contradiction with annotations (openWorldHint, non-destructive).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single coherent paragraph that front-loads the main purpose and then details parameters. Slightly lengthy but every sentence adds value; minor improvement could be structuring with bullet points.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite thorough parameter explanations, the description does not mention the return value or output structure. Since there is no output schema, the agent must infer the result (likely a listing ID or confirmation). This omission reduces completeness for a complex tool with many parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds significant value beyond schema: spec_url mentions SSRF-safe proxy, tenant_id explains workspace selection, apply_sync clarifies re-import usage, origin_url details overriding behavior, price_sats gives default and minimum, spec_content shows flexibility (inline spec or manual array).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool converts an API spec into a draft bolthub listing, parsing OpenAPI/Swagger/Postman and creating unlisted endpoints with a default price. It distinguishes itself from the sibling tool publish_listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit context on when to use (creating draft from spec) and when not to (publishing is separate). Mentions re-import behavior with dry-run diff and explains tenant_id logic for single vs multiple workspaces.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mint_scoped_tokenA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe endpoint path the held bundle is for (e.g. '/v1/history/candles')
slugYesThe API slug the credential is for (e.g. 'btc-intel')
expiryNoChild 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_usesNoCap the child to this many requests (must not exceed the parent's remaining n_uses)
path_prefixNoRestrict the child to request paths at or under this prefix (must be at or under the parent's path scope)
spend_cap_satsNoCap the child's cumulative spend in sats (must not exceed the parent's max_sats)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description covers key behaviors: offline attenuation, tighten-only, child token type, gateway enforcement, and prerequisite of a multi-use credential. Lack of output format is acceptable given no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the main action, followed by offline nature and constraints. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters, no annotations, and no output schema, the description adequately covers prerequisites, behavioral constraints, and relationship to revoke_token. Minor missing details like return value are acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all 6 parameters with descriptions. The description adds general guidance ('Give at least one restriction') but does not elaborate on individual parameters beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool mints a scoped, capped child credential from a multi-use credential for delegation to a sub-agent. It distinguishes from siblings like revoke_token by explicitly mentioning it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use (when holding a multi-use credential and needing to delegate) and mentions the offline nature. It references revoke_token for revocation but does not explicitly list alternatives or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

node_statusA

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). Never wrap this tool in your own polling loop — use wait_for.

ParametersJSON Schema
NameRequiredDescriptionDefault
node_idYesNode ID returned by deploy_node
wait_forNoBlock 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 inbound capacity (what a settlement test needs). A node already past the milestone returns immediately.
timeout_sNoHard wait ceiling in seconds, 5-600 (default 120). On timeout the tool errors with what to do next; it never silently keeps polling.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description fully details behavior: blocks server-side, errors on timeout/terminal state, stops when only user action needed (wallet creation). This is comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence is informative; the description is front-loaded with the core purpose, then details on wait_for. No redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with no output schema, the description fully covers what the tool returns and all parameter behaviors, making it self-contained for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and description adds significant context: explains each wait_for enum value, timeout range and behavior, and the return value implications for node_id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: checking the status of a deployed Lightning node, returning specific fields like state, IP, and sync progress. It differentiates from sibling tools like deploy_node by focusing on status retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance not to wrap in own polling loop and to use wait_for for blocking. Clearly explains when to use each wait_for option and the timeout behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_costA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoSpecific endpoint path to check. If omitted, shows pricing for all endpoints.
slugYesThe API slug (e.g. 'btc-intel')
methodNoHTTP method — defaults to GET

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries the burden. It discloses that no actual request or payment occurs, which is key. However, it lacks details on authorization, rate limits, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, immediately stating the core purpose with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations or output schema, the description adequately covers the tool's purpose and usage. It could mention return values (cost estimate) but is sufficient for a simple preview tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds no new information beyond the schema (e.g., 'If omitted, shows pricing for all endpoints' is repeated from the schema). No extra semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool previews the cost of calling an API endpoint without making the actual request, distinguishing it from siblings like call_api and buy_credit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this to check pricing before committing to a call', providing clear context. It implies when not to use (when wanting to execute the call) and the alternative sibling call_api is obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_listingA
Idempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoOmitted/false = dry run (no changes). true = publish exactly what the dry run showed.
tenant_idNoWorkspace id. Omit when the account has exactly one workspace.
endpoint_idsNoSpecific endpoint ids to publish. Omit to publish every unlisted endpoint in the workspace.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses dry run behavior, token requirement, and free trial implication. Adds context beyond annotations (openWorldHint, idempotentHint, destructiveHint=false). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences plus brief extra context. Front-loaded with main action, then detailed workflow. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers workflow, dry run, free trial, token requirement. No output schema, but behavior is well-explained. Little missing: could mention idempotency or error cases, but sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage 100%. Description adds usage semantics: confirm as dry run vs publish, tenant_id optional for single workspace, endpoint_ids optional for all. Enriches schema details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action: 'Take a workspace's draft endpoints live in the bolthub directory.' Distinguishes from siblings like analyze_listing and call_api.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains dry run vs confirm workflow, that first publish starts free trial, and requires token. Lacks explicit when-not-to-use, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

revoke_tokenA

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.

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

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavioral traits: revokes grant, kills delegation tree, delay of ~15s, return value token_revoked, and effect of optional released_sats. Lacks mention of error cases or prerequisites, but still strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences plus an option note. Every sentence adds necessary information without redundancy. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains return value and timing. Covers the main actions and optional parameter. Missing error handling or state prerequisites, but sufficient for a focused tool with good annotations in parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good parameter descriptions. The tool description adds meaningful context like 'endpoint path' and 'API slug', and explains released_sats beyond the schema. Adds value over schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action 'Revoke' and the resource 'grant behind a prepaid bundle'. Distinguishes from sibling mint_scoped_token by describing the effect on the delegation tree and children. Includes timing and response, making it specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit use case: 'cut off a sub-agent after handing out children'. Mentions optional parameter for returning budget. While it doesn't explicitly state when not to use, the context is clear and contrasts with mint_scoped_token.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_apisA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoFilter by tag (e.g. 'weather', 'finance', 'ai'). Use search_apis() with no args to see all available tags.
queryNoSearch query — matches API names, descriptions, tags, and endpoint paths

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It mentions return content (names, descriptions, tags, etc.) but does not disclose whether it is read-only, auth requirements, rate limits, or order of results. Adequate but could be more explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences plus a usage tip. Front-loaded with purpose and output, followed by a clear instruction. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description lists what is returned. For a search tool, it is fairly complete. Could optionally mention pagination or sorting, but not required. Sibling tools are diverse, so no further differentiation needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds value: it explains that calling without arguments lists all APIs and suggests using that to see available tags for the tag parameter. This guidance goes beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it searches the API marketplace and returns a list of APIs. The verb 'search' and resource 'bolthub API marketplace' are specific. Among siblings, it is the only discovery tool, distinguishing it from tools like call_api or buy_credit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this to discover APIs' and provides an actionable tip: 'Call without arguments to list all available APIs.' Does not mention when not to use, but in context of siblings, it is clear that this is for discovery only.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usage_summaryA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoWindow for SDK-tool usage figures (default 30, max 365).
tenant_idNoWorkspace id. Omit when the account has exactly one workspace.
endpoint_idNoDrill into one endpoint: request count, success rate, avg/p95 latency, error breakdown.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds value beyond annotations by specifying read-only nature, token requirement, and ownership constraint. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three efficient sentences covering overview, optional drill-down, and requirements. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately describes scope and constraints for a read-only tool with 3 optional params. Could clarify return structure but not essential given no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so description adds little new info. Echoes schema descriptions for endpoint_id and tenant_id, but not significantly deeper.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool retrieves operational usage, billing status, and endpoint details. Differentiates from siblings like get_earnings and preview_cost by focusing on workspace usage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains when to use endpoint_id for drill-down and mentions token requirement. Could explicitly note when not to use, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev0.1.2
    • Changednode_status2 fields changed
      • addedInput schema / properties / timeout_s
        Added value: +{
        +  "description": "Hard wait ceiling in seconds, 5-600 (default 120). On timeout the tool errors with what to do next; it never silently keeps polling.",
        +  "type": "number"
        +}
      • addedInput schema / properties / wait_for
        Added value: +{
        +  "description": "Block 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 inbound capacity (what a settlement test needs). A node already past the milestone returns immediately.",
        +  "enum": [
        +    "wallet_pending",
        +    "ready",
        +    "payable"
        +  ],
        +  "type": "string"
        +}
  2. 11 tool updatesv0.1.1
    • Addedanalyze_listing
    • Addedconnect_account
    • Addedconnect_status
    • Addedconnect_wallet
    • Addedcreate_workspace
    • Changeddeploy_node6 fields changed
      • changedInput schema / properties / api_key / description
        Previous value: -"VPS provider API key (e.g., Hetzner API token)"New value: +"DEPRECATED: 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."
      • addedInput schema / properties / credential_id
        Added value: +{
        +  "description": "Stored VPS credential id. Omit when the account has exactly one (it's used automatically); the tool lists them when there are several.",
        +  "type": "string"
        +}
      • changedInput schema / properties / provider / description
        Previous value: -"VPS provider. LunaNode is cheapest (~$3.50/mo) and accepts BTC, Hetzner ~$5.49/mo, Scaleway ~$6.42/mo, Vultr ~$10/mo (32 locations + accepts crypto), DigitalOcean ~$12/mo (global)."New value: +"Chosen provider. Omit to get the provider menu with prices."
      • changedInput schema / properties / region / description
        Previous value: -"Region slug (e.g., 'nbg1', 'fsn1'). Omit to use the first available region."New value: +"Region slug from the region menu step."
      • addedInput schema / properties / size
        Added value: +{
        +  "description": "Server 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.",
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "provider",
        -  "api_key"
        -]
    • Addedget_earnings
    • Addedget_onboarding_state
    • Addedlist_api
    • Addedpublish_listing
    • Addedusage_summary
  3. 9 tool updatesv0.1.0
    • First observedbuy_credit
    • First observedcall_api
    • First observeddeploy_node
    • First observedget_api_details
    • First observedmint_scoped_token
    • First observednode_status
    • First observedpreview_cost
    • First observedrevoke_token
    • First observedsearch_apis

TDQS

A4.3/5.0
Disambiguation5/5

Each tool has a distinct purpose: account setup (connect_account, connect_status), workspace management (create_workspace, publish_listing), API operations (list_api, call_api, preview_cost), node deployment (deploy_node, node_status), payments (buy_credit, mint_scoped_token), and analytics (get_earnings, usage_summary). No two tools overlap significantly; sequential tools are clearly differentiated by role.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., connect_account, create_workspace, list_api, preview_cost). This makes it easy for an AI to infer tool functions from names alone.

Tool Count4/5

19 tools is on the higher side, but each tool serves a necessary function for the platform's scope (account, workspace, node, API management, payments). A few tools could potentially be merged (e.g., connect_account/connect_status), but overall the count is justified.

Completeness4/5

The tool surface covers the full lifecycle: account setup, workspace creation, node deployment, API listing and publishing, payment, and analytics. Minor gaps exist, such as no explicit update or delete for listings (beyond re-importing) and no tool to remove a workspace, but core workflows are present.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    MCP server that enables AI agents to make autonomous Bitcoin Lightning Network payments using the L402 protocol. Agents can pay for API access, purchase resources, and complete transactions without human intervention — invoice comes in, sats go out, done.
    17
    9
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    L402 + x402 client MCP. AI agents discover, pay for, and consume any payment-gated API autonomously. Supports Lightning (NWC), Cashu ecash, stablecoins, and human-in-the-loop payments.
    11
    284
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Marketplace MCP for paid HTTP APIs. Pay per call in USDC on Base via the open x402 standard — non-custodial. 13 tools for discovery, buying, and publishing APIs.
    63
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Agent-to-agent commerce over Bitcoin Lightning: buy, sell, list, and discover files, data, APIs, and compute on a public marketplace (or privately by offer id). Non-custodial, buyers pay sellers wallet-to-wallet and a verified payment preimage unlocks the result.
    6
    27
    686
    MIT No Attribution

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/signaltech-org/bolthub-sdk'

If you have feedback or need assistance with the MCP directory API, please join our Discord server