protogrid

Search / io.bosonprotocol/agentic-commerce

agentic-commerce

R0· no sign-in

MCP server for Boson Protocol — on-chain agentic commerce for physical & digital goods.

v1.0.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality73needs work
Trust76of 100
Uptime, 30 days100%
Latency p50523 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "agentic-commerce": {
      "type": "http",
      "url": "https://mcp.bosonprotocol.io/mcp"
    }
  }
}
claude mcp add --transport http agentic-commerce https://mcp.bosonprotocol.io/mcp
[mcp_servers.agentic-commerce]
url = "https://mcp.bosonprotocol.io/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "agentic-commerce": {
      "type": "remote",
      "url": "https://mcp.bosonprotocol.io/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "agentic-commerce": {
      "type": "http",
      "url": "https://mcp.bosonprotocol.io/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=agentic-commerce&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmJvc29ucHJvdG9jb2wuaW8vbWNwIn0%3D"
}
{
  "servers": {
    "agentic-commerce": {
      "type": "http",
      "url": "https://mcp.bosonprotocol.io/mcp"
    }
  }
}
{
  "mcpServers": {
    "agentic-commerce": {
      "httpUrl": "https://mcp.bosonprotocol.io/mcp"
    }
  }
}
extensions:
  "agentic-commerce":
    enabled: true
    name: "agentic-commerce"
    type: streamable_http
    uri: "https://mcp.bosonprotocol.io/mcp"
    timeout: 300

Quality 73 / 100needs work

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations63 of 63 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: commit_to_conditional_offer (idempotentHint, openWorldHint); commit_to_offer_and_redeem_voucher (idempotentHint, openWorldHint); render_contractual_agreement (destructiveHint, idempotentHint, openWorldHint); …
  • fail
    tools.token_costabout 38,527 tokens to load every tool, a large share of an agent's context
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability75 · weight 15
  • warn
    stability.changes10 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

63 tools, about 38,527 tokens to load them all · tool set bb27be172e5f · tools last changed 2026-10-07 · checked 2026-10-20 11:40 UTC

Tool changes

  • commit_to_offer_and_redeem_voucherchangeddescription
    before

    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 transferability and starts the dispute period clock immediately. Returns unsigned transaction data.

    after · 84% of words in common

    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 voucher transferability and starts the dispute period clock immediately. Returns unsigned transaction data.

  • commit_to_offerchangeddescription
    before

    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.

    after · 65% of words in common

    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_* tool) to send_meta_transaction. Returns unsigned transaction data.

  • sign_receive_with_dai_permitchangeddescription
    before

    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); use the result to build a TransferAuthorization { strategy: 'DAIPermit' } for a meta-tx flow. Returns: typed data structure.

    after · 64% of words in common

    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 } and pass it in send_meta_transaction.transferAuthorizations. Returns: typedData to sign + transferAuthorization template.

  • sign_receive_with_permit2changeddescription
    before

    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 your wallet (EIP-712); use the result to build a TransferAuthorization { strategy: 'Permit2' } for a meta-tx flow. Returns: typed data structure.

    after · 68% of words in common

    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 your wallet (EIP-712); add the resulting signature to the returned transferAuthorization { strategy: 'Permit2', data } and pass it in send_meta_transaction.transferAuthorizations. Returns: typedData to sign + transferAuthorization template.

  • sign_receive_with_erc2612_permitchangeddescription
    before

    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); use the resulting signature to build a TransferAuthorization { strategy: 'EIP2612' } for a meta-tx flow. Returns: typed data structure.

    after · 67% of words in common

    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 pass it in send_meta_transaction.transferAuthorizations. Returns: typedData to sign + transferAuthorization template.

  • sign_receive_with_erc3009_authorizationchangeddescription
    before

    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); use the resulting signature + nonce to build a TransferAuthorization { strategy: 'ERC3009' } for a meta-tx flow. Returns: typed data structure.

    after · 70% of words in common

    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 transferAuthorization { strategy: 'ERC3009', data } and pass it in send_meta_transaction.transferAuthorizations. Returns: typedData to sign + transferAuthorization template.

  • approve_exchange_tokenchangeddescription
    before

    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.

    after · 64% of words in common

    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 transaction data.

  • deposit_fundschangeddescription, input schema
    before

    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.

    after · 56% of words in common

    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 transaction data.

  • send_meta_transactionchangeddescription, input schema
    before

    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. Returns: relay transaction data.

    after · 57% of words in common

    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 signature) so the protocol can pull ERC-20 tokens without a prior approve_exchange_token tx. Returns: relay transaction data.

  • create_sellerchangedinput schema

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 76 / 100

no-repository
provenance55
liveness100
freshness65
hygiene80

+dns-namespace +website +reachable +uptime-100% ~updated-97d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.bosonprotocol.io/mcp streamable-httpnoneyes100%523 ms2025-06-182026-10-20

Tools (63)

