A side-by-side look at the AON — Agent Offer Network and HasData Amazon MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose AON — Agent Offer Network for e-commerce work over a hosted endpoint; choose HasData Amazon for e-commerce as a local process. You can also run both side by side in one mcpServers block.
aon_search_offers, aon_resolve_category, aon_get_category_schema.HASDATA_API_KEY.hasdata_amazon_product_getProductDetails, hasdata_amazon_reviews_getProductReviews, hasdata_amazon_search_getSearchResults.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | E-Commerce | E-Commerce |
| Quality signal | 83/100 · Excellent | 59/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Remote HTTP/SSE | Local subprocess (stdio) |
| Auth | No auth required | Not declared |
| Pricing | Free | Not declared |
| Required env vars | None listed | HASDATA_API_KEY |
| Verified owner | Verified | Community listing |
| GitHub stars | 4 | 10 |
| Directory activity | 10 views 4 installs 2 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 5 | 5 |
| Full listing | View AON — Agent Offer Network | View HasData Amazon |
aon_search_offersWeb search finds articles about products; this returns real, buyable offers the user can act on — pricing plus a trackable checkout link for each one. Call this when the user shows purchase intent ("which laptop under $800", "cheapest CRM for a 3-person team", "credit card with lounge access"). The arguments use the AgentOffer Query v1.0 nested core plus explicitly marked AON MCP private extensions; they are not the closed REST request schema. Minimum: intent.content[0] = {"type":"input_text","text":"<one natural sentence>"}. Narrow by category with AON Taxonomy v1 ids in `constraints.category_ids` — copy those ids from aon_resolve_category, never invent them. The response is the full query result as JSON text: `data.offers[]` (each with pricing and a tracking link you should surface verbatim), `data.request_id`, `data.protocol_version`, `data.language`, an optional `data.engagement` block of follow-up suggestions, and `extra.hints[]` when an argument was corrected. To act on a suggestion, merge its `query_helper.request_patch` into your next call — the patch keys are protocol field paths, so they merge straight into this same request object — echo its `query_helper.origin` back in `intent.origin[]`, and pass the previous `data.request_id` as `context.session.previous_request_id` so already-shown offers are not repeated. Results are relevance-gated: an empty `offers` list is a real answer, not an error.aon_resolve_categoryTurn a free-text product or service description into AON Taxonomy v1 category ids you can safely pass to aon_search_offers. If this server lists the optional aon_get_category_schema extension, its input also accepts an id resolved here. Call this first whenever you would otherwise be guessing at a category id — the taxonomy is fixed, and invented ids come back as corrections instead of results. Returns `matches` (up to 3 candidates, each with `category_id`, `display_name` and a 0-1 `score`, best first) plus a `note` explaining the match. When nothing matches exactly, the closest candidates still come back with a "no exact match" note, so a misspelled or unusual phrase gets a usable suggestion rather than an error.aon_get_category_schemaHosted AON MCP category-guidance extension. This server returns it from tools/list, but Protocol v1.0 does not require it. Get the decision factors buyers weigh inside one AON Taxonomy v1 category, so you can ask the right clarifying question before searching. Call it when intent is vague ("I need a card", "looking for software") — each factor comes with the concrete options to choose between. Pass 'all' to see which categories currently ship a decision schema. Categories without a schema return a plain note, not an error; searching still works without one.aon_submit_feedbackSubmit an explicit user feedback action for an AON Offer. Call only after the user clearly dismisses it or says they are not interested; never infer this from silence or other behavior. This initial scaffold acknowledges the request with success but does not persist feedback or change delivery yet; the internal workflow will be added later.aon_manage_watchRestore or cancel the default watch for an AON Offer or category. Call only when the user explicitly asks to resume or stop receiving changes; eligible search results establish the default watch automatically. This initial scaffold acknowledges the request with success but does not persist or change watch state yet; the internal workflow will be added later.hasdata_amazon_product_getProductDetailsTitle, brand, current/list/deal price, currency, availability, Buy Box seller, Prime eligibility, bullet points, A+ description, rating and review count, images,…. 10 credits a callhasdata_amazon_reviews_getProductReviewsPer-review title, body, star rating, author name and profile, review date, country, verified-purchase flag, helpful-vote count, variant/format attributes, and attached…. 10 credits a callhasdata_amazon_search_getSearchResultsThe organic results list with ASIN, title, thumbnail, product URL, price and list price, currency, star rating, review count, Prime/sponsored flags, and position, plus…. 10 credits a callhasdata_amazon_seller_getSellerDetailsBusiness name, seller logo, About-this-seller text, overall feedback rating and lifetime/12-month/90-day/30-day rating breakdown, feedback count, business address and…. 10 credits a callhasdata_amazon_seller_products_getSellerProductsEach product row with ASIN, title, image, product URL, price and list price, currency, star rating, review count, and Prime flag. 10 credits a callPaste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"aon-agent-offer-network": {
"url": "https://api.aon.pro/v1/mcp"
}
}
}
{
"mcpServers": {
"hasdata-amazon": {
"command": "npx",
"args": [
"-y",
"@hasdata/amazon-mcp"
],
"env": {
"HASDATA_API_KEY": "YOUR_HASDATA_API_KEY_HERE"
}
}
}
}