MCP 서버

marketplace

com.market0x/marketplace
커머스 및 리테일 암호화폐 및 Web3 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Provides a non-custodial marketplace for vote-escrow NFTs and .base.eth names, including listings, offers, purchases, cancellations, ownership data, and notifications settled through Seaport.

get_listing_details
Full detail for one order including a FRESH live-contents snapshot (principal, claimable rewards, voting/earning power, as_of_block).
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['orderHash'], 'properties': {'orderHash': {'type': 'string'}}}
get_listings
Active listings/auctions for a market. Each row carries the ask and the position's underlying contents priced at current market (published formula: /docs#data-sources), plus discountPct (the difference between them). Sorted by discount percentage, descending.
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['marketId'], 'properties': {'kind': {'enum': ['listing', 'dutch_auction', 'offer'], 'type': 'string'}, 'limit': {'type': 'number', 'maximum': 100, 'minimum': 1}, 'marketId': {'type': 'string', 'description': "market id, e.g. 'vehydx'"}, 'nameContains': {'type': 'string', 'maxLength': 64, 'description': "case-insensitive substring match on the listing's label (the name on name markets, e.g. 'alice'; 'veAERO #123' elsewhere)"}, 'minDiscountPct': {'type': 'number', 'description': 'only return orders at >= this discount %. IGNORED on markets whose asset has no priced underlying, where there is nothing to compare the ask against â\x80\x94 the response says so in `note` rather than returning an empty market.'}}}
get_orders
List orders created by an address (its listings, auctions, offers). Status is reconciled by the background worker — treat as advisory until checked at fill.
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['offerer'], 'properties': {'status': {'enum': ['active', 'filled', 'cancelled', 'expired'], 'type': 'string'}, 'offerer': {'type': 'string', 'pattern': '^0x[0-9a-fA-F]{40}$'}}}
get_owned_positions
List the positions an address owns in a market, with listability (voted/attached positions can't transfer).
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['marketId', 'owner'], 'properties': {'owner': {'type': 'string', 'pattern': '^0x[0-9a-fA-F]{40}$'}, 'marketId': {'type': 'string'}}}
get_recent_trades
Recently settled sales for a market. `amount` is the EXACT settled total (incl. fee) from the on-chain fill where the indexer recorded it, with `settledAt` the block time and `exact: true`; otherwise it falls back to the listed ask with `exact: false` (a decayed Dutch auction settles BELOW its listed amount, so treat inexact rows as an upper bound).
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['marketId'], 'properties': {'limit': {'type': 'number', 'maximum': 100, 'minimum': 1}, 'marketId': {'type': 'string'}}}
list_micro_markets
List the markets this marketplace facilitates (asset, chain, currencies, fee).
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
list_subscriptions
List a wallet's notification subscriptions (webhook URLs redacted to origin).
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['wallet'], 'properties': {'wallet': {'type': 'string', 'pattern': '^0x[0-9a-fA-F]{40}$'}}}
prepare_cancel
Prepare the on-chain Seaport cancel transaction for an active order. Only the order's offerer can execute it (Seaport enforces msg.sender == offerer), so the calldata is safe to return. After it confirms, POST { txHash } to the confirm endpoint to update the book.
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['orderHash'], 'properties': {'orderHash': {'type': 'string'}}}
prepare_listing
Prepare a SELL listing or Dutch auction. Verifies the seller OWNS the position and it's transferable (not voted/attached), builds the Seaport order with the Interface fee injected by the server, and returns the one-time NFT approval + EIP-712 typed data to sign. Never signs or holds keys.
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['marketId', 'kind', 'currencySymbol', 'seller'], 'properties': {'ask': {'type': 'string', 'pattern': '^\\d+(\\.\\d+)?$', 'description': 'listing: price the seller nets â\x80\x94 must be positive'}, 'kind': {'enum': ['listing', 'dutch_auction'], 'type': 'string'}, 'name': {'type': 'string', 'description': "name markets only, e.g. 'alice' or 'alice.base.eth' â\x80\x94 tokenId is derived"}, 'endAsk': {'type': 'string', 'pattern': '^\\d+(\\.\\d+)?$', 'description': 'dutch_auction: floor price (must be below the start)'}, 'seller': {'type': 'string', 'pattern': '^0x[0-9a-fA-F]{40}$'}, 'tokenId': {'type': 'string', 'description': 'required for token markets (e.g. vehydx)'}, 'marketId': {'type': 'string'}, 'startAsk': {'type': 'string', 'pattern': '^\\d+(\\.\\d+)?$', 'description': 'dutch_auction: starting (high) price'}, 'durationDays': {'type': 'number', 'maximum': 90, 'minimum': 1}, 'currencySymbol': {'enum': ['USDC', 'WETH', 'HYDX', 'AERO', 'USDT', 'THE', 'KITTEN', 'NEST', 'USDG', 'UP'], 'type': 'string', 'description': "one of the market's settlementCurrencies (see list_micro_markets)"}}}
prepare_offer
Prepare a BID/offer on a position: returns the Seaport order to sign (EIP-712), the currency approval needed, and how to submit it. The agent reads its Seaport counter, signs, and POSTs the signed order — settlement stays on Seaport.
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['marketId', 'currencySymbol', 'offerAmount', 'buyer'], 'properties': {'name': {'type': 'string', 'description': "name markets only, e.g. 'alice' or 'alice.base.eth' â\x80\x94 tokenId is derived"}, 'buyer': {'type': 'string', 'pattern': '^0x[0-9a-fA-F]{40}$', 'description': '0x address that will sign and fund the offer'}, 'tokenId': {'type': 'string', 'description': 'required for token markets (e.g. vehydx)'}, 'marketId': {'type': 'string'}, 'offerAmount': {'type': 'string', 'pattern': '^\\d+(\\.\\d+)?$', 'description': "human amount the seller nets, e.g. '750' â\x80\x94 must be positive"}, 'durationDays': {'type': 'number', 'maximum': 90, 'minimum': 1}, 'currencySymbol': {'enum': ['USDC', 'WETH', 'HYDX', 'AERO', 'USDT', 'THE', 'KITTEN', 'NEST', 'USDG', 'UP'], 'type': 'string', 'description': "one of the market's settlementCurrencies (see list_micro_markets)"}}}
prepare_purchase
Prepare the non-custodial transaction package to BUY a listing (or accept an offer): ordered approvals + Seaport fulfillOrder calldata + a fresh contents snapshot. prepared.summary quotes the CURRENT price (Dutch auctions interpolate, asOf says when); the approval grants approveBaseUnits — slightly above the quote on a decaying order, never above maxTotalBaseUnits — and Seaport charges the exact interpolated amount at fill. On auctions, prepared.cleanup is an optional post-settlement tx that zeroes the residual allowance. The agent's own wallet signs and submits — this never signs or holds keys.
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['orderHash'], 'properties': {'orderHash': {'type': 'string'}}}
subscribe_notifications
Subscribe a wallet to push notifications (order_filled / offer_received / saved_search) via an HMAC-signed webhook — the agent-native alternative to polling. Two-step: call WITHOUT `signature` to get the exact message to sign (EIP-191 personal_sign), then call again WITH the signature. `chainId` is signed over and the signature is verified on THAT chain, so pass the chain the wallet actually signs on (smart-wallet signatures do not validate cross-chain). Each signed message is SINGLE-USE: resending the same body returns 409 replayed_signature — retry with a fresh timestamp and a new signature. The response includes the webhook HMAC secret ONCE (verify x-market0x-signature = hex(HMAC-SHA256(rawBody, secret))).
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['wallet', 'chainId', 'channel', 'events', 'timestamp'], 'properties': {'events': {'type': 'array', 'items': {'enum': ['order_filled', 'offer_received', 'saved_search'], 'type': 'string'}}, 'wallet': {'type': 'string', 'pattern': '^0x[0-9a-fA-F]{40}$'}, 'chainId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'chain the wallet signs on; it is part of the signed message'}, 'channel': {'enum': ['webhook', 'inapp'], 'type': 'string'}, 'signature': {'type': 'string', 'description': 'EIP-191 signature of the canonical message; omit to receive the message to sign'}, 'timestamp': {'type': 'number', 'description': 'unix seconds; must be within 10 minutes of now'}, 'webhookUrl': {'type': 'string', 'format': 'uri', 'description': 'https URL; required for the webhook channel'}, 'savedSearch': {'type': 'object', 'required': ['marketId'], 'properties': {'kind': {'enum': ['listing', 'dutch_auction'], 'type': 'string'}, 'marketId': {'type': 'string'}, 'nameContains': {'type': 'string', 'maxLength': 64, 'description': 'name markets: substring match on listed names'}}}}}
unsubscribe_notifications
Delete a notification subscription. Two-step like subscribe_notifications: call without `signature` to get the message to sign. `chainId` is signed over and verified on that chain. Signed messages are single-use.
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['wallet', 'chainId', 'subscriptionId', 'timestamp'], 'properties': {'wallet': {'type': 'string', 'pattern': '^0x[0-9a-fA-F]{40}$'}, 'chainId': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'chain the wallet signs on; it is part of the signed message'}, 'signature': {'type': 'string'}, 'timestamp': {'type': 'number'}, 'subscriptionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
삭제됨
search_names
2026년 9월 21일 3:00 AM
삭제됨
prepare_finalize
2026년 9월 21일 3:00 AM
변경됨
prepare_listing
2026년 9월 21일 3:00 AM
변경됨
prepare_offer
2026년 9월 21일 3:00 AM
변경됨
get_listings
2026년 9월 21일 3:00 AM
추가됨
unsubscribe_notifications
2026년 9월 17일 12:36 PM
추가됨
list_subscriptions
2026년 9월 17일 12:36 PM
추가됨
prepare_finalize
2026년 9월 17일 12:36 PM
추가됨
search_names
2026년 9월 17일 12:36 PM
추가됨
subscribe_notifications
2026년 9월 17일 12:36 PM
추가됨
get_owned_positions
2026년 9월 17일 12:36 PM
추가됨
get_orders
2026년 9월 17일 12:36 PM
추가됨
prepare_cancel
2026년 9월 17일 12:36 PM
추가됨
prepare_listing
2026년 9월 17일 12:36 PM
추가됨
prepare_offer
2026년 9월 17일 12:36 PM
추가됨
prepare_purchase
2026년 9월 17일 12:36 PM
추가됨
get_recent_trades
2026년 9월 17일 12:36 PM
추가됨
get_listing_details
2026년 9월 17일 12:36 PM
추가됨
get_listings
2026년 9월 17일 12:36 PM
추가됨
list_micro_markets
2026년 9월 17일 12:36 PM