Skip to main content
Glama

Xbitto MCP

An MCP server that lets an AI agent (Claude, Cursor, or any MCP client) work in your Xbitto creator account: create short links and paywall links, fill an access code pool with hundreds of items at once, and upload galleries, videos and whole series of episodes from your computer.

It runs on your own computer. Files go straight from your computer to your own Bunny account, using upload addresses the Xbitto API signs. They never pass through Xbitto.

Full docs: xbitto.com/docs.

What You Need

  • Node.js 20 or newer

  • An Xbitto account with a verified email and at least one payout wallet

  • An API key: in the Xbitto dashboard, Settings → API Keys → Create Key. Copy it right away; it is shown once.

  • For the Vault: Bunny Stream (videos, series) and/or Bunny Storage (galleries) connected in Settings

Related MCP server: Longwave

Install

There is no npm package yet; the server installs straight from this repository.

The dashboard's AI Agents page shows these steps with your new key already filled in.

Claude Desktop: Settings → Developer → Edit Config. Cursor: ~/.cursor/mcp.json. If the file already has "mcpServers", put the xbitto entry inside it, then restart the app.

{
  "mcpServers": {
    "xbitto": {
      "command": "npx",
      "args": ["-y", "github:blackcheet/xbitto-mcp"],
      "env": { "XBITTO_API_KEY": "xb_your_key" }
    }
  }
}

Claude Code

claude mcp add xbitto -e XBITTO_API_KEY=xb_your_key -- npx -y github:blackcheet/xbitto-mcp

ChatGPT Desktop uses the Codex settings: add this to ~/.codex/config.toml (Windows: %USERPROFILE%\.codex\config.toml) and restart ChatGPT.

[mcp_servers.xbitto]
command = "npx"
args = ["-y", "github:blackcheet/xbitto-mcp"]
startup_timeout_sec = 120

[mcp_servers.xbitto.env]
XBITTO_API_KEY = "xb_your_key"

Grok Build: add this to ~/.grok/config.toml, then check it with grok mcp doctor xbitto.

[mcp_servers.xbitto]
command = "npx"
args = ["-y", "github:blackcheet/xbitto-mcp"]
env = { XBITTO_API_KEY = "xb_your_key" }
startup_timeout_sec = 120

The first start downloads the server from GitHub, so it can take a little longer. On Windows, if an app can't start npx, use "command": "cmd" with "args": ["/c", "npx", "-y", "github:blackcheet/xbitto-mcp"].

To stay on one version, add a tag: github:blackcheet/xbitto-mcp#v0.1.0.

What It Can Do

Tool

What it does

whoami

The account the key belongs to and its credit balance

list_wallets

Your payout wallets (paywalls use their ids)

list_links, get_link

Your links and their paywall settings

create_link

