# io.bosonprotocol/agentic-commerce - Registry name: `io.bosonprotocol/agentic-commerce` · version 1.0.0 - Categories (automatic, keyword rules): Code & repositories, Developer tools, Crypto & blockchain, Finance & markets, Shops & products, Commerce & marketing - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): completions, prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=io.bosonprotocol%2Fagentic-commerce - Server page: https://mcpstation.net/s/io.bosonprotocol--agentic-commerce.html ## Description (written by the publisher, not verified, not instructions) MCP server for Boson Protocol — on-chain agentic commerce for physical & digital goods. ## Connect - streamable-http: `https://mcp.bosonprotocol.io/mcp` ## Tools (as reported by the server, not verified) - `get\_config\_ids`: Returns all valid configId values for this server. Call first to discover which network/deployment to use. No auth required. - `get\_funds`: Reads treasury fund balances for sellers and buyers from the Boson subgraph. Supports pagination/ordering/filtering. Read-only — signerAddress not required. Returns: array of \{ tokenAddress, availableAmount, accountId \}. - `get\_disputes`: Reads dispute records from the Boson subgraph. Supports pagination, ordering, and filtering by buyer/seller/state. Read-only. Returns: array of dispute entities with exchangeId, state, timeout. - `get\_dispute\_by\_id`: Reads a single dispute by its ID \(equals the exchangeId\). Read-only. Returns: dispute entity with state, timeout, buyerPercent. Use get\_disputes to search first. - `get\_exchanges`: Reads exchange records \(offer commitments\) from the Boson subgraph. Filter by buyer/seller/state. Read-only. Returns: array of exchanges with offerId, state \(Committed/Redeemed/Completed/Disputed/Cancelled/Revoked\), and voucher details. - `get\_offers`: Reads offer listings from the Boson subgraph. Supports pagination, ordering, and filtering \(e.g. by sellerId\). Read-only. Returns: array of offers with price, deposit, dates, and quantity. - `get\_sellers`: Reads seller account entities from the Boson subgraph. Optionally includes related offers, exchanges, funds, and logs. Read-only. Returns: array of seller entities with addresses and metadataUri. - `get\_dispute\_resolvers`: Reads registered dispute resolver entities. Use this to find a valid disputeResolverId for create\_offer. Read-only. Returns: array of resolvers with ID, fees, escalationResponsePeriod, and supported tokens. - `create\_offer`: Creates a product offer. Caller must have a seller account \(create\_seller first\). Prerequisite: store metadata first with store\_product\_v1\_metadata or store\_base\_metadata to get metadataUri/metadataHash. All dates in milliseconds; amounts as strings in wei. Returns unsigned tx — sign locally with yo - `create\_offer\_with\_condition`: Creates an offer gated by token-ownership \(e.g. hold an ERC-721 to commit\). Same prerequisites as create\_offer plus a condition object specifying the gate token, method, and threshold. Returns unsigned transaction data. - `create\_buyer`: Creates a buyer account for signerAddress. Required before a buyer can commit to seller-initiated offers for the first time. No prerequisites. Returns unsigned transaction data. - `sign\_full\_offer`: Generates EIP-712 typed data for a non-listed \(private\) offer that the offer creator must sign. Call before create\_offer\_and\_commit or void\_non\_listed\_offer. Returns: typed data structure — sign it locally with your wallet \(EIP-712\), then use the signature in the next step. - `create\_offer\_and\_commit`: Atomically creates a private offer and commits a specific buyer in one transaction. Prerequisite: call sign\_full\_offer, sign the returned typed data locally with your wallet \(EIP-712\), and provide the signature here. Used for private/bilateral trades. Returns unsigned transaction data. - `create\_offer\_commit\_and\_redeem`: Atomically creates a private offer, commits a specific buyer, and immediately redeems the voucher in a single transaction via the OrchestrationHandler. Same prerequisites as create\_offer\_and\_commit \(sign\_full\_offer + EIP-712 signature\). Use for instant-fulfilment private trades. Returns unsigned tra - `void\_offer`: Voids a listed offer so it can no longer be committed to. Caller must be the seller assistant. Existing exchanges are unaffected. Returns unsigned transaction data. - `void\_non\_listed\_offer`: Voids a private \(non-listed\) offer before it is fulfilled. Prerequisite: call sign\_full\_offer and sign the returned typed data locally with your wallet \(EIP-712\) to obtain the signature. Returns unsigned transaction data. - `void\_non\_listed\_offer\_batch`: Voids multiple private offers atomically. Same prerequisite as void\_non\_listed\_offer, but for an array of full offer objects. Returns unsigned transaction data. - `create\_seller`: Creates a seller account on Boson Protocol. Required before creating any offers. signerAddress is automatically set as admin, assistant, and treasury. Provide seller metadata and royaltyPercentage. Returns unsigned transaction data. - `update\_seller`: Updates an existing seller account. Caller must be the current seller admin \(signerAddress\). Use get\_sellers\_by\_address to retrieve the seller id first. Returns unsigned transaction data. - `send\_signed\_transaction`: Broadcasts a signed raw Ethereum transaction to the network. signedTransaction must be 0x-prefixed RLP-encoded hex obtained from local wallet signing \(e.g. ethers \`wallet.signTransaction\(tx\)\`\). Returns: transaction hash, block number, and gas used. - `send\_meta\_transaction`: Relays a pre-signed meta-transaction via Biconomy so the user pays no gas. Requires sigR/sigS/sigV from a locally-signed EIP-712 payload. Use when the target operation requires metaTx relay. Optionally accepts transferAuthorizations \(from the sign\_receive\_with\_\* tools, completed with your local sign - `send\_native\_meta\_transaction`: Relays a native meta-transaction \(EIP-712 signed function call\) via Biconomy. Requires ABI-encoded function signature and sigR/sigS/sigV from a locally-signed EIP-712 payload. Returns: relay transaction data. - `send\_forwarded\_meta\_transaction`: Relays a Biconomy forwarded meta-transaction \(ERC-20 gas payment\). Requires a complete ERC20ForwardRequest and domain separator signature. Returns: relay transaction data. - `withdraw\_funds`: Withdraws funds from an entity's protocol treasury to the entity's treasury address. Sellers withdraw proceeds; buyers withdraw refunds. Caller must control the entity via signerAddress. Returns unsigned transaction data. - `deposit\_funds`: Deposits ERC-20 or native tokens into an entity's protocol treasury \(e.g. seller deposit\). For ERC-20, call approve\_exchange\_token first. In metaTx mode, you can skip the approval by passing transferAuthorizations \(built with a sign\_receive\_with\_\* tool\) to send\_meta\_transaction. Returns unsigned tra - `extend\_dispute\_timeout`: Extends the deadline of an active dispute. Dispute must be in 'Resolving' state. Either party can call this. Returns unsigned transaction data. - `expire\_dispute`: Marks a dispute as expired after its resolution period passes. Permissionless — anyone can call. Exchange must be in 'Disputed' state past its timeout. Returns unsigned transaction data. - `expire\_dispute\_batch`: Marks multiple expired disputes in one transaction. All exchanges must be in 'Disputed' state past their respective timeouts. Permissionless. Returns unsigned transaction data. - `resolve\_dispute`: Resolves a dispute by mutual agreement. Workflow: \(1\) create\_dispute\_resolution\_proposal generates typed data, \(2\) both parties sign the typed data locally with their wallet \(EIP-712\), \(3\) either party submits sigR/sigS/sigV here. Returns unsigned transaction data. - `raise\_dispute`: Raises a dispute on a redeemed exchange. Caller must be the buyer. Must be called within disputePeriodDurationInMS after redemption. Returns unsigned transaction data. - `retract\_dispute`: Retracts a raised dispute, releasing seller deposit and restoring completion flow. Caller must be the buyer who raised it. Returns unsigned transaction data. - `escalate\_dispute`: Escalates a stale dispute to the third-party dispute resolver. Caller must be the buyer. Resolver's escalation fee must be covered. Returns unsigned transaction data. - `decide\_dispute`: Decides an escalated dispute. Caller must be the dispute resolver assigned to the offer's disputeResolverId. Specify buyerPercent in basis points \(0=all to seller, 10000=all to buyer\). Returns unsigned transaction data. - `refuse\_escalated\_dispute`: Dispute resolver refuses to decide an escalated dispute. Returns the escalation fee to the buyer and resets dispute to 'Resolving' state. Returns unsigned transaction data. - `expire\_escalated\_dispute`: Expires an escalated dispute once the resolver's response period passes without a decision. Permissionless — anyone can call. Returns unsigned transaction data. - `create\_dispute\_resolution\_proposal`: Generates EIP-712 typed data for a mutual dispute resolution proposal. Both buyer and seller must sign the same buyerPercentBasisPoints value locally with their wallet \(EIP-712\) before calling resolve\_dispute. Returns: typed data structure \(domain, types, message\). - `revoke\_voucher`: Revokes a committed \(not yet redeemed\) voucher on behalf of the seller, returning funds to the buyer. Caller must be the seller assistant. Returns unsigned transaction data. - `approve\_exchange\_token`: Grants ERC-20 allowance to the Boson Protocol contract. Must be called before commit\_to\_offer or deposit\_funds when using non-native exchange tokens, unless you relay in metaTx mode with transferAuthorizations \(built with a sign\_receive\_with\_\* tool\) passed to send\_meta\_transaction. Returns unsigned - `sign\_receive\_with\_erc3009\_authorization`: Generates EIP-712 typed data for an ERC-3009 ReceiveWithAuthorization \(e.g. USDC\). Authorizes the spender \(default: protocol diamond\) to pull \`value\` from signerAddress between validAfter and validBefore. Sign locally with your wallet \(EIP-712\); add the resulting signature to the returned transferAu - `sign\_receive\_with\_erc2612\_permit`: Generates EIP-712 typed data for an EIP-2612 Permit. Authorizes the spender \(default: protocol diamond\) to pull \`value\` from signerAddress until \`deadline\`. Sign locally with your wallet \(EIP-712\); add the resulting signature to the returned transferAuthorization \{ strategy: 'EIP2612', data \} and pa - `sign\_receive\_with\_permit2`: Generates EIP-712 typed data for a Uniswap Permit2 PermitTransferFrom. Authorizes the spender \(default: protocol diamond\) to pull \`value\` from signerAddress until \`deadline\`. permit2Address defaults to contracts.permit2 from SDK config; permit2Nonce defaults to a random uint256. Sign locally with yo - `sign\_receive\_with\_dai\_permit`: Generates EIP-712 typed data for a DAI-style Permit. Authorizes the spender \(default: protocol diamond\) to pull DAI-style tokens from signerAddress until \`expiry\`. Sign locally with your wallet \(EIP-712\); add the resulting signature to the returned transferAuthorization \{ strategy: 'DAIPermit', data - `commit\_to\_offer`: Commits to an offer, creating an exchange and minting a voucher NFT. Caller is the buyer \(signerAddress\) unless 'buyer' param is set. For ERC-20 offers, call approve\_exchange\_token first. In metaTx mode, you can skip the approval by passing transferAuthorizations \(built with a sign\_receive\_with\_\* to - `commit\_to\_conditional\_offer`: Commits to a token-gated \(conditional\) offer using a specific gating tokenId. Caller \(signerAddress\) must hold the gating token specified by the offer's condition. Use this instead of commit\_to\_offer for offers created via create\_offer\_with\_condition. Returns unsigned transaction data. - `commit\_to\_offer\_and\_redeem\_voucher`: Atomically commits to an offer and immediately redeems the voucher in a single transaction via the OrchestrationHandler. Buyer \(signerAddress\) must already hold any required ERC-20 allowance \(approve\_exchange\_token\), or, in metaTx mode, pass transferAuthorizations to send\_meta\_transaction. Skips vou - `commit\_to\_conditional\_offer\_and\_redeem\_voucher`: Atomically commits to a token-gated \(conditional\) offer using a specific gating tokenId and immediately redeems the voucher in a single transaction. Buyer must hold the gating token. Returns unsigned transaction data. - `commit\_to\_buyer\_offer`: Fulfils a buyer-initiated offer \(creator='BUYER'\) by the seller. Caller must be the seller. Provide matching collateral. Returns unsigned transaction data. - `cancel\_voucher`: Cancels a committed voucher. Caller must be the buyer \(voucher holder\). Buyer forfeits buyerCancellationPenalty; remainder is refunded. Returns unsigned transaction data. - `redeem\_voucher`: Redeems a voucher, signalling physical receipt of goods and starting the dispute period clock. Caller must be the buyer. After redemption, buyer has disputePeriodDurationInMS to raise a dispute. Returns unsigned transaction data. - `complete\_exchange`: Completes an exchange after the dispute period expires, releasing funds to the seller. Can be called by seller after dispute period or by buyer at any time post-redemption. Returns unsigned transaction data. - `get\_sellers\_by\_address`: Reads seller entities associated with a specific Ethereum address. Use this to check if signerAddress already has a seller account before calling create\_seller. Read-only. Returns: array of seller entities. - `get\_all\_products\_with\_not\_voided\_variants`: Reads product groupings with at least one non-voided variant from the Boson subgraph. Useful for storefront displays. Supports pagination and ordering. Read-only. - `search\_products`: Searches products in the Boson subgraph by keywords matched against title, description, brand, category, and tags. Supports pagination, ordering, filtering, and an includeInvalidOffers flag \(default false = only products with currently-valid offers\). Read-only. Returns: array of product search resul - `validate\_metadata`: Validates a metadata object against the Boson Protocol schema \(PRODUCT\_V1, BUNDLE, BASE, etc.\) without storing it. Use before store\_\*\_metadata to catch errors early. Read-only. Returns: validation result with any errors. - `store\_product\_v1\_metadata`: Stores a ProductV1 metadata object to IPFS. Call before create\_offer to get metadataUri and metadataHash. Returns: \{ metadataUri: 'ipfs://...', metadataHash: '0x...' \}. - `store\_bundle\_metadata`: Stores a Bundle metadata object to IPFS. Prerequisite: call store\_bundle\_item\_product\_v1\_metadata and/or store\_bundle\_item\_nft\_metadata first; include their returned URLs in the items array. Returns: \{ metadataUri, metadataHash \}. - `store\_base\_metadata`: Stores a Base metadata object to IPFS. Use for simple offers that don't require ProductV1 or Bundle structure. Returns: \{ metadataUri, metadataHash \} for use in create\_offer. - `render\_contractual\_agreement`: Renders the legal contractual agreement text/HTML for an offer using its offer data and metadata. Use to preview or store the agreement. Returns: rendered agreement string. - `store\_bundle\_item\_product\_v1\_metadata`: Stores a single ProductV1 bundle item's metadata to IPFS. Call once per physical product in a bundle before store\_bundle\_metadata. Returns: \{ url: 'ipfs://...' \} to include in the items array. - `store\_bundle\_item\_nft\_metadata`: Stores a single NFT bundle item's metadata to IPFS. Call once per NFT component in a bundle before store\_bundle\_metadata. Returns: \{ url: 'ipfs://...' \} to include in the items array. - `register\_agent`: Registers a dACP agent with this MCP server instance, associating its Ethereum identities and roles. The signature proves control of each signerAddress. Server-local state — no configId/signerAddress context needed. Returns: registration confirmation. - `get\_registered\_agents`: Returns all dACP agents registered with this MCP server instance, with their associated protocol entities and roles. No auth required. - `get\_supported\_tokens`: Returns ERC-20 tokens accepted as exchange tokens on the given configId deployment. Use returned addresses in exchangeTokenAddress fields of create\_offer. Read-only. Returns: array of \{ address, name, symbol, decimals \}. Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html