Bull OTC
Server Details
Non-custodial RFQ and atomic swap settlement for AI agents. Escrow onchain, signed receipts.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 16 tools
Buyer and seller actions are mostly clearly separated, and the RFQ/quote/deal lifecycle steps have distinct purposes. Some read/status tools overlap in checking quote or deal state (bull_get_deal, bull_quote_status, bull_get_quotes, bull_get_receipt), but their descriptions clarify public onchain state versus private quote state versus proof.
All tools share a consistent bull_ prefix and snake_case convention, and most follow a verb_noun pattern such as bull_create_rfq or bull_accept_quote. Minor deviations like bull_info, bull_stats, and bull_quote_status are still readable and predictable.
Sixteen tools is slightly heavy but reasonable for a two-sided OTC/RFQ workflow with negotiation, escrow funding, settlement, and verification. Each tool maps to a concrete workflow step, though bull_info and bull_stats are mildly auxiliary.
The surface covers the main lifecycle: RFQ creation, seller quoting, buyer acceptance/counter/rejection, deal attachment, seller deposit, status checks, and receipts. Minor gaps remain around cancelling/withdrawing an RFQ or quote, deal cancellation/timeout handling, and webhook management.
Available Tools
16 toolsbull_accept_quoteAInspect
Use as a BUYER to accept a quote. Returns the exact createDeal transaction (with Bull's signed fee quote) for your wallet to send; Bull never holds your funds. Then call bull_attach_deal with the dealId from the DealCreated event. Safe to call again to refresh the fee quote. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.
Inputs: address (required), quoteId (required), payAsset, signature, +1 more.
bull_attach_dealAInspect
Use as a BUYER after sending createDeal: report the dealId. Bull checks it against the quote and returns the payment transactions (approve if needed, then fundPayment) to send from the buyer wallet. When the seller deposits, the swap settles in that transaction. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.
Inputs: dealId (required), address (required), quoteId (required), signature, +1 more.
bull_counter_quoteAInspect
Use as a BUYER to negotiate: propose a different total price (and optionally a different token amount) on a pending quote. Returns the stored counter. The seller can answer with bull_revise_quote. Works only while the quote is pending. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.
Inputs: price (required), address (required), quoteId (required), tokens, +2 more.
bull_create_rfqAInspect
Use when you want to BUY a token in size (a block trade) without moving the market price: posts a private request for quotes on Bull, a non-custodial atomic OTC settlement layer. Returns an rfqId; sellers answer with sealed quotes only you can read. Optional maxPrice limit and webhook; set dryRun to only validate, idempotencyKey to make retries safe. Not for small market swaps (use a DEX) or paying for API calls (use x402). Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.
Inputs: token (required), address (required), sizeUsd (required), note, +9 more.
bull_depositAInspect
Use as a SELLER to submit the signed permit from bull_deposit_plan. Bull's relayer sends it and pays the gas; the swap settles in that transaction and you are paid in the same step. Returns the transaction hash. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.
Inputs: r (required), s (required), v (required), address (required), +4 more.
bull_deposit_planAInspect
Use as a SELLER after the buyer has paid into escrow: returns what to sign to deposit your tokens, either a gasless EIP-2612 permit (Bull's relayer pays gas) or direct approve + fundTokens transactions. Fails with not_ready until the buyer has funded. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.
Inputs: address (required), quoteId (required), signature, timestamp.
bull_get_dealAInspect
Use to verify any escrow deal onchain: open, settled or cancelled, and whether buyer and seller have funded. Public, no signature needed. Returns the deal state read from the contract.
Inputs: dealId (required).
bull_get_quotesAInspect
Use as a BUYER to read the sealed quotes on your own RFQ: seller, token amount, total price, counter state, deal status. Returns a list of quotes with quoteIds. Only the RFQ's buyer can read it. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.
Inputs: rfqId (required), address (required), signature, timestamp.
bull_get_receiptAInspect
Use to get proof of a completed trade: a signed receipt for a settled deal (buyer, seller, token, amounts, fee) that anyone can re-check onchain. Public. Fails with not_settled for deals that are still open.
Inputs: dealId (required).
bull_infoAInspect
Use first to see what Bull is: supported chains, escrow contract, fee tiers, minimum size and auth rules. Public. Bull is a non-custodial atomic OTC/RFQ settlement layer.
Inputs: no named parameters.
bull_list_rfqsAInspect
Use when you SELL or hold a token and want to find buyers: lists open requests for quotes on Bull (token, size in USD, window, buyer's price limit). Returns rfqIds to answer with bull_send_quote. Public, no signature needed. Not for finding market prices.
Inputs: chain, token.
bull_quote_statusAInspect
Use as BUYER or SELLER to check a quote and its onchain deal: status (pending, confirmed, funded, released), dealId, counter, who has funded. Poll this or use webhooks. Only the two parties can read it. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.
Inputs: address (required), quoteId (required), signature, timestamp.
bull_reject_quoteAInspect
Use as a BUYER to reject a quote you do not want. Returns status rejected. Not needed for quotes that simply expire. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.
Inputs: address (required), quoteId (required), signature, timestamp.
bull_revise_quoteAInspect
Use as a SELLER to change the price and/or token amount of your own pending quote, for example to meet the buyer's counter. Returns the new terms. The buyer then accepts with bull_accept_quote. Works only while the quote is pending. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.
Inputs: address (required), quoteId (required), price, tokens, +2 more.
bull_send_quoteAInspect
Use when you want to SELL tokens to a buyer who posted an RFQ: sends a sealed quote (token amount and total ETH price) that only the buyer sees. Returns a quoteId. The swap settles atomically in one escrow transaction, so you never deliver before you are paid. Not for listing prices publicly. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.
Inputs: price (required), rfqId (required), tokens (required), address (required), +6 more.
bull_statsAInspect
Use to check Bull's track record: number of settled deals, total volume, open RFQs and the latest settled deals, read from the escrow contract. Public, no signature needed.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Non-custodial cross-chain OTC for AI agents: sealed RFQ, negotiation, HTLC atomic swaps.
Marketplace and payment rail for AI agents: list, buy and settle with signed receipts.
Marketplace and settlement for AI agents: need/buy, escrow USDC, reputation, data products.
Escrow, verification, and settlement platform for AI agents hiring other AI agents.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceNon-custodial 2-of-3 Bitcoin escrow for AI agents. Two agents agree on signed terms, the buyer funds over Lightning, the seller delivers and gets paid over Lightning, and a neutral arbiter key only breaks ties.549 npmMIT
- AlicenseNot gradedqualityDmaintenanceMulti-party escrow and settlement for autonomous agent transactions with x402 micropayments and dispute resolution on Base, Ethereum, or Solana.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to autonomously discover services, negotiate binding quotes, make idempotent purchases, and receive cryptographically verifiable deliverables.MIT
- AlicenseBqualityBmaintenanceZero-key on-chain intelligence for Base, Ethereum, and Solana. Instant bytecode decompilation, honeypot detection, EIP-1967 proxy resolution, calldata/revert decoding, and pre-flight transaction simulation. No API keys or wallet connection required.131MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.