此 MCP 可以做什么
Extracts product details and prices from URLs, compares products, and creates or verifies signed evidence about web pages and x402 services.
工具
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': "Absolute https:// URL of the page to attest to. Anything a dispute could turn on: terms of service, a price, a published policy, a competitor's claim, a listing that may be edited later."}, 'payment': {'type': 'string', 'description': 'Base64 x402 payment payload. Omit it to receive a quote instead of an attestation; sign that and call again.'}, 'screenshot': {'type': 'boolean', 'description': 'Default false in MCP. A screenshot makes the evidence much stronger, but the image comes back inline as roughly 55,000 characters of base64. With it false the attestation is text-only and internally complete: it claims no screenshot and commits to no hash you cannot check. Set true when the visual appearance is the thing in dispute and you can afford the bytes.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['address'], 'properties': {'address': {'type': 'string', 'description': 'Your wallet address (0x...). The address you pay from.'}, 'network': {'enum': ['base', 'sepolia'], 'type': 'string', 'description': 'Default base. Use sepolia for test money.'}, 'low_below': {'type': 'number', 'description': 'USDC amount you consider low. Default 1.', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'The x402 endpoint, e.g. https://api.example.com/v1/thing'}, 'method': {'enum': ['GET', 'POST'], 'type': 'string', 'description': 'Force a method. By default the listed method is tried first.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['urls'], 'properties': {'urls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Up to 5 absolute https:// product page URLs. Duplicates are removed and not billed twice.'}, 'payment': {'type': 'string', 'description': 'Base64-encoded x402 payment payload. Omit on the first call to receive payment requirements.'}, 'allow_redirect': {'type': 'boolean', 'description': 'Applies to every URL. See get_product_details for what it does.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'requested', 'succeeded', 'failed', 'billing', 'results', 'settlement'], 'properties': {'failed': {'type': 'number'}, 'status': {'type': 'string', 'const': 'ok'}, 'billing': {'type': 'string', 'description': 'The billing rule, restated on every response rather than only in the docs.'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'ok', 'product', 'page', 'provenance', 'cached', 'cache_age_seconds', 'error', 'message'], 'properties': {'ok': {'type': 'boolean'}, 'url': {'type': 'string'}, 'page': {'anyOf': [{'type': 'object', 'required': ['url', 'finalUrl', 'title', 'status', 'fetchedAt', 'render_ms'], 'properties': {'url': {'type': 'string', 'description': 'The URL as submitted.'}, 'title': {'type': ['string', 'null']}, 'status': {'type': 'number', 'description': 'HTTP status of the rendered page.'}, 'finalUrl': {'type': 'string', 'description': 'Where it ended up after redirects.'}, 'fetchedAt': {'type': 'string', 'description': 'ISO timestamp of the RENDER, not of this call. On a cached result this is older than now — check it before treating a price as live.'}, 'render_ms': {'type': ['number', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'error': {'type': ['string', 'null']}, 'cached': {'type': 'boolean'}, 'message': {'type': ['string', 'null']}, 'product': {'anyOf': [{'type': 'object', 'required': ['name', 'description', 'brand', 'sku', 'price', 'currency', 'availability', 'images', 'variants', 'url'], 'properties': {'sku': {'type': ['string', 'null'], 'description': 'SKU or model number, if the page shows one.'}, 'url': {'type': 'string', 'description': 'The page the data came from, after any redirects.'}, 'name': {'type': ['string', 'null'], 'description': 'Product title as shown on the page.'}, 'brand': {'type': ['string', 'null']}, 'price': {'type': ['number', 'null'], 'description': 'Numeric price. No currency symbol, no thousands separator.'}, 'images': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Up to 5 absolute image URLs copied verbatim from the page. Never invented. Empty when the page carries no usable product image.'}, 'currency': {'type': ['string', 'null'], 'description': 'ISO 4217 code, e.g. USD. Always null when price is null.'}, 'variants': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'values'], 'properties': {'name': {'type': 'string'}, 'values': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'description': 'e.g. [{ name: "Size", values: ["S", "M", "L"] }]'}, 'description': {'type': ['string', 'null'], 'description': 'One to three sentences.'}, 'availability': {'enum': ['in_stock', 'out_of_stock', 'preorder', 'unknown'], 'type': 'string', 'description': '`unknown` when the page does not say — never guessed.'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'provenance': {'anyOf': [{'type': 'object', 'required': ['source', 'declared', 'inferred'], 'properties': {'source': {'enum': ['json-ld', 'meta', 'json-ld+meta', 'none'], 'type': 'string'}, 'declared': {'type': 'array', 'items': {'type': 'string'}}, 'inferred': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Per-URL: which fields the merchant declared vs the model inferred.'}, 'cache_age_seconds': {'type': 'number'}}, 'additionalProperties': False}}, 'requested': {'type': 'number'}, 'succeeded': {'type': 'number'}, 'settlement': {'type': ['string', 'null']}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 8, 'minimum': 1, 'description': 'How many results to check, default 5.'}, 'query': {'type': 'string', 'maxLength': 200, 'minLength': 2, 'description': 'What you need done, in plain words.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Absolute https:// URL of a single product page. Not a search or category page.'}, 'payment': {'type': 'string', 'description': 'Base64-encoded x402 payment payload. Omit on the first call to receive payment requirements.'}, 'allow_redirect': {'type': 'boolean', 'description': 'Default false. By default a URL that redirects to what looks like a different page (a discontinued item bouncing to its category listing) is refused free of charge, because extracting it would return a real product that is not the one you asked for. Set true if you want whatever the URL resolves to.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'product', 'page', 'cached', 'cache_age_seconds', 'provenance', 'redirect', 'settlement'], 'properties': {'page': {'type': 'object', 'required': ['url', 'finalUrl', 'title', 'status', 'fetchedAt', 'render_ms'], 'properties': {'url': {'type': 'string', 'description': 'The URL as submitted.'}, 'title': {'type': ['string', 'null']}, 'status': {'type': 'number', 'description': 'HTTP status of the rendered page.'}, 'finalUrl': {'type': 'string', 'description': 'Where it ended up after redirects.'}, 'fetchedAt': {'type': 'string', 'description': 'ISO timestamp of the RENDER, not of this call. On a cached result this is older than now — check it before treating a price as live.'}, 'render_ms': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'cached': {'type': 'boolean', 'description': 'True when this answer was re-served from a recent render rather than produced now. Re-serving is still a paid call; it is faster, and the data is as old as cache_age_seconds says.'}, 'status': {'type': 'string', 'const': 'ok'}, 'product': {'type': 'object', 'required': ['name', 'description', 'brand', 'sku', 'price', 'currency', 'availability', 'images', 'variants', 'url'], 'properties': {'sku': {'type': ['string', 'null'], 'description': 'SKU or model number, if the page shows one.'}, 'url': {'type': 'string', 'description': 'The page the data came from, after any redirects.'}, 'name': {'type': ['string', 'null'], 'description': 'Product title as shown on the page.'}, 'brand': {'type': ['string', 'null']}, 'price': {'type': ['number', 'null'], 'description': 'Numeric price. No currency symbol, no thousands separator.'}, 'images': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Up to 5 absolute image URLs copied verbatim from the page. Never invented. Empty when the page carries no usable product image.'}, 'currency': {'type': ['string', 'null'], 'description': 'ISO 4217 code, e.g. USD. Always null when price is null.'}, 'variants': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'values'], 'properties': {'name': {'type': 'string'}, 'values': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'description': 'e.g. [{ name: "Size", values: ["S", "M", "L"] }]'}, 'description': {'type': ['string', 'null'], 'description': 'One to three sentences.'}, 'availability': {'enum': ['in_stock', 'out_of_stock', 'preorder', 'unknown'], 'type': 'string', 'description': '`unknown` when the page does not say — never guessed.'}}, 'additionalProperties': False}, 'redirect': {'anyOf': [{'type': 'object', 'required': ['requested', 'final'], 'properties': {'final': {'type': 'string'}, 'requested': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Present only when the browser landed somewhere other than the URL you gave. The data describes `final`, not `requested`.'}, 'provenance': {'type': 'object', 'required': ['source', 'declared', 'inferred'], 'properties': {'source': {'enum': ['json-ld', 'meta', 'json-ld+meta', 'none'], 'type': 'string'}, 'declared': {'type': 'array', 'items': {'type': 'string'}}, 'inferred': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Where each field came from. `declared` matches what the merchant published in schema.org data — their own number. `inferred` was read off the page by a model. Null fields appear in neither. Treat a declared price as a fact and an inferred one as a reading.', 'additionalProperties': False}, 'settlement': {'type': ['string', 'null'], 'description': 'Base64 x402 settlement receipt, when the facilitator returned one.'}, 'cache_age_seconds': {'type': 'number'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Absolute http(s) URL of a public page.'}, 'payment': {'type': 'string', 'description': 'Base64 x402 payment payload. Omit it to receive a quote; sign that and call again.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Absolute http(s) URL of a public page.'}, 'payment': {'type': 'string', 'description': 'Base64 x402 payment payload. Omit it to receive a quote; sign that and call again.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'preview', 'free', 'sample_url', 'product', 'page', 'stale', 'cache_age_seconds', 'note'], 'properties': {'free': {'type': 'boolean', 'const': True}, 'note': {'type': 'string'}, 'page': {'type': 'object', 'required': ['url', 'finalUrl', 'title', 'status', 'fetchedAt', 'render_ms'], 'properties': {'url': {'type': 'string', 'description': 'The URL as submitted.'}, 'title': {'type': ['string', 'null']}, 'status': {'type': 'number', 'description': 'HTTP status of the rendered page.'}, 'finalUrl': {'type': 'string', 'description': 'Where it ended up after redirects.'}, 'fetchedAt': {'type': 'string', 'description': 'ISO timestamp of the RENDER, not of this call. On a cached result this is older than now — check it before treating a price as live.'}, 'render_ms': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'stale': {'type': 'boolean', 'description': 'True if the sample could not be refreshed and is an older render.'}, 'status': {'type': 'string', 'const': 'ok'}, 'preview': {'type': 'boolean', 'const': True}, 'product': {'type': 'object', 'required': ['name', 'description', 'brand', 'sku', 'price', 'currency', 'availability', 'images', 'variants', 'url'], 'properties': {'sku': {'type': ['string', 'null'], 'description': 'SKU or model number, if the page shows one.'}, 'url': {'type': 'string', 'description': 'The page the data came from, after any redirects.'}, 'name': {'type': ['string', 'null'], 'description': 'Product title as shown on the page.'}, 'brand': {'type': ['string', 'null']}, 'price': {'type': ['number', 'null'], 'description': 'Numeric price. No currency symbol, no thousands separator.'}, 'images': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Up to 5 absolute image URLs copied verbatim from the page. Never invented. Empty when the page carries no usable product image.'}, 'currency': {'type': ['string', 'null'], 'description': 'ISO 4217 code, e.g. USD. Always null when price is null.'}, 'variants': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'values'], 'properties': {'name': {'type': 'string'}, 'values': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'description': 'e.g. [{ name: "Size", values: ["S", "M", "L"] }]'}, 'description': {'type': ['string', 'null'], 'description': 'One to three sentences.'}, 'availability': {'enum': ['in_stock', 'out_of_stock', 'preorder', 'unknown'], 'type': 'string', 'description': '`unknown` when the page does not say — never guessed.'}}, 'additionalProperties': False}, 'sample_url': {'type': 'string'}, 'cache_age_seconds': {'type': 'number'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['attestation'], 'properties': {'attestation': {'type': 'string', 'description': 'The attestation as JSON text: either the whole response from attest_page or just its `attestation` object.'}}, 'additionalProperties': False}
近期工具变更
类似的 MCP 服务器
AgentLot Marketplace
Enables agents and users to discover, bid on, purchase, deliver, and settle paid digital services and compute work.
Digital Manager Guru
Provides Digital Manager Guru checkout, customer, transaction, subscription, affiliate, coupon, blocklist, and digital-product sa…
Robyn — Gasless Cross-Chain for AI Agents
Supports gasless cross-chain transfers, wallet and transaction checks, spending mandates, privacy-preserving messaging, and signe…
Pagar.me
Connects to Pagar.me to manage customers, cards, orders, charges, invoices, payment captures, confirmations, retries, refunds, an…
roastify-mcp
Supports a coffee commerce workflow with product and blend catalogs, inventory, coupons, packaging design editing, artwork genera…
bitroad
Enables agents to search and purchase marketplace goods under spending controls, manage orders and returns, and handle payments a…
Singularity Layer MCP
Provides marketplace discovery, agent endpoint and asset management, dataset and product purchases, payment flows, and ERC-8004 a…
agentic-commerce
Enables on-chain commerce through Boson Protocol, including product offers, buyer and seller accounts, voucher exchanges, escrow-…