Agentic Commerce is an MCP server with 63 tools an agent can call, among them approve_exchange_token, cancel_voucher, commit_to_buyer_offer. It answers at https://mcp.bosonprotocol.io/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 10 times since 5 September 2026; the last check, on 18 October 2026, succeeded.
MCP server for Boson Protocol — on-chain agentic commerce for physical & digital goods.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
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. Returns unsigned transaction data. Inputs: exchangeTokenAddress, amount, configId, signerAddress, executionMode |
cancel_voucher | Cancels a committed voucher. Caller must be the buyer (voucher holder). Buyer forfeits buyerCancellationPenalty; remainder is refunded. Returns unsigned transaction data. Inputs: exchangeId, configId, signerAddress, executionMode |
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. Inputs: offerId, collectionIndex, royaltyInfo, drMutualizerAddress, configId, signerAddress |
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 Inputs: offerId, tokenId, buyer, configId, signerAddress, executionMode |
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. Inputs: offerId, tokenId, configId, signerAddress, executionMode |
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. Returns unsigned transaction data. Inputs: offerId, buyer, configId, signerAddress, executionMode |
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). Skips voucher transfera Inputs: offerId, configId, signerAddress, executionMode |
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. Inputs: exchangeId, configId, signerAddress, executionMode |
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. Inputs: configId, signerAddress |
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 Inputs: exchangeId, buyerPercentBasisPoints, configId, signerAddress |
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 a Inputs: executionMode, metadataUri, metadataHash, exchangeTokenAddress, price, sellerDeposit |
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/bilate Inputs: executionMode, signature, offerCreator, committer, collectionIndex, royaltyInfo |
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 Inputs: executionMode, signature, offerCreator, committer, collectionIndex, royaltyInfo |
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. Inputs: condition, executionMode, metadataUri, metadataHash, exchangeTokenAddress, price |
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. Inputs: executionMode, type, name, description, legalTradingName, kind |
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. Inputs: exchangeId, buyerPercent, configId, signerAddress |
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. Returns unsigned transaction data. Inputs: entityId, tokenAddress, amount, configId, signerAddress, executionMode |
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. Inputs: exchangeId, configId, signerAddress, executionMode |
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. Inputs: exchangeId, configId, signerAddress |
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. Inputs: exchangeIds, configId, signerAddress |
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. Inputs: exchangeId, configId, signerAddress |
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. Inputs: exchangeId, newDisputeTimeout, configId, signerAddress, executionMode |
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. Inputs: productsSkip, productsFirst, productsOrderBy, productsOrderDirection, productsFilter, configId |
get_config_ids | Returns all valid configId values for this server. Call first to discover which network/deployment to use. No auth required. |
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. Inputs: disputeId, queryVars, configId |
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. Inputs: disputeResolversSkip, disputeResolversFirst, disputeResolversOrderBy, disputeResolversOrderDirection, disputeResolversFilter, configId |
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. Inputs: disputesSkip, disputesFirst, disputesOrderBy, disputesOrderDirection, disputesFilter, configId |
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. Inputs: exchangesSkip, exchangesFirst, exchangesOrderBy, exchangesOrderDirection, exchangesFilter, configId |
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 }. Inputs: fundsSkip, fundsFirst, fundsOrderBy, fundsOrderDirection, fundsFilter, configId |
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. Inputs: offersSkip, offersFirst, offersOrderBy, offersOrderDirection, offersFilter, includeExchanges |
get_registered_agents | Returns all dACP agents registered with this MCP server instance, with their associated protocol entities and roles. No auth required. Inputs: configId |
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. Inputs: sellersSkip, sellersFirst, sellersOrderBy, sellersOrderDirection, sellersFilter, includeExchanges |
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. Inputs: address, sellersSkip, sellersFirst, sellersOrderBy, sellersOrderDirection, sellersFilter |
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 }. Inputs: configId |
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. Inputs: exchangeId, configId, signerAddress, executionMode |
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. Inputs: exchangeId, configId, signerAddress, executionMode |
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. Inputs: exchangeId, configId, signerAddress |
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 co Inputs: name, description, entities |
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. Inputs: template, offerData, offerMetadata, configId, signerAddress |
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 u Inputs: exchangeId, buyerPercentBasisPoints, sigR, sigS, sigV, configId |
retract_dispute, revoke_voucher, search_products, send_forwarded_meta_transaction, send_meta_transaction, send_native_meta_transaction, send_signed_transaction, sign_full_offer, sign_receive_with_dai_permit, sign_receive_with_erc2612_permit, sign_receive_with_erc3009_authorization, sign_receive_with_permit2, store_base_metadata, store_bundle_item_nft_metadata, store_bundle_item_product_v1_metadata, store_bundle_metadata, store_product_v1_metadata, update_seller, validate_metadata, void_non_listed_offer, void_non_listed_offer_batch, void_offer, withdraw_funds
Every block below points at https://mcp.bosonprotocol.io/mcp. Pick your client and copy.
claude mcp add --transport http agentic-commerce https://mcp.bosonprotocol.io/mcp
{
"mcpServers": {
"agentic-commerce": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.bosonprotocol.io/mcp"]
}
}
}{
"mcpServers": {
"agentic-commerce": {
"url": "https://mcp.bosonprotocol.io/mcp"
}
}
}{
"servers": {
"agentic-commerce": {
"type": "http",
"url": "https://mcp.bosonprotocol.io/mcp"
}
}
}{
"context_servers": {
"agentic-commerce": {
"url": "https://mcp.bosonprotocol.io/mcp"
}
}
}{
"mcpServers": {
"agentic-commerce": {
"serverUrl": "https://mcp.bosonprotocol.io/mcp"
}
}
}{
"mcpServers": {
"agentic-commerce": {
"url": "https://mcp.bosonprotocol.io/mcp"
}
}
}name: Agentic Commerce
version: 0.0.1
schema: v1
mcpServers:
- name: Agentic Commerce
type: streamable-http
url: https://mcp.bosonprotocol.io/mcp{
"mcpServers": {
"agentic-commerce": {
"httpUrl": "https://mcp.bosonprotocol.io/mcp"
}
}
}{
"mcpServers": {
"agentic-commerce": {
"type": "http",
"url": "https://mcp.bosonprotocol.io/mcp"
}
}
}{
"mcpServers": {
"agentic-commerce": {
"url": "https://mcp.bosonprotocol.io/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fmcp.bosonprotocol.io%2Fmcp&type=streamable_http&id=agentic-commerce&name=Agentic%20Commerce
It answered our last check on 18 October 2026 in 92 ms. Over 10 checks since 5 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by bosonprotocol.io and served from mcp.bosonprotocol.io, the vendor's own domain: https://mcp.bosonprotocol.io/mcp.
63, as returned by the server's own tools/list on 31 August 2026: approve_exchange_token, cancel_voucher, commit_to_buyer_offer, commit_to_conditional_offer, commit_to_conditional_offer_and_redeem_voucher, commit_to_offer, commit_to_offer_and_redeem_voucher, complete_exchange, and 55 more.
It answered our last check on 18 October 2026 in 92 ms. Over 10 checks since 5 September 2026 it answered 10.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://mcp.bosonprotocol.io/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: io.bosonprotocol. Endpoint host: mcp.bosonprotocol.io. ARD identifier: urn:air:io.bosonprotocol:mcp:agentic-commerce.
First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.