approve_exchange_tokendestructiveGrants 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 transaction data.
cancel_voucherdestructiveCancels a committed voucher. Caller must be the buyer (voucher holder). Buyer forfeits buyerCancellationPenalty; remainder is refunded. Returns unsigned transaction data.
commit_to_buyer_offerdestructiveFulfils a buyer-initiated offer (creator='BUYER') by the seller. Caller must be the seller. Provide matching collateral. Returns unsigned transaction data.
commit_to_conditional_offerdestructiveCommits 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_conditional_offer_and_redeem_voucherdestructiveAtomically 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_offerdestructiveCommits 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_* tool) to send_meta_transaction. Returns unsigned transaction data.
commit_to_offer_and_redeem_voucherdestructiveAtomically 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 voucher transferability and starts the dispute period clock immediately. Returns unsigned transaction data.
complete_exchangedestructiveCompletes 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.
create_buyerdestructiveCreates 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.
create_dispute_resolution_proposalread-onlyGenerates 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).
create_offerdestructiveCreates 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 your wallet → send_signed_transaction, or executionMode='metaTx'.
create_offer_and_commitdestructiveAtomically 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_redeemdestructiveAtomically 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 transaction data.
create_offer_with_conditiondestructiveCreates 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_sellerdestructiveCreates 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.
decide_disputedestructiveDecides 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.
deposit_fundsdestructiveDeposits 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 transaction data.
escalate_disputedestructiveEscalates 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.
expire_disputedestructiveMarks 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_batchdestructiveMarks multiple expired disputes in one transaction. All exchanges must be in 'Disputed' state past their respective timeouts. Permissionless. Returns unsigned transaction data.
expire_escalated_disputedestructiveExpires an escalated dispute once the resolver's response period passes without a decision. Permissionless — anyone can call. Returns unsigned transaction data.
extend_dispute_timeoutdestructiveExtends the deadline of an active dispute. Dispute must be in 'Resolving' state. Either party can call this. Returns unsigned transaction data.
get_all_products_with_not_voided_variantsread-onlyReads product groupings with at least one non-voided variant from the Boson subgraph. Useful for storefront displays. Supports pagination and ordering. Read-only.
get_config_idsread-onlyReturns all valid configId values for this server. Call first to discover which network/deployment to use. No auth required.
get_dispute_by_idread-onlyReads 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_dispute_resolversread-onlyReads 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.
get_disputesread-onlyReads 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_exchangesread-onlyReads 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_fundsread-onlyReads 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_offersread-onlyReads 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_registered_agentsread-onlyReturns all dACP agents registered with this MCP server instance, with their associated protocol entities and roles. No auth required.
get_sellersread-onlyReads 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_sellers_by_addressread-onlyReads 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_supported_tokensread-onlyReturns 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 }.
raise_disputedestructiveRaises a dispute on a redeemed exchange. Caller must be the buyer. Must be called within disputePeriodDurationInMS after redemption. Returns unsigned transaction data.
redeem_voucherdestructiveRedeems 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.
refuse_escalated_disputedestructiveDispute resolver refuses to decide an escalated dispute. Returns the escalation fee to the buyer and resets dispute to 'Resolving' state. Returns unsigned transaction data.
register_agentRegisters 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.
render_contractual_agreementread-onlyRenders 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.
resolve_disputedestructiveResolves 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.
retract_disputedestructiveRetracts a raised dispute, releasing seller deposit and restoring completion flow. Caller must be the buyer who raised it. Returns unsigned transaction data.
revoke_voucherdestructiveRevokes 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.
search_productsread-onlySearches 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 result fragments.
send_forwarded_meta_transactiondestructiveRelays a Biconomy forwarded meta-transaction (ERC-20 gas payment). Requires a complete ERC20ForwardRequest and domain separator signature. Returns: relay transaction data.
send_meta_transactiondestructiveRelays 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 signature) so the protocol can pull ERC-20 tokens without a prior approve_exchange_token tx. Returns: relay transaction data.
send_native_meta_transactiondestructiveRelays 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_signed_transactiondestructiveBroadcasts 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.
sign_full_offerread-onlyGenerates 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.
sign_receive_with_dai_permitread-onlyGenerates 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 } and pass it in send_meta_transaction.transferAuthorizations. Returns: typedData to sign + transferAuthorization template.
sign_receive_with_erc2612_permitread-onlyGenerates 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 pass it in send_meta_transaction.transferAuthorizations. Returns: typedData to sign + transferAuthorization template.
sign_receive_with_erc3009_authorizationread-onlyGenerates 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 transferAuthorization { strategy: 'ERC3009', data } and pass it in send_meta_transaction.transferAuthorizations. Returns: typedData to sign + transferAuthorization template.
sign_receive_with_permit2read-onlyGenerates 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 your wallet (EIP-712); add the resulting signature to the returned transferAuthorization { strategy: 'Permit2', data } and pass it in send_meta_transaction.transferAuthorizations. Returns: typedData to sign + transferAuthorization template.
store_base_metadataStores 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.
store_bundle_item_nft_metadataStores 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.
store_bundle_item_product_v1_metadataStores 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_metadataStores 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_product_v1_metadataStores a ProductV1 metadata object to IPFS. Call before create_offer to get metadataUri and metadataHash. Returns: { metadataUri: 'ipfs://...', metadataHash: '0x...' }.
update_sellerdestructiveUpdates 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.
validate_metadataread-onlyValidates 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.
void_non_listed_offerdestructiveVoids 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_batchdestructiveVoids multiple private offers atomically. Same prerequisite as void_non_listed_offer, but for an array of full offer objects. Returns unsigned transaction data.
void_offerdestructiveVoids 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.
withdraw_fundsdestructiveWithdraws 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.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.bosonprotocol/agentic-commerce",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.bosonprotocol.io/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.0",
  "websiteUrl": "https://docs.bosonprotocol.io/mcp",
  "description": "MCP server for Boson Protocol — on-chain agentic commerce for physical & digital goods."
}