CBROS Cardano NFT Minter
Server Details
Pay-and-mint Cardano NFT (CIP-25) in one atomic tx. Non-custodial. MCP-native. Mainnet.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 6 tools
Each tool has a distinct role, and the descriptions go out of their way to distinguish the payment/mint flows (prepare_payment = standalone payment, mint = standalone mint, prepare_atomic_mint = combined). There is mild conceptual overlap among the three mint/payment tools, but the descriptions make the boundaries clear enough to avoid misselection.
Four tools follow a clean verb_noun pattern (check_payment_status, get_server_info, prepare_atomic_mint, prepare_payment) with a consistent 'prepare_' prefix for the builders. The two bare verbs (mint, register) deviate slightly but remain readable and unambiguous.
Six tools is well-scoped for an NFT minter: info discovery, registration, two payment paths, minting, and payment verification. Each tool earns its place with no redundancy.
The surface covers the full lifecycle: server info, key registration, standalone and atomic payment/mint paths, and on-chain confirmation polling. Minor gaps exist (e.g. no explicit tool to verify a completed mint or query an NFT's status), but agents can work around this via check_payment_status.
Available Tools
6 toolscheck_payment_statusAInspect
Check whether a payment transaction is confirmed on-chain yet. Poll this after paying and before calling 'register', 'mint', or trusting a payment_tx you're about to reference -- submitting a transaction does not mean it is confirmed.
| Name | Required | Description | Default |
|---|---|---|---|
| tx | Yes | ||
| api_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It discloses the key non-obvious trait — confirmation is eventual, so a submitted tx must be polled — but says nothing about return values, error behavior, or the api_key auth requirement.
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?
Two tight sentences, front-loaded with the core purpose followed by the operational rule. No filler; every clause earns its place.
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?
There is no output schema, so the description should clarify what a confirmation check returns (boolean, status, block depth). It covers when/why well but leaves the response shape and parameter formats unspecified for a tool the agent must branch on.
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 0% for both required params. The description loosely implies tx is a payment transaction hash/signature via 'payment_tx you're about to reference', but gives no format detail, and api_key is entirely unexplained. It does not compensate for the coverage gap.
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 ('Check whether a payment transaction is confirmed on-chain yet') with clear scope. It is easily distinguished from siblings like mint, register, and prepare_payment, which it explicitly references.
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 sequencing: poll after paying and before calling 'register', 'mint', or trusting a payment_tx. It names the sibling tools it gates and explains the failure mode ('submitting a transaction does not mean it is confirmed') that motivates the check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_server_infoAInspect
Everything you need before your first call: where to send ADA, and how much. No API key required -- call this first, before 'register'.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden and does disclose auth context ('No API key required') and the returned content (where to send ADA, and how much). It stops short of explicitly confirming read-only/no side effects or describing response format, but the auth and payload disclosures go meaningfully beyond the name.
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?
Two short sentences with the ordering constraint front-loaded immediately after the colon. The opening clause ('Everything you need before your first call') is slightly promotional, but no sentence is wasted and the actionable content leads.
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 zero-parameter bootstrap tool with no output schema and no annotations, the description supplies the essentials: when to call it, that it needs no credentials, and what it returns. It could note whether the returned address/amount is stable or per-session, but nothing critical to invoking it 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?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. The description correctly implies a pure parameterless call rather than suggesting any inputs.
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 states the resource and its payload concretely: the ADA destination address and amount, positioned as a bootstrap/pre-flight lookup. The verb is only implied by the tool name, but the content is specific enough that an agent knows what it gets back and how it differs from 'register'.
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 explicitly sequences the call ('call this first, before register') and names the sibling it must precede, which is exactly the routing an agent needs. It also removes a prerequisite question by stating no API key is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mintAInspect
Mint an NFT after separately paying the mint fee (see prepare_payment or pay any other way, then wait for on-chain confirmation -- check_payment_status). Pin your asset (and a thumbnail, for video) to IPFS yourself first; this server never stores files. Each payment transaction hash can only be used once -- a failed mint attempt does not consume it, retry with the same payment_tx. You are solely responsible for the content referenced by ipfs_hash.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | ||
| nft_name | Yes | ||
| ipfs_hash | Yes | ||
| asset_kind | No | image | |
| payment_tx | Yes | ||
| description | No | ||
| destination_address | Yes | ||
| ipfs_hash_thumbnail | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that each payment_tx is single-use, that a failed attempt does NOT consume it, that the server never stores files, and that the caller is solely responsible for ipfs_hash content. It omits auth/permission requirements and whether the mint itself is irreversible.
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?
The main action and its precondition are front-loaded, and every sentence carries operational information rather than filler. The parenthetical 'see prepare_payment or pay any other way' and em-dash clause are slightly rambling, but the density is appropriate for a multi-step financial operation.
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 mutation tool with no annotations, no output schema and 0% schema coverage, the description covers the workflow and failure semantics well but does not say what mint returns (token id? tx hash?) or note rate/auth constraints. Given no output schema exists, a sentence on the return value would have closed the gap.
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 0% across 8 params, so the description must compensate. It adds real semantic value for payment_tx (single-use, retryable), ipfs_hash (self-pinned, caller-owned) and ipfs_hash_thumbnail (needed for video), but leaves api_key, destination_address, asset_kind, nft_name and description entirely unexplained.
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 opens with a specific verb+resource ('Mint an NFT') and immediately states the distinguishing precondition (payment made separately). It routes to related siblings (prepare_payment, check_payment_status), so an agent can tell it apart from the payment helpers. It does not address prepare_atomic_mint, the most likely alternative for a one-step mint, which keeps it from a 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?
It lays out an explicit ordered workflow: pay the fee first, wait for on-chain confirmation via check_payment_status, pin assets to IPFS yourself, then mint. Retry guidance is also given (reuse payment_tx on failure). It lacks an explicit 'use X instead when...' clause against prepare_atomic_mint, so no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_atomic_mintAInspect
Build a single transaction that pays the mint fee from from_address AND mints the NFT to destination_address at the same time -- no separate payment step, no payment_tx. Either both happen or neither does. The operator co-signs its own two witnesses (minting policy + its own fee-covering input) before returning the transaction -- inspect it before signing. You then add your own witness for from_address and submit: sign partially_signed_tx directly (cardano-cli 'transaction sign --tx-file --signing-key-file ', or a CIP-30 wallet's signTx(_, true) then merge the witness) and submit it yourself -- this server cannot sign or submit on your behalf. Pin your asset to IPFS yourself first. You are solely responsible for the content referenced by ipfs_hash.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | ||
| nft_name | Yes | ||
| ipfs_hash | Yes | ||
| asset_kind | No | image | |
| description | No | ||
| from_address | Yes | ||
| destination_address | Yes | ||
| ipfs_hash_thumbnail | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and carries it well: it discloses atomicity ('either both happen or neither'), that the operator co-signs two witnesses before returning, that the caller must add their own witness, and that the server cannot sign or submit. It also assigns explicit responsibility for IPFS content.
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?
It is long, but the length is earned by the tool's multi-step signing workflow and the absence of annotations. The purpose is front-loaded, followed by operator behavior, then caller actions, though a couple of clauses are dense and could be split.
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?
There is no output schema and no annotations, yet the description explains the returned artifact (partially_signed_tx) and the full sign-and-submit handoff, which is what an agent most needs. The remaining gap is the undocumented optional parameters.
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 0% across 8 parameters, so the description must compensate. It adds real meaning for from_address (fee payer), destination_address (mint recipient), and ipfs_hash (pinning responsibility), but leaves nft_name, asset_kind, description, and ipfs_hash_thumbnail entirely undocumented in both schema and prose.
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 opens with a specific verb and resource: 'Build a single transaction that pays the mint fee from from_address AND mints the NFT to destination_address at the same time.' The atomicity guarantee and 'no separate payment step, no payment_tx' cleanly distinguish it from the prepare_payment and mint siblings.
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 states the condition that selects this tool (atomic fee+mint with no separate payment) and gives concrete submission steps for two signing paths. It never names the sibling alternatives (mint, prepare_payment) explicitly, so an agent must infer the contrast from the 'no separate payment step' phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_paymentAInspect
Build an unsigned transaction that pays the mint fee from from_address to the operator, with change returned to from_address. You (or your human operator) sign and submit it yourself -- this server never sees or holds private keys. Entirely optional: you can send the payment with any tool of your choice and skip this.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | ||
| from_address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does disclose important behavior: the transaction is unsigned, the server never sees or holds private keys, and change returns to the sender. It says nothing about network/fee handling, error modes, or whether this touches chain state, which for a transaction-building tool is a notable gap.
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?
Two tight sentences, purpose front-loaded ahead of the optionality caveat, with the non-custodial guarantee attached to the signing step it affects. No sentence is redundant.
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 2-parameter transaction builder with no annotations and no output schema, the description covers what the tool produces, who signs, and that it is skippable. It falls short only on api_key semantics and the format of the returned unsigned transaction.
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 0%, so the description must compensate. It explains from_address's role clearly through the fund flow, but gives no format guidance (address type/chain) and never mentions api_key at all, leaving half the parameters semantically undocumented.
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 (build), a specific artifact (unsigned transaction), and the exact fund flow: mint fee from from_address to the operator with change returned. An agent can distinguish this from mint and prepare_atomic_mint without opening 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?
Explicitly frames the tool as optional and tells the agent it may pay with any tool of its choice and skip this one. Missing is the sequencing context (e.g., when in the mint flow this is actually needed) and any named alternative sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registerAInspect
Register a new API key by paying a one-time fee. Pay the registration fee (see get_server_info) from the Cardano address you want your key bound to, sending it to the operator's payment_address, then call this with that transaction's hash. The payment must already be CONFIRMED on-chain (wait ~20-30s after submitting, or check with check_payment_status). One active key per address -- registering twice with the same address fails. Each payment transaction can only be used once, for registration or for a mint, not both.
| Name | Required | Description | Default |
|---|---|---|---|
| from_address | Yes | ||
| registration_tx | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the on-chain payment prerequisite, the ~20-30s confirmation wait, the one-key-per-address rule, and the single-use constraint on payment transactions. It stops short of describing failure modes or the return value, but the key behavioral gates are all present.
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?
Four sentences, front-loaded with the core action before the procedural detail. Slightly long, but each sentence carries a distinct constraint (payment, timing, uniqueness, reuse) and none is redundant.
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 two-param registration tool with no output schema and no annotations, the description supplies the prerequisites, timing expectations, and failure conditions an agent needs to call it correctly. Only the response shape and error semantics are unaddressed, which is minor here.
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 0%, so the description must compensate. It does: from_address is identified as 'the Cardano address you want your key bound to' and registration_tx as 'that transaction's hash' from the payment. Both parameters gain meaning beyond their bare names.
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 — 'Register a new API key' — and immediately scopes it with 'by paying a one-time fee.' This clearly distinguishes it from siblings like mint or prepare_payment, which involve payment but not key registration.
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?
Explicitly sequences the workflow: pay the fee from the target Cardano address to the operator's payment_address, then call this with the tx hash. Names the sibling tools get_server_info (for the fee/address) and check_payment_status (to verify confirmation), and states exclusions — one key per address, and a payment tx cannot be reused.
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.
6 tool updates
- First observed
check_payment_status - First observed
get_server_info - First observed
mint - First observed
prepare_atomic_mint - First observed
prepare_payment - First observed
register
Related MCP Connectors
Deploy ERC-20 tokens on Ethereum, Base, BNB, Polygon via MCP. One call = deployed contract.
Multi-chain wallet MCP. 18 tools: balance, swap, bridge, stake, claim. Pay-per-call USDC (x402 v2).
Non-custodial cross-chain crypto swap MCP — 1288+ assets, no KYC. Solana/EVM/Monero, RPC, oracle.
MCP for Singularity Layer - discover listings, manage assets, run payment flows, and use agents
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to manage Cardano wallets, check balances, send ADA and native assets, and settle atomic swaps via a built-in MCP server.2Apache 2.0
- AlicenseNot gradedqualityCmaintenanceMCP server for Cardano blockchain data — exposes on-chain queries, address lookups, transaction history, token metadata, stake pool info, and network parameters to LLM agents.48 npm4MIT
- AlicenseCqualityDmaintenanceMCP server enabling LLMs to interact with a Cardano node by wrapping cardano-cli/torsten-cli, supporting queries, transactions, staking, and governance operations.64MIT

jorkal-nft-mcpofficial
FlicenseAqualityDmaintenanceMCP server for Solana NFT market data via Magic Eden. Paid with x402 USDC micropayments.81-
Glama MCP Gateway
Add one secure layer between your agents and this server.