Skip to main content
Glama
bitnovo

MCP Bitnovo Pay

Official
by bitnovo

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoHTTP port for remote connections (auto-set by most cloud platforms)
NGROK_DOMAINNoYour ngrok domain (e.g., your-domain.ngrok-free.app)
TUNNEL_ENABLEDNoAuto-start tunnel for webhooks
NGROK_AUTHTOKENNoYour ngrok authentication token (required if TUNNEL_PROVIDER is ngrok)
TUNNEL_PROVIDERNoTunnel provider (ngrok, zrok, or manual)
WEBHOOK_ENABLEDNoEnable webhook server
BITNOVO_BASE_URLYesBitnovo API endpoint (production: https://pos.bitnovo.com, development: https://payments.pre-bnvo.com)
BITNOVO_DEVICE_IDYesYour Bitnovo Pay device identifier
BITNOVO_DEVICE_SECRETNoHMAC secret for webhook validation (optional, hex format)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
create_payment_onchainA

🚨 CRITICAL RULE #1 - EXPIRATION: YOU MUST tell user payment expires in EXACTLY "expires_in_minutes" MINUTES. Convert "expires_at" (UTC) to user's LOCAL TIME ZONE and display in their language. Format: "expires in X minutes (on [date] at [time] [user's timezone])".

💰 CRITICAL RULE #2 - AMOUNT: YOU MUST show "expected_input_amount" with FULL PRECISION (all decimals). Example: "0.43515861 SOL" not "0.44 SOL". This is the EXACT amount customer must send.

🪙 RULE #3 - DISPLAY: Show users ONLY "original_symbol" (BTC, USDC, SOL) and "original_blockchain" (Bitcoin Network, Solana Test Network). NEVER mention internal codes.

🔗 CRITICAL RULE #4 - PAYMENT LINK: ALWAYS display "web_url" as "Enlace de pago:" or "Payment Link:" in user's language. This is the web gateway URL where customers can view and complete the payment.

🎯 WHEN TO USE: Only when user explicitly mentions a cryptocurrency (Bitcoin, BTC, Ethereum, ETH, USDC, Solana, SOL, etc.). Customer MUST pay with that exact crypto.

🌐 NETWORK SELECTION: If crypto has MULTIPLE networks (check network_groups), call list_currencies_catalog first, ASK USER which network. Pass cryptocurrency as "SYMBOL on NETWORK".

EXAMPLES: cryptocurrency="BTC", cryptocurrency="USDC on Ethereum Network", cryptocurrency="SOL on Solana Test Network".

create_payment_linkA

Create payment link/URL where customer chooses cryptocurrency. USE AS DEFAULT WHEN: User requests payment without specifying crypto. Customer clicks link and selects their preferred cryptocurrency from available options. RESULT: Returns a web_url that you share with your customer. EXAMPLES: "Payment for 50 euros", "Create payment", "Generate QR", "Payment link", "dame el qr para un pago de 24 euros". PREFERRED for all generic payment requests. NOTE: Customer can choose ANY available cryptocurrency in the gateway. IMPORTANT: Only provide url_ok and url_ko if user explicitly requests redirect URLs - DO NOT invent or assume redirect URLs.

get_payment_statusA

Query the current status and details of a payment by its unique identifier. USE THIS WHEN: User wants to check if a payment was completed, or get details about a previously created payment. RESULT: Payment status (PE=Pending, CO=Completed, EX=Expired, CA=Cancelled), amounts, and confirmation info. Status descriptions: PE (Pending): Waiting for customer to pay, CO (Completed): Payment confirmed on blockchain, EX (Expired): Payment time limit exceeded, CA (Cancelled): Payment was cancelled. EXAMPLES: "Check payment status", "Is payment abc-123 completed?", "Status of my payment". Note: Exchange rate is not included in response as it may not be accurate for non-EUR fiat currencies.

list_currencies_catalogA

Get available cryptocurrencies with optional amount filtering. USE WHEN: (1) User asks which cryptos available, (2) BEFORE onchain payment if crypto has multiple networks (e.g., USDC). DISPLAY RULES: Show users "original_symbol" (BTC, USDC) and "original_blockchain" (Bitcoin Network, Ethereum Network). Use "input_currency_code" ONLY when calling create_payment_onchain - NEVER show it to users. NETWORK SELECTION: If multiple networks exist (shown in network_groups), ASK user which network. RESULT: List with min/max amounts, decimals, network info, features. EXAMPLES: "Which cryptos available?", "What currencies support 50 euros?"

generate_payment_qrA

Generate QR codes for payment address and/or payment URI from an existing payment. USE THIS WHEN: User wants QR in different size/style than original, User wants only address QR or only payment URI QR (not both), User created payment without QR (include_qr=false) and now needs it, User wants QR for gateway URL (for redirect payments). EXAMPLES: "Generate bigger QR", "Create QR without branding", "I need QR of 500px", "Generate QR for the payment link"

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bitnovo/mcp-bitnovo-pay'

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