Skip to main content
Glama

Server Details

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

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
ChatGPT
–
Claude
–

TDQS

A3.6/5.0

Scored across 63 tools

Disambiguation4/5

Despite the large surface, most tools target a distinct resource+action (create_seller, raise_dispute, redeem_voucher, store_base_metadata), and descriptions carefully delineate variants. The main risk is the dense variant families (commit_to_offer/commit_to_conditional_offer/commit_to_buyer_offer, the four sign_receive_with_* tools, and the many expiry tools), which a careful agent can distinguish but could misselect.

Naming Consistency4/5

Almost everything follows a predictable snake_case verb_noun pattern (get_offers, create_offer, commit_to_offer, store_product_v1_metadata, void_offer), and verb usage is consistent across the set. A few names are unusually long or multi-clause (get_all_products_with_not_voided_variants, create_offer_commit_and_redeem), but the convention itself is stable.

Tool Count2/5

63 tools is a very heavy surface for a single server; even accounting for genuine Boson Protocol complexity (offers, exchanges, disputes, meta-tx, IPFS metadata), many variant tools (four permit types, three meta-tx relays, three dispute-expiry tools, five offer-creation variants) make the set unwieldy. The count far exceeds the 3-15 sweet spot and risks overwhelming selection.

Completeness4/5

Coverage is strong across the full lifecycle: account creation (seller/buyer), offer creation/commit/redeem, dispute raise/resolve/escalate/decide/expire/retract, funds deposit/withdraw/read, metadata store/validate, and signing/meta-tx relay. A notable gap is any offer update/edit operation (only void_offer exists), but core workflows have no dead ends.

Available Tools

63 tools
approve_exchange_tokenA
Destructive
Inspect

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.

Inputs: amount (required), configId (required), signerAddress (required), exchangeTokenAddress (required), +1 more.

cancel_voucherA
Destructive
Inspect

Cancels a committed voucher. Caller must be the buyer (voucher holder). Buyer forfeits buyerCancellationPenalty; remainder is refunded. Returns unsigned transaction data.

Inputs: configId (required), exchangeId (required), signerAddress (required), executionMode.

commit_to_buyer_offerA
Destructive
Inspect

Fulfils a buyer-initiated offer (creator='BUYER') by the seller. Caller must be the seller. Provide matching collateral. Returns unsigned transaction data.

Inputs: offerId (required), configId (required), signerAddress (required), royaltyInfo, +3 more.

commit_to_conditional_offerA
Destructive
Inspect

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.

Inputs: offerId (required), tokenId (required), configId (required), signerAddress (required), +2 more.

commit_to_conditional_offer_and_redeem_voucherA
Destructive
Inspect

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 (required), tokenId (required), configId (required), signerAddress (required), +1 more.

commit_to_offerA
Destructive
Inspect

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.

Inputs: offerId (required), configId (required), signerAddress (required), buyer, +1 more.

commit_to_offer_and_redeem_voucherA
Destructive
Inspect

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.

Inputs: offerId (required), configId (required), signerAddress (required), executionMode.

complete_exchangeA
Destructive
Inspect

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: configId (required), exchangeId (required), signerAddress (required), executionMode.

create_buyerA
Destructive
Inspect

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 (required), signerAddress (required).

create_dispute_resolution_proposalA
Read-only
Inspect

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).

Inputs: configId (required), exchangeId (required), signerAddress (required), buyerPercentBasisPoints (required).

create_offerA
Destructive
Inspect

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 your wallet → send_signed_transaction, or executionMode='metaTx'.

Inputs: price (required), configId (required), metadataUri (required), metadataHash (required), +21 more.

create_offer_and_commitA
Destructive
Inspect

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.

Inputs: price (required), buyerId (required), configId (required), sellerId (required), +29 more.

create_offer_commit_and_redeemA
Destructive
Inspect

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

Inputs: price (required), buyerId (required), configId (required), sellerId (required), +29 more.

create_offer_with_conditionA
Destructive
Inspect

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: price (required), configId (required), condition (required), metadataUri (required), +22 more.

