{"apiVersion":"v1","directorySlug":"libre-mcp-223a5da577","title":"Libre","description":"Libre is the peer-to-peer Bitcoin lending marketplace. Borrow USDT against BTC collateral or lend stablecoins and earn predictable yield with 200% Bitcoin backing.","pageUrl":"https://www.mcpbundles.com/skills/libre-mcp-223a5da577","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.libre.org/mcp","hostedMcpUrl":null,"toolCount":32,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"org.libre/libre-mcp-223a5da577","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"get_chain_info","description":"Chain id, head block and time for the selected network.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"logicalName":"get_chain_info","displayName":"get_chain_info","title":"get_chain_info","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_account","description":"Balances (BTC, USDT, LIBRE, TPF, CBTC), permissions, resources, and whether the account key is on the Ill Bloom affected-set (compromised) list. Refuse to operate from an account with affected_set=true; if affected_set_checked=false the gate was unavailable and affected_set=false means unknown, not safe.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account"],"properties":{"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"logicalName":"get_account","displayName":"get_account","title":"get_account","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_deposit_address","description":"The account's personal BTC deposit (bridge peg-in) address. BTC sent here arrives as BTC on Libre after confirmation.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account"],"properties":{"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"logicalName":"get_deposit_address","displayName":"get_deposit_address","title":"get_deposit_address","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_table_rows","description":"Raw get_table_rows escape hatch for any Libre contract table.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["code","scope","table"],"properties":{"code":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"limit":{"type":"integer","maximum":500,"minimum":1},"scope":{"type":"string"},"table":{"type":"string"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"reverse":{"type":"boolean"},"key_type":{"type":"string"},"lower_bound":{"type":["string","number"]},"upper_bound":{"type":["string","number"]},"index_position":{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991}}},"logicalName":"get_table_rows","displayName":"get_table_rows","title":"get_table_rows","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_orderbook","description":"dex.libre orderbook for a pair: bids/asks sorted best-first, best prices and spread. truncated:true means the book exceeded the 500-row page read and the depth shown is partial.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["pair"],"properties":{"pair":{"enum":["btcusdt","librebtc"],"type":"string"},"depth":{"type":"integer","default":20,"maximum":200,"minimum":1},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"logicalName":"get_orderbook","displayName":"get_orderbook","title":"get_orderbook","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_orders","description":"Open dex.libre orders for an account (optionally one pair). truncated:true means a book exceeded the 500-row page read and orders may be missing.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account"],"properties":{"pair":{"enum":["btcusdt","librebtc"],"type":"string"},"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"logicalName":"get_orders","displayName":"get_orders","title":"get_orders","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_trades","description":"Recent dex.libre trades for a pair, newest first. truncated:true means the history exceeded the 500-row page read, so older trades for this pair are not included.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["pair"],"properties":{"pair":{"enum":["btcusdt","librebtc"],"type":"string"},"limit":{"type":"integer","default":50,"maximum":200,"minimum":1},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"logicalName":"get_trades","displayName":"get_trades","title":"get_trades","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_pool_stats","description":"Lending pool state (available/outstanding USDT per pool), interest-rate curve config, and oracle BTC/USD.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"logicalName":"get_pool_stats","displayName":"get_pool_stats","title":"get_pool_stats","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_loans","description":"Active and queued loans (optionally one account); include_completed adds history.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"include_completed":{"type":"boolean","default":false}}},"logicalName":"get_loans","displayName":"get_loans","title":"get_loans","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_vault","description":"Collateral vault for an account: vault name, CBTC collateral balance, and the BTC address to fund it.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account"],"properties":{"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"logicalName":"get_vault","displayName":"get_vault","title":"get_vault","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_redemption_queue","description":"Queued lender redemptions (TPF → USDT waiting for liquidity), optionally one account.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"logicalName":"get_redemption_queue","displayName":"get_redemption_queue","title":"get_redemption_queue","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_btc_price","description":"Authoritative BTC/USD price from the on-chain oracle contract — the average of a round of independent feeders (at least 3, agreeing within 10%, or the round is skipped and the previous price stands), and the price the loan contract uses for LTV and liquidation. Prefer this over any external exchange price. A feed older than 5 minutes is marked stale and must not be used for collateral math.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"pair":{"type":"string","default":"btcusd"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"logicalName":"get_btc_price","displayName":"get_btc_price","title":"get_btc_price","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"setup_deposit_address","description":"Compose registration with a bridge so the account is assigned its own Bitcoin address, which is how an agent funds itself. Sign this, then poll get_deposit_address: the bridge signers assign the address a short time later (about a minute on testnet), so it is NOT available immediately. bridge \"btc\" (x.libre, default) is the wallet balance used for trading; \"vault\" (v.libre) is loan collateral, and setup_vault already handles that path for borrowing. Fails if an address already exists.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account"],"properties":{"bridge":{"enum":["btc","vault"],"type":"string","default":"btc"},"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"permission":{"type":"string","default":"active","pattern":"^[a-z1-5.]{1,12}$"}}},"logicalName":"setup_deposit_address","displayName":"setup_deposit_address","title":"setup_deposit_address","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"transfer","description":"Compose a token transfer on Libre (unsigned). Returns actions + esr.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["from","to","symbol","amount"],"properties":{"to":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"from":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"memo":{"type":"string","default":"","maxLength":256},"amount":{"type":["string","number"]},"symbol":{"enum":["BTC","USDT","LIBRE"],"type":"string"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"permission":{"type":"string","default":"active","pattern":"^[a-z1-5.]{1,12}$"}}},"logicalName":"transfer","displayName":"transfer","title":"transfer","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"place_order","description":"Compose a dex.libre limit order. amount is in the base token (BTC for btcusdt), price in quote per base (USDT; BTC with 10 decimals for librebtc). Buys lock amount*price of quote; sells lock amount of base.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account","pair","side","price","amount"],"properties":{"pair":{"enum":["btcusdt","librebtc"],"type":"string"},"side":{"enum":["buy","sell"],"type":"string"},"price":{"type":["string","number"]},"amount":{"type":["string","number"]},"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"permission":{"type":"string","default":"active","pattern":"^[a-z1-5.]{1,12}$"}}},"logicalName":"place_order","displayName":"place_order","title":"place_order","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cancel_order","description":"Compose cancellation of an open dex.libre order (see get_orders for ids).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account","pair","order_id"],"properties":{"pair":{"enum":["btcusdt","librebtc"],"type":"string"},"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"order_id":{"type":"integer","maximum":9007199254740991,"minimum":0},"permission":{"type":"string","default":"active","pattern":"^[a-z1-5.]{1,12}$"}}},"logicalName":"cancel_order","displayName":"cancel_order","title":"cancel_order","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"withdraw_btc","description":"Compose a BTC withdrawal (bridge peg-out) from Libre to a Bitcoin address. Bridge fee applies (x.libre feeconfig table).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account","btc_address","amount"],"properties":{"amount":{"type":["string","number"]},"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"permission":{"type":"string","default":"active","pattern":"^[a-z1-5.]{1,12}$"},"btc_address":{"type":"string"}}},"logicalName":"withdraw_btc","displayName":"withdraw_btc","title":"withdraw_btc","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"setup_vault","description":"Compose collateral-vault creation (createvault + genaddr). The vault sub-account name is generated here and returned as vault_name. Afterwards get_vault returns the BTC address to fund.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account"],"properties":{"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"permission":{"type":"string","default":"active","pattern":"^[a-z1-5.]{1,12}$"}}},"logicalName":"setup_vault","displayName":"setup_vault","title":"setup_vault","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"borrow","description":"Compose a variable-rate USDT loan against vault collateral. Minimum loan is 0.001 BTC worth of USDT (~$80 at current prices; the floor is BTC-denominated so the USDT figure moves). max_apr_bps is a slippage cap on the interest rate, compared against the APR AFTER this loan is disbursed — your own borrowing raises utilization, so the post-disbursement rate is higher than the one get_pool_stats shows now. A request over the cap is not rejected: it stays in the loan queue and opens if the rate late","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account","amount_usdt","max_apr_bps"],"properties":{"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"pool_id":{"type":"integer","default":6,"maximum":9007199254740991,"minimum":-9007199254740991},"permission":{"type":"string","default":"active","pattern":"^[a-z1-5.]{1,12}$"},"amount_usdt":{"type":["string","number"]},"max_apr_bps":{"type":"integer","maximum":65535,"minimum":1}}},"logicalName":"borrow","displayName":"borrow","title":"borrow","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cancel_loan_request","description":"Compose cancellation of a queued (unfilled) loan request.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account"],"properties":{"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"permission":{"type":"string","default":"active","pattern":"^[a-z1-5.]{1,12}$"}}},"logicalName":"cancel_loan_request","displayName":"cancel_loan_request","title":"cancel_loan_request","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"repay","description":"Compose a USDT repayment toward the account's loan.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account","amount_usdt"],"properties":{"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"permission":{"type":"string","default":"active","pattern":"^[a-z1-5.]{1,12}$"},"amount_usdt":{"type":["string","number"]}}},"logicalName":"repay","displayName":"repay","title":"repay","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"withdraw_collateral","description":"Compose a collateral withdrawal (CBTC → BTC to an address). Fails on-chain if it would breach LTV. The v.libre bridge charges 50 bps on the way out, capped at 0.005 CBTC, with a 0.0008 CBTC minimum withdrawal; funding a vault is free.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account","amount_cbtc","btc_address"],"properties":{"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"permission":{"type":"string","default":"active","pattern":"^[a-z1-5.]{1,12}$"},"amount_cbtc":{"type":["string","number"]},"btc_address":{"type":"string"}}},"logicalName":"withdraw_collateral","displayName":"withdraw_collateral","title":"withdraw_collateral","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"lend","description":"Compose a USDT deposit into the lending pool (mints TPF shares).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account","amount_usdt"],"properties":{"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"pool_id":{"type":"integer","default":6,"maximum":9007199254740991,"minimum":-9007199254740991},"permission":{"type":"string","default":"active","pattern":"^[a-z1-5.]{1,12}$"},"amount_usdt":{"type":["string","number"]}}},"logicalName":"lend","displayName":"lend","title":"lend","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"redeem","description":"Compose redemption of TPF shares for USDT (queued if liquidity is out on loan).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account","amount_tpf"],"properties":{"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"pool_id":{"type":"integer","default":6,"maximum":9007199254740991,"minimum":-9007199254740991},"amount_tpf":{"type":["string","number"]},"permission":{"type":"string","default":"active","pattern":"^[a-z1-5.]{1,12}$"}}},"logicalName":"redeem","displayName":"redeem","title":"redeem","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cancel_redeem","description":"Compose cancellation of a queued redemption by id (see get_redemption_queue).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["account","id"],"properties":{"id":{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991},"account":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"permission":{"type":"string","default":"active","pattern":"^[a-z1-5.]{1,12}$"}}},"logicalName":"cancel_redeem","displayName":"cancel_redeem","title":"cancel_redeem","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"push_transaction","description":"Broadcast a transaction you signed yourself (WharfKit packed format). Only agent-whitelisted actions with ≤10 min expiry are relayed.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["signed_tx"],"properties":{"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"signed_tx":{"type":"object","required":["signatures","packed_trx"],"properties":{"packed_trx":{"type":"string","pattern":"^[0-9a-f]+$"},"signatures":{"type":"array","items":{"type":"string"},"minItems":1},"compression":{"anyOf":[{"type":"number","const":0},{"type":"string","const":"none"}],"default":0},"packed_context_free_data":{"type":"string","default":""}}}}},"logicalName":"push_transaction","displayName":"push_transaction","title":"push_transaction","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"request_account","description":"Paid account creation. NOT ENABLED — Libre accounts are free at https://accounts.libre.org, so this exists only as a proxy if a paid registrar is ever deployed. Calling it returns instructions, not an account.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["name","agent_key"],"properties":{"name":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"agent_key":{"type":"string"},"owner_key":{"type":"string"}}},"logicalName":"request_account","displayName":"request_account","title":"request_account","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_account_request","description":"Status of a request_account payment/creation.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["id"],"properties":{"id":{"type":"string","minLength":1},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"}}},"logicalName":"get_account_request","displayName":"get_account_request","title":"get_account_request","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"draft_invoice","description":"Build invoice terms with a staged payment schedule and return the canonical bytes and digest for the seller to sign. Settlement is trust-based: there is no escrow and the final tranche is not enforced. This server stores nothing — keep the returned terms and signatures yourself.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["invoice_id","seller","buyer","total","symbol","description","issued_at","expires_at"],"properties":{"buyer":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"total":{"type":["string","number"]},"seller":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"symbol":{"enum":["BTC","USDT","LIBRE"],"type":"string"},"schedule":{"type":"array","items":{"type":"object","required":["percent_bps","trigger"],"properties":{"trigger":{"enum":["on_approval","on_delivery","on_acceptance"],"type":"string"},"percent_bps":{"type":"integer","maximum":10000,"minimum":1}}},"maxItems":10,"minItems":1},"issued_at":{"type":"string"},"expires_at":{"type":"string"},"invoice_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,64}$"}}},"logicalName":"draft_invoice","displayName":"draft_invoice","title":"draft_invoice","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"verify_invoice","description":"Check that the seller (and, once approved, the buyer) signed exactly these terms. Proves the terms were agreed; it does NOT prove anything was paid.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["terms","seller_signature","seller_key"],"properties":{"terms":{"type":"object","required":["invoice_id","seller","buyer","total","token_contract","description","issued_at","expires_at","schedule"],"properties":{"buyer":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"total":{"type":"string"},"seller":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"schedule":{"type":"array","items":{"type":"object","required":["seq","amount","trigger"],"properties":{"seq":{"type":"integer","maximum":10,"minimum":1},"amount":{"type":"string"},"trigger":{"enum":["on_approval","on_delivery","on_acceptance"],"type":"string"}}}},"issued_at":{"type":"string"},"expires_at":{"type":"string"},"invoice_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,64}$"},"token_contract":{"type":"string"}}},"buyer_key":{"type":"string"},"seller_key":{"type":"string"},"buyer_signature":{"type":"string"},"seller_signature":{"type":"string"}}},"logicalName":"verify_invoice","displayName":"verify_invoice","title":"verify_invoice","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"compose_invoice_payment","description":"Compose the (unsigned) transfer paying one tranche of an invoice, with the standard pay:<invoice_id>#<seq> memo. Use this rather than typing the memo by hand: a transfer whose memo does not parse cannot be attributed to an invoice.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["invoice_id","seq","from","to","symbol","amount"],"properties":{"to":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"seq":{"type":"integer","maximum":10,"minimum":1},"from":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"amount":{"type":["string","number"]},"symbol":{"enum":["BTC","USDT","LIBRE"],"type":"string"},"network":{"enum":["mainnet","testnet"],"type":"string","default":"mainnet"},"invoice_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,64}$"},"permission":{"type":"string","default":"active","pattern":"^[a-z1-5.]{1,12}$"}}},"logicalName":"compose_invoice_payment","displayName":"compose_invoice_payment","title":"compose_invoice_payment","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"reconcile_invoice","description":"Match confirmed transfers against invoice terms: which tranches are paid, what is still owed, what arrived twice, and which transfers could not be attributed. Replays credit nothing twice. Set cancelled=true to report a withdrawn invoice: nothing further is due and any tranche already paid reads refund_due — a refund the seller owes, tracked here but not enforced, since this server moves no funds.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["terms","transfers"],"properties":{"fired":{"type":"array","items":{"enum":["on_approval","on_delivery","on_acceptance"],"type":"string"},"default":[]},"terms":{"type":"object","required":["invoice_id","seller","buyer","total","token_contract","description","issued_at","expires_at","schedule"],"properties":{"buyer":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"total":{"type":"string"},"seller":{"type":"string","pattern":"^[a-z1-5.]{1,12}$"},"schedule":{"type":"array","items":{"type":"object","required":["seq","amount","trigger"],"properties":{"seq":{"type":"integer","maximum":10,"minimum":1},"amount":{"type":"string"},"trigger":{"enum":["on_approval","on_delivery","on_acceptance"],"type":"string"}}}},"issued_at":{"type":"string"},"expires_at":{"type":"string"},"invoice_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,64}$"},"token_contract":{"type":"string"}}},"cancelled":{"type":"boolean","default":false},"transfers":{"type":"array","items":{"type":"object","required":["tx_id","action_index","from","to","contract","quantity","memo","confirmed"],"properties":{"to":{"type":"string"},"from":{"type":"string"},"memo":{"type":"string"},"tx_id":{"type":"string"},"contract":{"type":"string"},"quantity":{"type":"string"},"confirmed":{"type":"boolean"},"action_index":{"type":"integer","maximum":9007199254740991,"minimum":0}}},"maxItems":200}}},"logicalName":"reconcile_invoice","displayName":"reconcile_invoice","title":"reconcile_invoice","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Libre&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AubGlicmUub3JnL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Libre%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.libre.org%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Libre%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.libre.org%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Libre&connectorUrl=https%3A%2F%2Fmcp.libre.org%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Libre\" --url \"https://mcp.libre.org/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/libre-mcp-223a5da577","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/libre-mcp-223a5da577/tools/{tool}","mcpServerUrl":"https://mcp.libre.org/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/libre-mcp-223a5da577?live=1"}