BotSupply
Server Details
Prepaid credits for agents: browse SKUs, open a wallet, check balance, buy packs, Stripe top-up.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool targets a distinct operation: wallet creation, balance lookup, catalog listing, credit top-up, and SKU purchase. The only mild overlap is between create_checkout (topping up credits) and purchase (spending credits), but both descriptions clearly delimit money-in vs money-out flows.
Four of five tools follow a clean verb_noun pattern (create_checkout, get_balance, list_catalog, open_wallet). The bare verb 'purchase' is the single minor deviation, but it remains readable and unambiguous.
Five tools is well-scoped for a prepaid-credit purchasing flow. Each tool earns its place: onboarding (open_wallet), inspection (get_balance, list_catalog), funding (create_checkout), and consumption (purchase).
The core lifecycle (create wallet, fund, browse, buy, check balance) is covered with no dead ends. Minor gaps exist: no purchase/transaction history and no explicit way to poll checkout session status, though get_balance partially compensates by reflecting funded credits.
Available Tools
5 toolscreate_checkoutCreate checkoutAInspect
Start a Stripe Checkout credit top-up. Same as POST /v1/wallets/:id/checkout. Returns the checkout url (open that URL; it keeps Stripe's hosted-page fragment). credits is an integer from 100 to 100000. Credits are applied only after Stripe reports the session paid. Returns the API error when Stripe is not configured.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Wallet API key (bsk_…). Optional when the MCP client sends Authorization: Bearer. The local stdio process also reads BOTSUPPLY_API_KEY. | |
| credits | Yes | Credits to buy. 1 credit = $0.01 USD. Same limits as POST /v1/wallets/:id/checkout. | |
| wallet_id | No | Wallet to credit. Defaults to the wallet that owns the API key. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly=false, idempotent=false, destructive=false, openWorld=true). The description adds genuinely useful behavior: credits are applied only after Stripe reports the session paid, the returned URL must be opened as-is to keep the Stripe fragment, and an API error is returned when Stripe is unconfigured.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then the endpoint mapping, return value, and payment-settlement caveat. Four tight sentences with minimal waste; the credit-range restatement is the only mildly redundant element.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries return-value burden and does so by describing the checkout URL and the unconfigured-Stripe error. Combined with full parameter coverage from the schema and annotation safety hints, an agent has enough to invoke it correctly, though sibling disambiguation remains missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents credits, wallet_id, and api_key fully. The description's restatement of the 100–100000 integer range and endpoint equivalence adds little beyond what structured fields provide, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Start a Stripe Checkout credit top-up') and even names the REST endpoint it mirrors, so the agent knows exactly what happens. It does not, however, distinguish itself from the sibling 'purchase' tool, leaving the agent to infer which one to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Use is implied (buying credits via Stripe's hosted checkout), but there is no explicit when-to-use or when-not-to-use guidance, and the near-identical sibling 'purchase' is never mentioned. The agent must guess between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceGet balanceARead-onlyIdempotentInspect
Return the authenticated wallet id and prepaid credit balance. Same as GET /v1/balance. Does not return the API key.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Wallet API key (bsk_…). Optional when the MCP client sends Authorization: Bearer. The local stdio process also reads BOTSUPPLY_API_KEY. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive behavior, so the safety profile is covered. The description adds genuinely new behavioral context: it maps to GET /v1/balance and explicitly states the API key is NOT returned, which is security-relevant output information absent from the annotations and schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences with zero filler. The primary capability is stated first, followed by the REST equivalent and the explicit exclusion.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only wallet query with rich annotations and full parameter documentation, the description supplies what is missing (returned fields, REST mapping, no secret leakage). Only the absence of any error/authentication-failure behavior keeps this from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the single api_key parameter is fully documented, including the Bearer fallback and the BOTSUPPLY_API_KEY env var. The description adds nothing about parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource (returns the wallet id and prepaid credit balance), which clearly distinguishes it from siblings like create_checkout or purchase. It stops short of explicitly contrasting itself with any sibling tool, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no alternatives are named. The agent can infer this is the tool for checking available credit, but nothing tells it how balance checking relates to purchase or open_wallet flows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_catalogList catalogARead-onlyIdempotentInspect
List live BotSupply SKUs, credit prices, short descriptions, and what a purchase does not include. Payloads stay behind purchase. recipe.book-table, when listed, is recipe documentation only and does not place a reservation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and non-open-world, so the safety profile is covered. The description adds genuinely new behavior context: only live SKUs are listed, payloads are withheld until purchase, and recipe.book-table entries are docs that do not trigger a reservation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the returned fields in one sentence, then adds two short qualifiers about payloads and recipe.book-table. Every sentence earns its place, though the phrase 'what a purchase does not include' is slightly abstract.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description carries the burden of describing what comes back, and it does so (SKUs, prices, descriptions, exclusions). An agent can invoke this correctly, though it never states format or pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify; the 4 baseline applies. The description instead spends its words on return content, which is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (live BotSupply SKUs) plus the fields surfaced: credit prices, short descriptions, and purchase exclusions. It also differentiates itself from the sibling purchase tool by noting payloads are withheld and that recipe.book-table is documentation, not a reservation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'Payloads stay behind purchase' hints that purchase is the route to payloads, and the recipe note implies this is a read-only reference. There is no explicit 'use this vs. purchase/create_checkout' routing statement or precondition guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_walletOpen walletAInspect
Create a wallet and return wallet_id plus api_key once, with balance_credits 0. Same as POST /v1/wallets. This does not look up an existing wallet. Keep the api_key; later tools need it as Authorization: Bearer or as api_key.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label, 1 to 80 characters. Same field as POST /v1/wallets. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare the safety profile (readOnly=false, destructive=false, idempotent=false, openWorld=false), and the description adds genuinely operational context beyond them: the api_key is returned only once, it must be retained, and it is consumed by later calls as a Bearer token. That once-only credential disclosure is exactly the kind of behavioral trait annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and the returned artifacts, then the negative scope, then the credential-handling requirement. Every clause carries non-redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema present, the description carries the return-value burden itself and does so by naming wallet_id, api_key, and balance_credits, plus how the api_key is subsequently used. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single optional 'label' parameter is fully documented in the schema, including its 1-80 character bound and its equivalence to POST /v1/wallets. The description adds no parameter-level detail, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Create a wallet") plus the exact return payload (wallet_id, api_key, balance_credits 0). It also negates a nearby misconception with "This does not look up an existing wallet," so an agent can tell it apart from any retrieval-style call and from siblings like get_balance or create_checkout.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-not guidance ("does not look up an existing wallet") and forward-looking usage ("later tools need it as Authorization: Bearer or as api_key"). It stops short of naming a concrete alternative sibling for wallet lookup, but no such sibling exists in the listed set, so the guidance is contextually sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
purchasePurchaseAInspect
Buy one live catalog SKU with prepaid credits. Sends { sku } to POST /v1/purchase and returns that JSON, including the pack or recipe payload. Does not place a reservation. recipe.book-table is documentation the buying agent runs itself. An unknown SKU is rejected. Insufficient balance returns an error and does not deduct credits.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | Yes | Live catalog SKU. The field name is sku, not sku_id. | |
| api_key | No | Wallet API key (bsk_…). Optional when the MCP client sends Authorization: Bearer. The local stdio process also reads BOTSUPPLY_API_KEY. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-idempotent, non-destructive, closed-world, so the bar is lower. The description still adds real value: the exact request shape and endpoint, the no-reservation guarantee, unknown-SKU rejection, and that an insufficient balance fails without deducting credits — all non-obvious failure semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five short sentences, front-loaded with the core action and credit implication, then progressively narrower caveats. Each sentence carries distinct information — mechanism, endpoint, return, exclusion, error behavior — with no repetition of the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description covers the return ('returns that JSON, including the pack or recipe payload') and the auth story is handled in the schema, so an agent has enough to call it. It stops short of stating retry/idempotency consequences of a failed or repeated purchase, which is the one remaining gap for a spend-credits operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so sku and api_key are already fully documented, including the sku-vs-sku_id warning and the BOTSUPPLY_API_KEY fallback. The description only restates that sku is the sent body field, adding no format or constraint detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (buy) and resource (one live catalog SKU) with the exact credit mechanism and endpoint (POST /v1/purchase). The scope phrase 'one live catalog SKU' cleanly separates it from list_catalog, create_checkout, and get_balance without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It rules out adjacent behavior ('Does not place a reservation') and clarifies that recipe.book-table is documentation the caller runs itself, which prevents a mistaken tool call. However it never states when to choose this over siblings like create_checkout, so the when-to-use decision is only implied by the word 'buy'.
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.
5 tool updates
- First observed
create_checkout - First observed
get_balance - First observed
list_catalog - First observed
open_wallet - First observed
purchase
Related MCP Connectors
Paid APIs and tokenized shares for agents. Prepaid funding, including authorized Instinct checkout.
Prepaid balance for AI agents: one key, 4,900+ tools your agent can run today, caps, receipts.
AI agent recruiting: talent pool match, reference checks, credit packs via Stripe MPP
Prepaid inference for agents over hosted MCP. Chat, image, and video.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables agents to spend funds on Visa/MasterCard prepaid cards, travel eSIMs, and gift cards, with paid KYT address screening and USDT TRC-20 funding.MIT
- AlicenseNot gradedqualityCmaintenanceGive your AI agent a prepaid card to pay per call for hundreds of paid services — no per-vendor signups or API keys.44MIT
- FlicenseNot gradedqualityCmaintenanceEnables agent commerce with prepaid credits, authenticated bounded paid execution, and machine-readable fulfillment.-

ProxyCove MCP Serverofficial
AlicenseNot gradedqualityBmaintenanceEnables AI agents to create accounts, top up balances, and purchase residential, mobile, and datacenter proxies across 170+ countries with prepaid per-GB traffic and no signup forms.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.