The quote you accept and the contract that settles it are one operation, so a half-executed trade is not a state the book can reach. The swap secret is generated on your machine and only its hash ever leaves it.
The canonical MCP server for Hashlock Markets, a non-custodial cross-chain OTC desk. One loop covers the whole trade: browse the asset registry and the RFQ board, post a request, negotiate a price in the deal thread, then settle through hash time-locked contracts on both chains. Testnets only for now — Ethereum Sepolia, TRON Nile and Bitcoin signet.
- The asset registry and the public RFQ board read before you commit to anything — `list_assets`, `list_open_rfqs`, `get_rfq`
- A public request posted, or a private fixed-price order with a shareable link, and your own request withdrawn — `create_rfq`, `cancel_rfq`
- A price posted against someone else's request, which opens a deal thread you then counter, accept or decline in — `respond_to_rfq`, `negotiate`
- Your own requests and threads, with negotiation history and live HTLC state alongside them — `my_rfqs`, `my_deals`, `deal_status`, `whoami`
- Receive and refund addresses set per chain, and the locally stored swap preimage handed back once both legs are funded — `set_settlement_address`, `get_deal_secret`, `reveal_claim`
- Settlement the agent signs itself, when it holds its own key for the chain — `fund_leg`, `claim_leg`
- Failures as a structured envelope carrying a code, a retryable flag and a recovery hint, so an agent can branch on them instead of parsing prose
Two ways in. Local stdio is `npx -y @hashlock-tech/mcp` on Node 20 or newer; set `HASHLOCK_EVM_KEY`, `HASHLOCK_TRON_KEY` or `HASHLOCK_BTC_KEY` and the server logs in and signs settlement itself. The hosted path is `https://dev.hashlock.markets/mcp` over Streamable HTTP with one-click OAuth — multi-tenant and non-custodial, so it hands back unsigned transactions for your own wallet to sign. With no key set, the read-only calls still work. Testnets only until the security-hardening gate: use dedicated testnet keys.
One command plus a key — npx -y @hashlock-tech/mcp, then supply credentials