create_sellerA
Destructive
Inspect

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: kind (required), type (required), configId (required), authTokenId (required), +14 more.

decide_disputeA
Destructive
Inspect

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: configId (required), exchangeId (required), buyerPercent (required), signerAddress (required).

deposit_fundsA
Destructive
Inspect

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.

Inputs: amount (required), configId (required), entityId (required), tokenAddress (required), +2 more.

escalate_disputeA
Destructive
Inspect

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: configId (required), exchangeId (required), signerAddress (required), executionMode.

expire_disputeA
Destructive
Inspect

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: configId (required), exchangeId (required), signerAddress (required).

expire_dispute_batchA
Destructive
Inspect

Marks multiple expired disputes in one transaction. All exchanges must be in 'Disputed' state past their respective timeouts. Permissionless. Returns unsigned transaction data.

Inputs: configId (required), exchangeIds (required), signerAddress (required).

expire_escalated_disputeA
Destructive
Inspect

Expires an escalated dispute once the resolver's response period passes without a decision. Permissionless — anyone can call. Returns unsigned transaction data.

Inputs: configId (required), exchangeId (required), signerAddress (required).

extend_dispute_timeoutA
Destructive
Inspect

Extends the deadline of an active dispute. Dispute must be in 'Resolving' state. Either party can call this. Returns unsigned transaction data.

Inputs: configId (required), exchangeId (required), signerAddress (required), newDisputeTimeout (required), +1 more.

get_all_products_with_not_voided_variantsA
Read-only
Inspect

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: configId (required), productsSkip, productsFirst, productsFilter, +2 more.

get_config_idsA
Read-only
Inspect

Returns all valid configId values for this server. Call first to discover which network/deployment to use. No auth required.

Inputs: no named parameters.

get_dispute_by_idA
Read-only
Inspect

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: configId (required), disputeId (required), queryVars.

get_dispute_resolversA
Read-only
Inspect

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: configId (required), disputeResolversSkip, disputeResolversFirst, disputeResolversFilter, +2 more.

get_disputesA
Read-only
Inspect

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: configId (required), disputesSkip, disputesFirst, disputesFilter, +2 more.

get_exchangesA
Read-only
Inspect

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: configId (required), exchangesSkip, exchangesFirst, exchangesFilter, +2 more.

get_fundsA
Read-only
Inspect

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: configId (required), fundsSkip, fundsFirst, fundsFilter, +2 more.

get_offersA
Read-only
Inspect

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: configId (required), offersSkip, offersFirst, offersFilter, +8 more.

get_registered_agentsA
Read-only
Inspect

Returns all dACP agents registered with this MCP server instance, with their associated protocol entities and roles. No auth required.

Inputs: configId (required).

get_sellersB
Read-only
Inspect

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: configId (required), includeLogs, sellersSkip, includeFunds, +6 more.

get_sellers_by_addressA
Read-only
Inspect

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 (required), configId (required), includeLogs, sellersSkip, +7 more.

get_supported_tokensA
Read-only
Inspect

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 (required).

raise_disputeA
Destructive
Inspect

Raises a dispute on a redeemed exchange. Caller must be the buyer. Must be called within disputePeriodDurationInMS after redemption. Returns unsigned transaction data.

Inputs: configId (required), exchangeId (required), signerAddress (required), executionMode.

redeem_voucherA
Destructive
Inspect

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: configId (required), exchangeId (required), signerAddress (required), executionMode.

refuse_escalated_disputeA
Destructive
Inspect

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: configId (required), exchangeId (required), signerAddress (required).

register_agentAInspect

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.

Inputs: name (required), entities (required), description (required).

render_contractual_agreementA
Read-only
Inspect

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: configId (required), template (required), offerData (required), offerMetadata (required), +1 more.

resolve_disputeA
Destructive
Inspect

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.

Inputs: sigR (required), sigS (required), sigV (required), configId (required), +4 more.

retract_disputeA
Destructive
Inspect

Retracts a raised dispute, releasing seller deposit and restoring completion flow. Caller must be the buyer who raised it. Returns unsigned transaction data.

Inputs: configId (required), exchangeId (required), signerAddress (required), executionMode.

