Amazon Marketplace Intelligence
Amazon Opportunity Search By Metrics MCP Tool
Amazon reverse product selection: filter Amazon niches and keywords by 30+ business dimensions (market size & growth, price tiers & share, competition density & top concentration, demographics such as age/gender/income, review highlights & pain points) from a metrics pool aggregated from historical business insight reports.
MCP tool name
nexscope_amazon_opportunity_search_by_metricsEquivalent REST API path
https://claw-callback.nexscope.ai/api/skill-api/v1/skills/amazon-opportunity-search-by-metrics/runJSON-RPC method
tools/callAuthentication
Send the user API key as a bearer token on every MCP JSON-RPC request.
Authorization: Bearer nk_xxxxxxxxxxxxxxxxxIf authentication is missing or invalid, ask the user to open API Access and copy a valid key before calling this tool.
Call this MCP tool
Use tools/call with the MCP tool name below. The arguments object should match the table on this page.
{
"jsonrpc": "2.0",
"id": "amazon-opportunity-search-by-metrics-1",
"method": "tools/call",
"params": {
"name": "nexscope_amazon_opportunity_search_by_metrics",
"arguments": {
"keyword": "phone case",
"amazonDomain": "US",
"limit": 10
}
}
}REST API equivalent
POST /api/skill-api/v1/runhttps://claw-callback.nexscope.ai/api/skill-api/v1/skills/amazon-opportunity-search-by-metrics/runCanonical detail URL
https://www.nexscope.ai/mcp-map/amazon-opportunity-search-by-metricsArguments
| Name | Type | Required | Meaning |
|---|---|---|---|
amazonDomain | string | optional | Amazon site code (closed enum), currently only supports US. Defaults to US only if not specified Example: {} |
limit | integer | optional | Maximum number of results to return (1-200), default 25. No page parameter; returns the most recent N records sorted by collection time descending Example: 1 |
keyword | string | optional | Search keyword text fragment (LIKE fuzzy match) Example: phone case |
nicheName | string | optional | Normalized niche name fragment (LIKE, snake_case lowercase), suitable for niche time-series comparison Example: {} |
nicheRevenue360dMinUsdAtLeastGte | number | optional | Minimum 360-day market revenue lower bound (USD) Example: 1 |
nicheRevenue360dMinUsdAtLeastLte | number | optional | Maximum 360-day market revenue lower bound (USD) Example: 1 |
nicheRevenue360dMaxUsdAtLeastGte | number | optional | Minimum 360-day market revenue upper bound (USD) Example: 1 |
nicheRevenue360dMaxUsdAtLeastLte | number | optional | Maximum 360-day market revenue upper bound (USD) Example: 1 |
nichePeakSearchVolumeAtLeastGte | integer | optional | Peak monthly search volume minimum (non-negative integer) Example: 1 |
nichePeakSearchVolumeAtLeastLte | integer | optional | Peak monthly search volume maximum (non-negative integer) Example: 1 |
nicheSearchVolumeYoyChangePctAtLeastGte | number | optional | Search volume YoY change rate minimum (%, signed) Example: 1 |
nicheSearchVolumeYoyChangePctAtLeastLte | number | optional | Search volume YoY change rate maximum (%, signed) Example: 1 |
nichePeakMonthGte | integer | optional | Search peak month minimum (1-12) Example: 1 |
nichePeakMonthLte | integer | optional | Search peak month maximum (1-12) Example: 1 |
nicheBrandCountGte | integer | optional | Active brand count minimum Example: 1 |
nicheBrandCountLte | integer | optional | Active brand count maximum Example: 1 |
nicheBrandCountYoyChangePctAtLeastGte | number | optional | Brand count YoY change rate minimum (%, signed) Example: 1 |
nicheBrandCountYoyChangePctAtLeastLte | number | optional | Brand count YoY change rate maximum (%, signed) Example: 1 |
nicheTop5ProductClickSharePctAtLeastGte | number | optional | Top 5 product click share minimum (0-100) Example: 1 |
nicheTop5ProductClickSharePctAtLeastLte | number | optional | Top 5 product click share maximum (0-100) Example: 1 |
featureTop5BrandSharePctAtLeastGte | number | optional | Top 5 brand combined share minimum (0-100) Example: 1 |
featureTop5BrandSharePctAtLeastLte | number | optional | Top 5 brand combined share maximum (0-100) Example: 1 |
featureTopBrandsContains | string | optional | Top 3 brand name fragment (original text LIKE, case-sensitive) Example: {} |
priceMinUsdGte | number | optional | Niche minimum product price lower bound (USD) Example: 1 |
priceMinUsdLte | number | optional | Niche minimum product price upper bound (USD) Example: 1 |
priceMaxUsdGte | number | optional | Niche maximum product price lower bound (USD) Example: 1 |
priceMaxUsdLte | number | optional | Niche maximum product price upper bound (USD) Example: 1 |
priceSweetSpotMinUsdGte | number | optional | Sweet spot lower bound minimum (USD) Example: 1 |
priceSweetSpotMinUsdLte | number | optional | Sweet spot lower bound maximum (USD) Example: 1 |
priceSweetSpotMaxUsdGte | number | optional | Sweet spot upper bound minimum (USD) Example: 1 |
priceSweetSpotMaxUsdLte | number | optional | Sweet spot upper bound maximum (USD) Example: 1 |
priceEntryClickSharePctAtLeastGte | number | optional | Entry tier click share minimum (0-100) Example: 1 |
priceEntryClickSharePctAtLeastLte | number | optional | Entry tier click share maximum (0-100) Example: 1 |
priceMidClickSharePctAtLeastGte | number | optional | Mid tier click share minimum (0-100) Example: 1 |
priceMidClickSharePctAtLeastLte | number | optional | Mid tier click share maximum (0-100) Example: 1 |
priceHighClickSharePctAtLeastGte | number | optional | High tier click share minimum (0-100) Example: 1 |
priceHighClickSharePctAtLeastLte | number | optional | High tier click share maximum (0-100) Example: 1 |
demoPrimaryAgeMinGte | integer | optional | Primary audience age lower bound minimum (0-120 years) Example: 1 |
demoPrimaryAgeMinLte | integer | optional | Primary audience age lower bound maximum (0-120 years) Example: 1 |
demoPrimaryAgeMaxGte | integer | optional | Primary audience age upper bound minimum (0-120 years) Example: 1 |
demoPrimaryAgeMaxLte | integer | optional | Primary audience age upper bound maximum (0-120 years) Example: 1 |
demoGenderDominant | string | optional | Dominant gender (closed enum): female / male / mixed / unspecified Example: {} |
demoPrimaryIncomeTier | string | optional | Income tier (closed enum): low / middle_low / middle / middle_upper / upper_middle / high Example: {} |
demoLifeStageTagsContains | string | optional | Life stage tag fragment (snake_case, LIKE): parent, student, retiree, athlete, etc. Example: {} |
featureNewAvgReviewCountAtLeastGte | integer | optional | New product average review count minimum (non-negative integer) Example: 1 |
featureNewAvgReviewCountAtLeastLte | integer | optional | New product average review count maximum (non-negative integer) Example: 1 |
featureEstablishedAvgReviewCountAtLeastGte | integer | optional | Established product average review count minimum (non-negative integer) Example: 1 |
featureEstablishedAvgReviewCountAtLeastLte | integer | optional | Established product average review count maximum (non-negative integer) Example: 1 |
featureEmergingTrendTagsContains | string | optional | Emerging trend feature tag fragment (snake_case, LIKE): cordless, portable, smart, etc. Example: {} |
featureUncommonFeatureTagsContains | string | optional | Rare differentiation feature tag fragment (snake_case, LIKE): hema_free, medical_grade_silicone, etc. Example: {} |
searchTopCategory1Label | string | optional | Search traffic top category 1 label fragment (snake_case, LIKE): core_product_terms, set_kit_configurations, etc. Example: {} |
reviewPositiveTop1Topic | string | optional | Positive review #1 topic fragment (snake_case, LIKE): comfort, quality_overall_generic, etc. Example: {} |
reviewPositiveTop1PctAtLeastGte | number | optional | Positive review #1 topic share minimum (0-100, share among positive reviews) Example: 1 |
reviewPositiveTop1PctAtLeastLte | number | optional | Positive review #1 topic share maximum (0-100) Example: 1 |
reviewNegativeTop1Topic | string | optional | Negative review #1 topic fragment (snake_case, LIKE): size, quality, durability, etc. Example: {} |
reviewNegativeTop1PctAtLeastGte | number | optional | Negative review #1 topic share minimum (0-100, share among negative reviews) Example: 1 |
reviewNegativeTop1PctAtLeastLte | number | optional | Negative review #1 topic share maximum (0-100) Example: 1 |
reviewNegativeTop2Topic | string | optional | Negative review #2 topic fragment (snake_case, LIKE) Example: {} |
reviewStrategicInsightTagsContains | string | optional | Review strategic insight tag fragment (snake_case, LIKE): sizing_clarity, material_transparency, etc. Example: {} |
Response fields
Treat structuredContent as the programmatic API response payload.
| Name | Type | Required | Meaning |
|---|---|---|---|
code | string | optional | Response code, 200 indicates success Example: {} |
msg | string | optional | Message, ok on success, error description on failure Example: {} |
data | array | optional | Array of keyword metric records, each corresponding to a (site, keyword) combination, approximately 37 fields, sorted by collection time descending Example: [] |
data[].amazonDomain | string | optional | Site code (currently fixed US) Example: {} |
keyword | string | optional | Original search keyword Example: phone case |
data[].nicheName | string | optional | Normalized niche name (snake_case) Example: {} |
nicheRevenue360dMinUsdAtLeast/nicheRevenue360dMaxUsdAtLeast | number | optional | Last 360 days market revenue lower bound / upper bound (USD) Example: 1 |
nichePeakSearchVolumeAtLeast | integer | optional | Peak monthly search volume Example: 1 |
nichePeakMonth | integer | optional | Search peak month (1-12) Example: 1 |
nicheSearchVolumeYoyChangePctAtLeast | number | optional | Search volume YoY change rate (%, signed) Example: 1 |
nicheBrandCount/nicheBrandCountYoyChangePctAtLeast | integer | optional | Active brand count and its YoY change rate Example: 1 |
nicheTop5ProductClickSharePctAtLeast | number | optional | Top 5 product click share (0-100) Example: 1 |
featureTop5BrandSharePctAtLeast | number | optional | Top 5 brand combined share (0-100) Example: 1 |
featureTopBrands | array | optional | Top 3 brand name list (original text) Example: [] |
priceMinUsd/priceMaxUsd | number | optional | Niche overall minimum / maximum product price Example: 1 |
priceSweetSpotMinUsd/priceSweetSpotMaxUsd | number | optional | Value sweet spot price range lower bound / upper bound Example: 1 |
priceEntryClickSharePctAtLeast/priceMidClickSharePctAtLeast/priceHighClickSharePctAtLeast | number | optional | Entry / Mid / High tier click share (0-100) Example: 1 |
demoPrimaryAgeMin/demoPrimaryAgeMax | integer | optional | Core audience age lower bound / upper bound Example: 1 |
data[].demoGenderDominant | string | optional | Dominant gender (female / male / mixed / unspecified) Example: {} |
data[].demoPrimaryIncomeTier | string | optional | Core audience income tier Example: {} |
demoLifeStageTags | array | optional | Life stage tag list Example: [] |
featureNewAvgReviewCountAtLeast/featureEstablishedAvgReviewCountAtLeast | integer | optional | New / Established product average review count Example: 1 |
featureEmergingTrendTags/featureUncommonFeatureTags | array | optional | Emerging trend / Rare differentiation feature tags Example: [] |
data[].searchTopCategory1Label | string | optional | Traffic top category 1 normalized label Example: {} |
reviewPositiveTop1Topic/reviewPositiveTop1PctAtLeast | number | optional | Positive review #1 topic and its share among positive reviews Example: 1 |
reviewNegativeTop1Topic/reviewNegativeTop1PctAtLeast/reviewNegativeTop2Topic | number | optional | Negative review #1 topic, share, and secondary cause Example: 1 |
reviewStrategicInsightTags | array | optional | Review strategic insight tags Example: [] |
errcode | integer | optional | Upstream status code returned by the provider. Example: {} |
errmsg | string | optional | Upstream status message returned by the provider. Example: {} |
message | string | optional | Provider-specific message. Example: {} |
type | string | optional | Provider-specific render or payload type. Example: {} |
title | string | optional | Provider-specific response title. Example: {} |
sourceType | string | optional | Provider-specific source platform type. Example: {} |
sourceTool | string | optional | Provider-specific source tool name. Example: {} |
costToken | integer | optional | Token cost reported by the upstream provider. Example: {} |
costTime | integer | optional | Execution time reported by the upstream provider. Example: {} |
page | integer | optional | Current page returned by the upstream provider. Example: {} |
pageSize | integer | optional | Page size returned by the upstream provider. Example: {} |
pageItemCount | integer | optional | Item count on the current page returned by the upstream provider. Example: {} |
totalPage | integer | optional | Total page count returned by the upstream provider. Example: {} |
dataSnapshotMonth | string | optional | Data snapshot month returned by the upstream provider. Example: {} |
Examples
Example arguments
{
"keyword": "phone case",
"amazonDomain": "US",
"limit": 10
}Example structuredContent
{
"data": [],
"keyword": "phone case",
"nicheRevenue360dMinUsdAtLeast/nicheRevenue360dMaxUsdAtLeast": 1,
"nichePeakSearchVolumeAtLeast": 1,
"nichePeakMonth": 1,
"nicheSearchVolumeYoyChangePctAtLeast": 1,
"nicheBrandCount/nicheBrandCountYoyChangePctAtLeast": 1,
"nicheTop5ProductClickSharePctAtLeast": 1,
"featureTop5BrandSharePctAtLeast": 1,
"featureTopBrands": [],
"priceMinUsd/priceMaxUsd": 1,
"priceSweetSpotMinUsd/priceSweetSpotMaxUsd": 1,
"priceEntryClickSharePctAtLeast/priceMidClickSharePctAtLeast/priceHighClickSharePctAtLeast": 1,
"demoPrimaryAgeMin/demoPrimaryAgeMax": 1,
"demoLifeStageTags": [],
"featureNewAvgReviewCountAtLeast/featureEstablishedAvgReviewCountAtLeast": 1,
"featureEmergingTrendTags/featureUncommonFeatureTags": [],
"reviewPositiveTop1Topic/reviewPositiveTop1PctAtLeast": 1,
"reviewNegativeTop1Topic/reviewNegativeTop1PctAtLeast/reviewNegativeTop2Topic": 1,
"reviewStrategicInsightTags": []
}