TikTok / Social Commerce
TikTok Product Discovery MCP Tool
Search and filter TikTok global e-commerce products based on FastMoss data, supporting keyword search, multi-dimensional filtering (category, shop type, commission rate, sales, creator count, etc.) and sorting.
MCP tool name
nexscope_tiktok_product_discoveryEquivalent REST API path
https://claw-callback.nexscope.ai/api/skill-api/v1/skills/tiktok-product-discovery/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": "tiktok-product-discovery-1",
"method": "tools/call",
"params": {
"name": "nexscope_tiktok_product_discovery",
"arguments": {
"region": "US",
"pageSize": 10,
"keyword": "phone case",
"pageNumber": 1
}
}
}REST API equivalent
POST /api/skill-api/v1/runhttps://claw-callback.nexscope.ai/api/skill-api/v1/skills/tiktok-product-discovery/runCanonical detail URL
https://www.nexscope.ai/mcp-map/tiktok-product-discoveryArguments
| Name | Type | Required | Meaning |
|---|---|---|---|
keyword | string | optional | Search keyword (fuzzy match on product title) Example: phone case |
region | string | optional | Market region code. Options: US (United States), GB (United Kingdom), MX (Mexico), ES (Spain), DE (Germany), IT (Italy), FR (France), ID (Indonesia), VN (Vietnam), MY (Malaysia), TH (Thailand), PH (Philippines), BR (Brazil), JP (Japan), SG (Singapore) Example: US |
category | string | optional | English category name, automatically matched to TikTok category ID. Non-English input must be translated to English first Example: {} |
shopType | integer | optional | Store type: 1=local store, 2=cross-border store Example: 1 |
isTopSelling | boolean | optional | Filter hot-selling products only Example: false |
isNewListed | boolean | optional | Filter newly listed products only Example: false |
isSshop | boolean | optional | Filter TikTok fully managed (S-shop) products only Example: false |
isFreeShipping | boolean | optional | Filter free shipping products only Example: false |
isLocalWarehouse | boolean | optional | Filter local warehouse shipping products only Example: false |
unitsSoldRange | object | optional | Sales volume range filter, format: {"min": 100, "max": 5000} Example: {} |
commissionRateRange | object | optional | Commission rate range filter, format: {"min": 0.05, "max": 0.20} (decimal, 0.10=10%) Example: {} |
creatorCountRange | object | optional | Creator count range filter, format: {"min": 10, "max": 500} Example: {} |
orderField | string | optional | Sort field: day7_units_sold (7-day sales), day7_gmv (7-day GMV), commission_rate (commission rate), total_units_sold (total sales), total_gmv (total GMV), creator_count (creator count). Default descending order Example: {} |
page | integer | optional | Page number, default 1 Example: 1 |
pageSize | integer | optional | Items per page, max 10, default 10 Example: 10 |
Response fields
Treat structuredContent as the programmatic API response payload.
| Name | Type | Required | Meaning |
|---|---|---|---|
total | integer | optional | Total number of matching records Example: 1 |
products | array | optional | Product information list (see below) Example: [] |
columns | array | optional | Render column definitions Example: [] |
type | string | optional | Render style type Example: {} |
costToken | integer | optional | Token cost Example: 1 |
products[].title | string | optional | Product title Example: {} |
products[].productId | string | optional | Product unique identifier ID Example: example-id |
products[].region | string | optional | Market region code Example: US |
products[].price | number | optional | Product price Example: 1 |
products[].minPrice | number | optional | Minimum price Example: 1 |
products[].maxPrice | number | optional | Maximum price Example: 1 |
products[].currency | string | optional | Currency code Example: {} |
products[].totalSaleCnt | integer | optional | Cumulative total sales Example: 1 |
products[].totalSale1dCnt | integer | optional | 1-day sales Example: 1 |
products[].totalSale7dCnt | integer | optional | 7-day sales Example: 1 |
products[].totalSale28dCnt | integer | optional | 28-day sales Example: 1 |
products[].totalSale90dCnt | integer | optional | 90-day sales Example: 1 |
products[].totalSaleGmvAmt | number | optional | Cumulative total GMV Example: 1 |
products[].totalSaleGmv7dAmt | number | optional | 7-day GMV Example: 1 |
products[].totalSaleGmv28dAmt | number | optional | 28-day GMV Example: 1 |
products[].totalVideoCnt | integer | optional | Number of promotional videos Example: 1 |
products[].totalLiveCnt | integer | optional | Number of livestream promotions Example: 1 |
products[].totalIflCnt | integer | optional | Number of promoting creators Example: 1 |
products[].productCommissionRate | number | optional | Product commission rate (decimal, 0.10=10%) Example: 1 |
products[].productRating | number | optional | Product rating Example: 1 |
products[].reviewCount | integer | optional | Review count Example: 1 |
products[].skuCount | integer | optional | SKU count Example: 1 |
products[].shopName | string | optional | Store name Example: {} |
products[].shopSellerId | string | optional | Seller ID Example: example-id |
products[].shopTotalUnitsSold | integer | optional | Store total sales Example: 1 |
products[].isCrossBorder | integer | optional | Whether cross-border: 1=cross-border, 0=local Example: 1 |
products[].isSShopText | string | optional | Whether a fully managed store (Yes/No) Example: {} |
products[].freeShippingText | string | optional | Whether free shipping (Yes/No) Example: {} |
products[].availableDate | string | optional | Listing time Example: 2026-01-01 |
products[].categoryName | string | optional | Product category name Example: {} |
products[].salesTrendFlagText | string | optional | Sales trend indicator Example: {} |
products[].tiktokUrl | string | optional | TikTok product link Example: https://example.com/image.jpg |
products[].fastmossUrl | string | optional | FastMoss product detail link Example: https://example.com/image.jpg |
products[].imageUrl | string | optional | Product image URL Example: https://example.com/image.jpg |
errcode | integer | optional | Upstream status code returned by the provider. Example: {} |
errmsg | string | optional | Upstream status message returned by the provider. Example: {} |
code | string | optional | Provider-specific status code. Example: {} |
msg | string | optional | Provider-specific status message. Example: {} |
message | string | optional | Provider-specific message. 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: {} |
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
{
"region": "US",
"pageSize": 10,
"keyword": "phone case",
"pageNumber": 1
}Example structuredContent
{
"total": 1,
"products": [
{
"productId": "example-id",
"region": "US",
"price": 1,
"minPrice": 1,
"maxPrice": 1,
"totalSaleCnt": 1,
"totalSale1dCnt": 1,
"totalSale7dCnt": 1,
"totalSale28dCnt": 1,
"totalSale90dCnt": 1,
"totalSaleGmvAmt": 1,
"totalSaleGmv7dAmt": 1,
"totalSaleGmv28dAmt": 1,
"totalVideoCnt": 1,
"totalLiveCnt": 1,
"totalIflCnt": 1,
"productCommissionRate": 1,
"productRating": 1,
"reviewCount": 1,
"skuCount": 1,
"shopSellerId": "example-id",
"shopTotalUnitsSold": 1,
"isCrossBorder": 1,
"availableDate": "2026-01-01",
"tiktokUrl": "https://example.com/image.jpg",
"fastmossUrl": "https://example.com/image.jpg",
"imageUrl": "https://example.com/image.jpg"
}
],
"columns": [],
"costToken": 1
}