A short link to a URL (its destination can't be changed later)

set_paywall

Sell a link: price, title, description, cover, access code or a pool of items

add_pool_items

Add license keys, logins or invite links to a pool, from a list or a text file, 100 per request

get_pool_stats

How many pool items are left and used

create_gallery

Sell 1–20 pictures from a folder

create_video

Sell a video, with an optional preview clip

create_series

Sell up to 100 episodes for one price, first few free

add_episodes

Add episodes to the end of a series

get_upload_job

Follow an upload running in the background

list_vault, get_vault_item

Your Vault items and whether they are ready

list_orders, get_order

Your orders

confirm_payment, reject_payment

Decide a payment on hold (only when you say so)

Example prompts:

  • "Create a paywall link to https://example.com/course for 9 USDT and add the keys in keys.txt to its pool."

  • "Upload the episodes in D:\Drama\Night Train as a series called Night Train, 3 USDT, first 2 free."

Uploads run in the background, so a long series doesn't block the agent: it starts the upload and checks progress with get_upload_job. Uploads stop if the MCP server stops; what already arrived stays.

What a Key Can't Do

An API key can't add or change payout wallets, connect Bunny, change the password, email or other account settings, buy credits, pay promoters, run paid wallet checks, export or delete the account, or create other keys. Do those in the dashboard. Remove a key any time under Settings → API Keys.

Keep the key secret: anyone who has it can create and change your links and Vault items.

Network

The server connects directly to api.xbitto.com and to Bunny. It doesn't use the HTTP_PROXY setting. If your network blocks or misroutes Bunny's upload address, use a system-wide VPN or proxy (TUN mode).

Settings

Variable

Default

XBITTO_API_KEY

—

Required

XBITTO_API_URL

https://api.xbitto.com

Only for testing against another server

Development

npm install
npm run check   # typecheck, tests, and a check that dist/ is up to date
npm run build   # rebuild dist/index.js (committed, so a GitHub install needs no build)

License

MIT

Available Tools

19 tools
add_episodesAdd EpisodesA

Add episodes to the end of an existing series, numbered after the ones it has. People who bought it see them too.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe link's short code (the part after the domain).
episodesYesA folder (its files in natural name order: EP2 before EP10) or a list of file paths (kept in the order given).

TDQS

A3.9/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 behavioral burden. It helpfully discloses that episodes are appended and numbered after existing ones, and that buyers see them, but it does not cover permissions, failure modes, or what is returned.

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, front-loaded with the action and scope, followed by useful buyer-visibility context. There is no wasted text.

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?

The description covers purpose, ordering, and visibility, which is useful for a mutation tool with no annotations. However, it omits permissions, error behavior, and return expectations, and there is no output schema to compensate.

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 both parameters are already well documented in the schema. The description adds no parameter-level detail beyond implying that episodes go to the end of the series.

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 gives a specific verb and resource: adding episodes to the end of an existing series. It also clarifies append placement and numbering after existing episodes, which distinguishes it from create_series.

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?

It clearly establishes the context for use: an existing series that needs additional episodes at the end. It does not explicitly name exclusions or alternatives, but the intended scenario is unambiguous.

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

add_pool_itemsAdd Pool ItemsA

Add items (license keys, account logins, invite links…) to a Gated link's pool; each delivered order takes one. Give items or file (a text file, one item per line). Blank lines and repeats are dropped, items over 200 characters are skipped and counted, items already in the pool are counted, not added twice. Sent 100 at a time; a pool holds up to 1000 unused items.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe link's short code (the part after the domain).
fileNoPath to a .txt or .csv file the user named, one item per line (at most 2 MB).
itemsNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and delivers unusually rich behavior detail: deduplication of blank lines and repeats, 200-character item limit with skipped items counted, pre-existing pool items counted rather than re-added, batching of 100 per send, and a 1000-item pool cap. It omits permissions/auth requirements and what is returned, which keeps it from a 5.

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?

Compact and front-loaded: purpose first, then input mechanism, then edge-case behavior. The final sentence is somewhat compressed ('Sent 100 at a time; a pool holds up to 1000 unused items') but every clause carries information.

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?

For a mutation tool with no annotations and no output schema, the description covers normalization rules, error-adjacent edge cases, batching, and capacity limits. Missing details are secondary: required permissions and whether partial successes are reported back.

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 67%; `items` carries no schema description, and the description compensates by defining it as the list to add and explaining the either-or relationship with `file` plus the one-item-per-line file convention. It adds real meaning beyond the schema, though it does not echo the code pattern or size limits that the schema already states.

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?

States a specific verb and resource ('Add items ... to a Gated link's pool') and immediately clarifies the domain concept ('each delivered order takes one'), which distinguishes it from sibling read tools like get_pool_stats and list_links.

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 tells the agent that either `items` or `file` must be supplied and explains the file format ('a text file, one item per line'), which resolves the main decision the caller faces. It does not, however, state when not to use this tool or point to an alternative for bulk/other operations.

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

confirm_paymentConfirm PaymentA
Destructive

Confirm that a payment on hold belongs to this order: the consumer gets what they bought and the sales fee is charged. Only do this after the creator has said so; it can't be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderIdYesThe order id.

TDQS

A4.3/5.0
Behavior5/5

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

With only destructiveHint available in annotations, the description adds critical context: the action is irreversible, it fulfills the consumer's purchase, and it charges the sales fee. These side effects and the approval prerequisite go well beyond the structured annotation.

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 tight sentences: the first states the action and consequence, the second gives the prerequisite and irreversibility warning. It is front-loaded and every clause earns its place.

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 one-parameter destructive tool with no output schema, the description covers the essential behavioral traits: what it does, the consumer and fee consequences, the creator-approval prerequisite, and irreversibility. Nothing critical is missing.

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% and the single orderId parameter is documented in the schema. The description references 'this order' but adds no format or constraint details beyond what the schema already provides, so the baseline of 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource ('Confirm that a payment on hold belongs to this order') and explains the outcome, making the action clear. It does not explicitly name the opposing sibling tool reject_payment, so it falls short of full sibling differentiation.

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?

It gives a clear precondition ('Only do this after the creator has said so') and a strong warning ('it can't be undone'). However, it does not explicitly mention when to use reject_payment instead, leaving alternative selection partly to inference.

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

create_seriesCreate SeriesA

Sell a series of episodes (a short drama or web series) for one price, with the first few free. Up to 100 episodes from this computer, numbered in the order given (a folder: natural name order). Files go straight to the creator's Bunny Stream library. It takes orders once at least freeCount + 1 episodes (and at least 2) are ready.

ParametersJSON Schema
NameRequiredDescriptionDefault
priceYesPrice in USDT/USDC as a decimal string, e.g. "5" or "4.99".
titleYesWhat the consumer sees as the title.
episodesYesA folder (its files in natural name order: EP2 before EP10) or a list of file paths (kept in the order given).
freeCountYesHow many first episodes anyone can watch before paying. At most half of the episodes.
posterUrlNoA third-party https poster image URL (a 3:4 portrait works best).
blurPosterNo
descriptionNoShown before payment. Supports **bold**, _italic_ and lists with '- ' or '1. '. Links show as plain text.
verifyPayerNoScreen the consumer's wallet before showing the payment address (each real check costs credits).
limitDevicesNoLet each purchase open the content on only a few browsers.
payoutWalletIdsNoWallet ids from list_wallets, at most one per network. Left out: the first usable wallet on each network.

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and discloses real context: files are pushed straight to the creator's Bunny Stream library (an external destination), a hard cap of 100 episodes, ordering semantics, and the readiness condition for accepting orders. It omits permissions, failure behavior, and whether re-invocation is idempotent, but the mutation's side effects are unusually well surfaced.

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?

Four sentences, front-loaded with the commercial purpose before constraints and ordering rules. Parentheticals are dense but each carries information (what a series is, natural sort order), with no filler.

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?

For a 10-parameter creation tool with no annotations and no output schema, the description covers destination, ordering, limits, and readiness well, but says nothing about the return value (siblings like get_upload_job imply an async upload job) or auth/permission requirements. Adequate but leaves a notable gap for the caller.

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 already 90%, so the baseline is 3; the description earns above that by adding meaning the schema lacks, notably the 100-episode limit (the schema's episodes array only sets minItems) and the coupling of freeCount to the readiness rule ('at least freeCount + 1 episodes'). The folder natural-name-ordering note reinforces the episodes parameter's dual string/array form.

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

Purpose4/5

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

States a specific verb and resource: sell a series of episodes (short drama / web series) for one price with the first few free. The parenthetical defines the domain concept and implicitly distinguishes it from create_video and create_gallery, though it never names those siblings. An agent can tell what this tool creates without opening the schema.

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?

Usage is implied by the domain description (multi-episode monetized series) and a readiness precondition is given: 'takes orders once at least freeCount + 1 episodes (and at least 2) are ready.' There is no explicit when-to-use-vs-alternative routing, so the agent must infer that add_episodes / create_video are the other paths.

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

create_videoCreate VideoA

Sell a video from this computer, with an optional short preview clip that plays on the landing page. Files go straight to the creator's own Bunny Stream library; the item takes orders once Bunny has finished encoding the main video.

ParametersJSON Schema
NameRequiredDescriptionDefault
priceYesPrice in USDT/USDC as a decimal string, e.g. "5" or "4.99".
titleYesWhat the consumer sees as the title.
videoYesPath to the main video file.
descriptionNoShown before payment. Supports **bold**, _italic_ and lists with '- ' or '1. '. Links show as plain text.
previewClipNoPath to a short preview clip (a separate file, not a cut of the main video).
verifyPayerNoScreen the consumer's wallet before showing the payment address (each real check costs credits).
limitDevicesNoLet each purchase open the content on only a few browsers.
payoutWalletIdsNoWallet ids from list_wallets, at most one per network. Left out: the first usable wallet on each network.

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does disclose two non-obvious traits: files are uploaded to the creator's own third-party Bunny Stream library, and the listing does not accept orders until encoding completes (an asynchronous gate). It still omits permissions/auth requirements and failure handling, which keeps it from a 5.

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 tightly written sentences, no filler. The core purpose is front-loaded and the second sentence adds the storage/encoding behavior that an agent needs before calling.

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?

For an 8-parameter mutation tool with no annotations and no output schema, the description covers the storage destination and the encoding gate but not the return value — notably it never mentions that this likely produces an upload/encoding job the agent must poll via get_upload_job, nor the wallet prerequisites implied by payoutWalletIds.

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 the schema already explains all 8 parameters (price format, preview clip being a separate file, payoutWalletIds defaults, verifyPayer credit cost). The description adds only the high-level note that previewClip is optional, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource (sell/create a video listing) and clarifies the source of the file ('from this computer'), which separates it from URL-based siblings like create_link. It does not explicitly name which sibling to use instead of this one (create_gallery, create_series, add_episodes), so it stops short of full differentiation.

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?

Usage is implied rather than stated: 'Sell a video from this computer' tells the agent this is for locally-stored single videos, but there is no explicit when-to-use/when-not, no mention of prerequisites such as having a payout wallet configured, and no routing to create_gallery/create_series for multi-item cases.

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

get_orderGet OrderC
Read-only

One order, with the payment under review if there is one.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderIdYesThe order id.

TDQS

C2.9/5.0
Behavior3/5

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

readOnlyHint=true already establishes this as a safe read, so the description's main added value is disclosing that a payment under review may be included in the response. That is genuinely useful return-shape context absent from structured fields, but it says nothing about behavior when no such payment exists or about authorization 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?

A single short sentence with the resource front-loaded and no wasted clauses. The trailing qualifier "if there is one" is slightly cryptic but carries real conditional information rather than filler.

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?

With no output schema, the description is the only source for return expectations, and it only hints at one component (payment under review). It omits what the order object otherwise contains, error behavior for unknown ids, and access requirements, leaving meaningful gaps for a lookup 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 description coverage is 100% and the single orderId parameter is fully documented by the schema's pattern and description, so the baseline is 3. The description adds no format, provenance, or lookup guidance beyond what the schema already provides.

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

Purpose3/5

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

"One order" conveys the resource and singular scope, which implicitly contrasts with the sibling list_orders, and it notes the tool also surfaces a payment under review. However, it never names a verb (fetch/retrieve) or explicitly distinguishes itself from list_orders or get_link, so the purpose is only implied rather than stated.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of the alternative (list_orders) for enumerating orders, and no prerequisites such as required authentication or ownership of the order. The agent must infer invocation context entirely.

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

get_pool_statsGet Pool StatsC
Read-only

How many items a Gated link's pool has left and how many were given to orders.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe link's short code (the part after the domain).

TDQS

C2.9/5.0
Behavior3/5

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

readOnlyHint=true already establishes this as a safe read, so the description's main added value is clarifying what the numbers mean (remaining vs. allocated). It does not disclose units, whether 'left' accounts for pending orders, or any rate/auth considerations, so it goes only modestly beyond the annotation.

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?

One compact sentence with no filler. The phrasing is slightly awkward ('Gated link's pool has left') but information-dense and front-loaded.

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?

With no output schema, the description does the minimum by naming the two returned counts, but gives no field names or shape. For a simple single-param read tool that is borderline adequate, leaving an agent to discover the actual response format.

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%, and the single 'code' param is fully documented in the schema with its pattern and meaning. The description adds nothing about parameters, so the baseline 3 applies — the schema carries the load.

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

Purpose3/5

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

The description states what is returned — remaining pool items and items already allocated to orders — for a 'Gated link'. However, it is phrased as a question about quantities rather than a clear verb+resource statement, and it never explicitly names 'pool stats' or distinguishes itself from the sibling get_link, which also concerns a link's state.

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

Usage Guidelines2/5

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

There is no guidance on when to call this versus get_link, list_links, or list_orders. An agent must infer from the name alone that this is the tool for checking pool availability before adding items or assessing scarcity.

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

get_upload_jobGet Upload JobA
Read-only

How an upload started by create_gallery, create_video, create_series or add_episodes is going. Without jobId: the recent jobs.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, so the safety profile is already covered. The description adds a meaningful behavioral detail: omitting jobId returns recent jobs rather than failing. It does not disclose pagination, rate limits, or what the status payload contains, so beyond the default-behavior note it is fairly thin.

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 short sentences, zero waste. The core purpose is front-loaded, and the default behavior when jobId is omitted follows immediately. Nothing is repeated from the title.

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?

For a simple read tool this covers the call decision well. However, with no output schema, the description never specifies what a job's status response contains (state, progress, errors), leaving the agent uninformed about the return shape.

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 0%, and the single jobId parameter is undocumented in the schema. The description compensates by explaining jobId selects a specific upload while its absence defaults to a list of recent jobs, which is exactly the semantic an agent needs to choose between the two call forms.

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 states the resource (upload job) and exactly what it reports: how an upload started by create_gallery, create_video, create_series, or add_episodes is progressing. It also distinguishes itself from those creation siblings by positioning itself as the status-query counterpart, so an agent can tell which tool actually starts an upload and which reports on 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?

Usage context is clear: call this to check on an upload initiated by one of the four named creation tools, or omit jobId to list recent jobs. It does not state explicit exclusions or name alternative status tools, but the triggering condition is unambiguous enough for selection.

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

get_vault_itemGet Vault ItemA
Read-only

One Vault item: its state (uploading, processing, ready), paywall and, for a series, how many episodes are ready.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe link's short code (the part after the domain).

TDQS

A3.6/5.0
Behavior3/5

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

The readOnlyHint annotation already establishes this as a safe read. The description adds useful context about the returned state values and conditional series episode count, but does not mention error behavior, permissions, or not-found 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?

It is a single compact sentence with no wasted words, and the key scope and return fields are 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?

For a simple one-parameter read tool with no output schema, the description covers the main returned fields and state values adequately. Minor gaps around failure cases and full return shape remain, but the essentials are present.

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% and the single 'code' parameter is fully documented in the schema. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

The description states it returns a single Vault item and names the key fields exposed, which is enough to distinguish it from list_vault. It is slightly implicit about the retrieval verb, but the resource and scope are clear.

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?

Use is implied by 'One Vault item' and the required short-code parameter, since an agent can infer this is for fetching a known item. However, there is no explicit guidance on when to use this versus list_vault or other sibling tools.

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

list_ordersList OrdersB
Read-only

The account's orders, newest first, ten a page. 'hold' are payments waiting for the creator's decision (confirm_payment / reject_payment).

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNo
statusNo

TDQS

B3.3/5.0
Behavior3/5

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

readOnlyHint=true already establishes this as a safe read. The description adds genuinely useful non-annotation context: ordering (newest first), pagination size (ten a page), and the meaning of the 'hold' status. It stops short of explaining cursor semantics or the result shape, so it adds value but not rich behavior detail.

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 tight sentences with no filler, and the most important information (what is listed, in what order, at what granularity) is front-loaded before the status clarification.

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?

For a simple two-parameter list tool with no output schema this covers the essentials, but with 0% schema description coverage the description should have explained the cursor/pagination contract and the remaining status values (pending, delivered, expired, rejected, all). As written, an agent must guess at both.

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

Parameters2/5

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

Schema coverage is 0%, so the description must carry parameter meaning, and it largely does not. It explains only the 'hold' enum value out of six possible statuses and never explains what cursor is or how to advance pages, despite 'ten a page' implying the cursor is a page token.

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

Purpose4/5

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

States the resource (the account's orders) plus its ordering (newest first) and page size (ten a page), which is more specific than a bare 'list orders'. It doesn't explicitly distinguish itself from the singular sibling get_order, but the plural/scope framing makes the collection intent clear.

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?

Usage is only implied: it references confirm_payment / reject_payment as the actions for 'hold' orders, which gives a routing hint toward siblings, but there is no explicit statement of when to call list_orders versus get_order, nor any prerequisites or exclusions.

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

list_vaultList VaultA
Read-only

The account's Vault items (galleries, videos, series), newest first, ten a page.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so safety is covered; the description goes beyond that by disclosing result ordering ('newest first') and page size ('ten a page'), both of which change agent behavior (it must loop). It does not mention auth scope beyond 'the account's' or any rate limits, so it is strong but not exhaustive.

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?

A single front-loaded sentence naming resource, contents, ordering, and page size with zero filler. Nothing could be removed without losing information.

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?

With no output schema, the description does describe the returned item types and ordering, which is helpful. However the cursor parameter is undocumented in both schema and description, leaving the agent without the information needed to actually paginate. Adequate but with a concrete gap.

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 0% for the single optional cursor parameter, so the description must compensate. 'Ten a page' implies pagination and thus a cursor, but the description never explains what the cursor is, where it comes from, or how to advance pages. Partial compensation, baseline 3.

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

Purpose4/5

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

States a specific verb (list) and resource (the account's Vault items) and enumerates the item subtypes it returns (galleries, videos, series), which clearly separates it from the singular get_vault_item sibling. It stops short of explicitly naming that sibling as the alternative, so it is clear but not fully differentiated in prose.

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?

There is no when-to-use or when-not-to-use statement and no named alternative. Usage is only implied: the tool is obviously for browsing the account's Vault, and 'ten a page' signals the agent should be prepared to page. That is adequate but leaves the agent to infer the split with get_vault_item.

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

list_walletsList Payout WalletsA
Read-only

The account's payout wallets. Paywalls take their ids (one per network). Wallets can only be added in the dashboard.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

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

With readOnlyHint already declaring the safe-read behavior, the description adds useful context: wallets are per-network, their ids are consumed by paywalls, and wallet creation happens only in the dashboard. It does not describe return format or pagination, but the annotation covers the safety profile.

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 short sentences with the resource front-loaded and no redundant explanation. Every sentence adds a distinct fact about wallets, their ids, or their creation constraint.

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?

For a zero-argument read-only listing tool with no output schema, the description covers the key context: what is listed, that ids are one per network, and that wallets cannot be added through this API. A brief note on return ordering or fields could help, but nothing critical is missing.

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?

This tool has zero parameters, so there are no parameter semantics to explain. The baseline for a parameterless tool is 4.

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

Purpose4/5

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

The title supplies the verb 'List' and the description identifies the resource as 'The account's payout wallets,' making the purpose clear. It does not differentiate this tool from siblings such as list_vault, but the resource itself 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 Guidelines2/5

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

The description notes that paywalls use these ids and that wallets can only be added in the dashboard, but it gives no explicit guidance on when an agent should call list_wallets versus other list tools. Usage is only indirectly implied.

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

reject_paymentReject PaymentA
Destructive

Reject a payment on hold: the order is not delivered. Only do this after the creator has said so; it can't be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderIdYesThe order id.

TDQS

A4.2/5.0
Behavior4/5

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

The destructiveHint annotation already flags this as irreversible; the description reinforces that and goes further by naming the consequence ('the order is not delivered') and the authorization prerequisite. It adds meaningful context beyond the annotation, though it says nothing about side effects on related records or the response.

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 tight sentences: the action and its effect come first, followed immediately by the authorization condition and the irreversibility warning. Nothing is redundant.

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?

For a one-parameter destructive action with an existing annotation, no output schema, and no nested objects, the description covers the essentials an agent needs: what it does, when it is permitted, and that it cannot be undone.

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?

Single orderId parameter fully documented in the schema (100% coverage), so the schema carries the load. The description's 'payment on hold' framing implies the kind of order the ID must reference but adds no format or syntax detail. Baseline 3 applies.

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?

States a specific verb (reject) and resource (payment) plus the precondition state ('on hold'), and the outcome clause ('the order is not delivered') makes it the clear counterpart to the sibling confirm_payment.

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 gates invocation on creator approval ('Only do this after the creator has said so'), which is real when-to-use guidance. It stops short of naming the alternative path (confirm_payment) for the agent to weigh against, so it is clear context rather than full routing.

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

set_paywallSet PaywallA

Turn a link into a Gated link (or update its paywall): consumers pay to get the destination and, optionally, an access code. Replaces the paywall's settings, so pass every field you want kept. For one code per order use codeMode 'unique' and fill the pool with add_pool_items.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe link's short code (the part after the domain).
priceYesPrice in USDT/USDC as a decimal string, e.g. "5" or "4.99".
titleYesWhat the consumer sees as the title.
codeModeNo'same': one code for every consumer. 'unique': each order takes one item from the pool.
coverUrlNoA third-party https image URL for the cover. Xbitto stores only the address.
blurCoverNoBlur the cover on the landing page.
codeLabelNoWhat the consumer page calls the code, e.g. "License Key".
accessCodeNoThe code every consumer gets, in 'same' mode. Left out: none.
descriptionNoShown before payment. Supports **bold**, _italic_ and lists with '- ' or '1. '. Links show as plain text.
verifyPayerNoScreen the consumer's wallet before showing the payment address (each real check costs credits).
payoutWalletIdsNoWallet ids from list_wallets, at most one per network. Left out: the first usable wallet on each network.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does disclose the critical destructive trait: it replaces the paywall's settings, so omitted fields are lost. It also notes the credit cost of real payer verification, but says nothing about permissions, reversibility, or what is returned.

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 purpose, then the destructive replacement warning, then the mode-specific instruction. No filler or restatement of the name.

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?

For an 11-parameter mutation tool with no annotations and no output schema, the description covers the highest-risk facts (full replacement, pool workflow, credit cost). It omits error/permission behavior and the shape of the result, which an agent would otherwise have to discover.

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 the baseline is 3, and the description goes beyond it by tying codeMode 'unique' to the pool workflow and clarifying that 'same' mode pairs with accessCode semantics. It adds cross-tool meaning rather than repeating field text.

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?

States a specific verb+resource pair — converting a link into a Gated link or updating its paywall — and immediately explains the consumer-facing outcome (pay to get the destination plus optional access code). This separates it from create_link and other link tools without needing the schema.

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?

Gives a concrete condition for the 'unique' codeMode and routes the agent to add_pool_items to fill the pool, which is real when-to-use guidance for the trickiest branch. It does not state when *not* to use it, nor prerequisites, so it stops short of a 5.

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

whoamiWho Am IA
Read-only

The Xbitto account this API key belongs to, and its credit balance.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

The readOnlyHint annotation already establishes that this is a safe read operation. The description adds useful context by saying it returns the account and credit balance, but it does not describe response fields, auth expectations, or rate limits.

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 a single compact sentence with no wasted text. It is front-loaded with the key returned resource, though the noun-phrase form is slightly terse for a tool description.

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?

For a zero-parameter read-only tool, the description covers the main return concepts: account identity and credit balance. With no output schema, it could still say more about the response shape, but the low complexity limits the gap.

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 tool takes zero parameters, so parameter semantics are inherently simple and the schema is complete. The description does not need to explain inputs beyond what the empty schema already conveys.

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

Purpose4/5

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

The description identifies a specific resource: the Xbitto account tied to the API key plus its credit balance. It lacks an explicit verb like 'Returns', but the title and sentence together make the tool's purpose clear and distinguish it from sibling list/get tools.

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?

Usage is implied: an agent would call this to identify the current API-key account or check credits. However, the description gives no explicit when-to-use guidance, prerequisites, or comparison to sibling tools.

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.

  1. 19 tool updatesv0.1.0
    • First observedadd_episodes
    • First observedadd_pool_items
    • First observedconfirm_payment
    • First observedcreate_gallery
    • First observedcreate_link
    • First observedcreate_series
    • First observedcreate_video
    • First observedget_link
    • First observedget_order
    • First observedget_pool_stats
    • First observedget_upload_job
    • First observedget_vault_item
    • First observedlist_links
    • First observedlist_orders
    • First observedlist_vault
    • First observedlist_wallets
    • First observedreject_payment
    • First observedset_paywall
    • First observedwhoami

TDQS

A3.6/5.0

Scored across 19 tools

Disambiguation5/5

Each tool targets a distinct resource and action: links, vault items, paywalls, pool items, uploads, orders, and payments are clearly separated. Minor potential overlap between get_upload_job and get_vault_item is resolved by their descriptions, which distinguish upload progress from item state.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern: list_vault, get_link, create_video, add_episodes, confirm_payment, etc. The only notable deviation is whoami, which breaks the convention but remains clear.

Tool Count4/5

With 19 tools, the set is slightly above the typical 3–15 range, but the platform covers multiple resource types and workflows. Each tool has a clear, distinct role, so the count is reasonable rather than bloated.

Completeness4/5

Core lifecycle operations are covered: content creation for galleries/videos/series, link and paywall setup, pool management, upload tracking, and order/payment decisions. Some gaps exist around deleting or editing links and vault items, but agents can work around these limitations for most workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to turn long-form episodes into Shorts, thumbnails, show notes and a podcast RSS feed, then publish them to the creator's own YouTube channel using OAuth-based, credential-free access. It exposes a deny-by-default set of read, create and step-up-approved publish tools so agents can run a creator's clip pipeline end to end without holding API keys or Google credentials.
    1
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Enables AI clients to discover current fal.ai model schemas and pricing, submit only approved generation batches, manage assets, collections, tags, characters, and CDN access settings, and use isolated private account profiles through shared validated tools.
    66
    45 npm
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables an AI assistant to run cloud live streaming end to end: starting and stopping broadcasts, reordering playback queues, searching and organizing the media library, planning stream schedules, and managing multistream destinations. It connects over a remote Streamable HTTP endpoint secured with OAuth or a personal access token, applying the same validation, ownership rules, and rate limits as the public REST API.
    1
    MIT