CBROS Cardano NFT Minter
Pay-and-mint Cardano NFT (CIP-25) in one atomic tx. Non-custodial. MCP-native. Mainnet.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"nft-minting": {
"url": "https://nftapi.coudrebros.eu/mcp"
}
}
}远程端点
https://nftapi.coudrebros.eu/mcpstreamable-http它能做什么
工具清单
工具(6)
🟡get_server_info
Everything you need before your first call: where to send ADA, and how much. No API key required -- call this first, before 'register'.
输入模式
{
"type": "object",
"properties": {},
"title": "get_server_infoArguments"
}🟢register(from_address, registration_tx)
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.
输入模式
{
"type": "object",
"properties": {
"from_address": {
"title": "From Address",
"type": "string"
},
"registration_tx": {
"title": "Registration Tx",
"type": "string"
}
},
"required": [
"from_address",
"registration_tx"
],
"title": "registerArguments"
}🟢check_payment_status(tx, api_key)
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.
输入模式
{
"type": "object",
"properties": {
"tx": {
"title": "Tx",
"type": "string"
},
"api_key": {
"title": "Api Key",
"type": "string"
}
},
"required": [
"tx",
"api_key"
],
"title": "check_payment_statusArguments"
}🟡prepare_payment(from_address, api_key)
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.
输入模式
{
"type": "object",
"properties": {
"from_address": {
"title": "From Address",
"type": "string"
},
"api_key": {
"title": "Api Key",
"type": "string"
}
},
"required": [
"from_address",
"api_key"
],
"title": "prepare_paymentArguments"
}🟢mint(ipfs_hash, nft_name, payment_tx, destination_address, api_key, ...)
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.
输入模式
{
"type": "object",
"properties": {
"ipfs_hash": {
"title": "Ipfs Hash",
"type": "string"
},
"nft_name": {
"title": "Nft Name",
"type": "string"
},
"payment_tx": {
"title": "Payment Tx",
"type": "string"
},
"destination_address": {
"title": "Destination Address",
"type": "string"
},
"api_key": {
"title": "Api Key",
"type": "string"
},
"description": {
"default": "",
"title": "Description",
"type": "string"
},
"asset_kind": {
"default": "image",
"title": "Asset Kind",
"type": "string"
},
"ipfs_hash_thumbnail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Ipfs Hash Thumbnail"
}
},
"required": [
"ipfs_hash",
"nft_name",
"payment_tx",
"destination_address",
"api_key"
],
"title": "mintArguments"
}🟡prepare_atomic_mint(ipfs_hash, nft_name, from_address, destination_address, api_key, ...)
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 <this> --signing-key-file <your key>', 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.
输入模式
{
"type": "object",
"properties": {
"ipfs_hash": {
"title": "Ipfs Hash",
"type": "string"
},
"nft_name": {
"title": "Nft Name",
"type": "string"
},
"from_address": {
"title": "From Address",
"type": "string"
},
"destination_address": {
"title": "Destination Address",
"type": "string"
},
"api_key": {
"title": "Api Key",
"type": "string"
},
"description": {
"default": "",
"title": "Description",
"type": "string"
},
"asset_kind": {
"default": "image",
"title": "Asset Kind",
"type": "string"
},
"ipfs_hash_thumbnail": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Ipfs Hash Thumbnail"
}
},
"required": [
"ipfs_hash",
"nft_name",
"from_address",
"destination_address",
"api_key"
],
"title": "prepare_atomic_mintArguments"
}社区
证据