revoke_voucherA
Destructive
Inspect

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.

Inputs: configId (required), exchangeId (required), signerAddress (required), executionMode.

search_productsA
Read-only
Inspect

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 result fragments.

Inputs: configId (required), keywords (required), productsSkip, productsFirst, +4 more.

send_forwarded_meta_transactionB
Destructive
Inspect

Relays a Biconomy forwarded meta-transaction (ERC-20 gas payment). Requires a complete ERC20ForwardRequest and domain separator signature. Returns: relay transaction data.

Inputs: request (required), configId (required), signature (required), signerAddress (required), +2 more.

send_meta_transactionA
Destructive
Inspect

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.

Inputs: sigR (required), sigS (required), sigV (required), nonce (required), +5 more.

send_native_meta_transactionA
Destructive
Inspect

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.

Inputs: sigR (required), sigS (required), sigV (required), configId (required), +3 more.

send_signed_transactionA
Destructive
Inspect

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.

Inputs: configId (required), signedTransaction (required).

sign_full_offerA
Read-only
Inspect

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.

Inputs: price (required), buyerId (required), configId (required), sellerId (required), +28 more.

sign_receive_with_dai_permitA
Read-only
Inspect

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.

Inputs: value (required), expiry (required), configId (required), signerAddress (required), +3 more.

sign_receive_with_erc2612_permitA
Read-only
Inspect

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.

Inputs: value (required), configId (required), deadline (required), signerAddress (required), +4 more.

sign_receive_with_erc3009_authorizationA
Read-only
Inspect

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.

Inputs: value (required), configId (required), validAfter (required), validBefore (required), +5 more.

sign_receive_with_permit2A
Read-only
Inspect

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.

Inputs: value (required), configId (required), deadline (required), signerAddress (required), +4 more.

store_base_metadataAInspect

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.

Inputs: name (required), type (required), configId (required), schemaUrl (required), +10 more.

store_bundle_item_nft_metadataAInspect

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.

Inputs: name (required), type (required), configId (required), schemaUrl (required), +18 more.

store_bundle_item_product_v1_metadataAInspect

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.

Inputs: type (required), uuid (required), product (required), configId (required), +6 more.

store_bundle_metadataAInspect

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 }.

Inputs: name (required), type (required), items (required), seller (required), +13 more.

store_product_v1_metadataAInspect

Stores a ProductV1 metadata object to IPFS. Call before create_offer to get metadataUri and metadataHash. Returns: { metadataUri: 'ipfs://...', metadataHash: '0x...' }.

Inputs: name (required), type (required), uuid (required), image (required), +17 more.

update_sellerA
Destructive
Inspect

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.

Inputs: id (required), kind (required), type (required), configId (required), +13 more.

validate_metadataA
Read-only
Inspect

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.

Inputs: metadata (required).

void_non_listed_offerA
Destructive
Inspect

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.

Inputs: price (required), buyerId (required), configId (required), sellerId (required), +25 more.

void_non_listed_offer_batchA
Destructive
Inspect

Voids multiple private offers atomically. Same prerequisite as void_non_listed_offer, but for an array of full offer objects. Returns unsigned transaction data.

Inputs: configId (required), fullOffers (required), signerAddress (required).

void_offerA
Destructive
Inspect

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.

Inputs: offerId (required), configId (required), signerAddress (required), executionMode.

withdraw_fundsA
Destructive
Inspect

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.

Inputs: list (required), configId (required), entityId (required), signerAddress (required), +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      An MCP server for agentic commerce, enabling AI agents to discover services, make x402 payments with USDC across multiple chains, and manage crypto wallets and token swaps.
      339 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      MCP server for Taskmarket that enables AI agents to discover, claim, submit, and track on-chain bounty tasks on the Base-based decentralized task marketplace, including wallet operations, pitch systems, and submission management.
      134 npm
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      MCP server for Pact, an escrow protocol for agent-to-agent commerce, enabling agents to create pacts, fund escrow, deliver work, and settle with an LLM evaluator as dispute backstop.
      20 npm
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.

    Resources