Skip to main content
Glama

LeoWorks Data Tools — Naver, K-beauty & AliExpress

Server Details

Naver Shopping rank, Naver Blog & AI Briefing monitoring, Korean review classification, K-beauty rankings (Olive Young Global, Amore Mall) and AliExpress reviews & search as AI agent tools — the official Apify MCP server (hosted by Apify) preconfigured with seven LeoWorks actors. Sign in with Apify OAuth or an Apify token; billed per result on your Apify account.

Ownership verified
Status
Healthy
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
illee/leoworks-data-tools-mcp
GitHub Stars
0

TDQS

A3.6/5.0

Scored across 11 tools

Disambiguation4/5

The four infrastructure tools (abort/get run, get dataset items, get KV record) target clearly distinct resources, and the seven Actor tools each map to a distinct source (AliExpress reviews vs search, Naver blog vs AI briefing vs shopping rank, K-beauty rankings). There is mild conceptual overlap between the review-classification tools (aliexpress-reviews-classifier, korean-review-classifier, kbeauty-ranking-review-monitor all do sentiment/complaint classification), but the differing data sources keep them separable.

Naming Consistency3/5

The infrastructure group follows a clean verb_noun kebab-case pattern (abort-actor-run, get-actor-run, get-dataset-items, get-key-value-store-record). However, the Actor tools use a completely different 'leoworks--<slug>' namespace prefix with no verb, so the set mixes two conventions rather than presenting one predictable scheme.

Tool Count5/5

11 tools is well within the ideal range and each earns its place: four generic run/storage utilities plus seven domain-specific scrapers. No redundancy or filler given the breadth of sources covered.

Completeness4/5

The run lifecycle (get/abort), dataset retrieval, and key-value retrieval give a workable pipeline, and the Actor tools cover a solid spread of Naver, K-beauty, and AliExpress sources. Minor gaps exist (e.g. no explicit list-actors/list-datasets or start-run tool), but agents can work around them via the Actor tools and nextStep hints.

Available Tools

11 tools
abort-actor-runAbort Actor runA
DestructiveIdempotent
Inspect

Abort an Actor run that is currently starting or running. For runs with status SUCCEEDED, FAILED, ABORTING, ABORTED, or TIMED-OUT, this call has no effect. The results will include the updated run details after the abort request.

USAGE:

  • Use when you need to stop a run that is taking too long or misconfigured.

USAGE EXAMPLES:

  • user_input: Abort run y2h7sK3Wc

  • user_input: Gracefully abort run y2h7sK3Wc

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdYesThe ID of the Actor run to abort.
gracefullyNoIf true, the Actor run will abort gracefully with a 30-second timeout.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tipNoAdvisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key
runIdYesActor run ID
statsNoRun statistics
statusYesRun status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
actorIdYesStable Apify Actor ID from the run record
summaryYesPast-tense summary of the run state
exitCodeNoActor process exit code; populated for terminal states (especially FAILED)
nextStepYesOne primary follow-up action with identifiers interpolated
storagesYesDataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
actorNameNo"username/actor-name"
startedAtNoISO timestamp when the run started
finishedAtNoISO timestamp when the run finished (terminal states only)
statusMessageNoPass-through from Apify run.statusMessage
apifyConsoleUrlNoPersonalized Apify Console link to the run; present only for Console sessions

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered. The description adds genuinely new behavior beyond the annotations: the call is a no-op for SUCCEEDED/FAILED/ABORTING/ABORTED/TIMED-OUT runs, and the response returns the updated run details. It does not mention permission requirements or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and its status preconditions before the USAGE block, and no sentence is wasted. The USAGE EXAMPLES lines are thin (one is a bare restatement of the required runId) but the graceful variant does demonstrate a real parameter usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be detailed, and the description correctly just notes that updated run details come back. Purpose, preconditions, and usage are all covered; only permission/auth context is missing for a destructive, openWorld=false operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters (runId, gracefully with its 30-second timeout) are fully documented in the schema, so the baseline is 3. The description adds little parameter meaning beyond the example 'Gracefully abort run y2h7sK3Wc', which only loosely illustrates the gracefully flag.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Abort an Actor run') and narrows scope with the precondition 'currently starting or running', which makes the operation unambiguous. It never names a sibling such as get-actor-run to contrast against, but the destructive abort semantics are self-evidently distinct from the read-only tools in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use when you need to stop a run that is taking too long or misconfigured' gives a clear triggering condition, and the status no-op list functions as an implicit when-not-to-use rule for terminal runs. No alternative tools or host-level prerequisites (auth, workspace scoping) are offered, so it stops short of a full routing guide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-actor-runGet Actor runA
Read-onlyIdempotent
Inspect

Get detailed information about a specific Actor run.

Returns run result: status, storages (datasets/keyValueStores alias map), stats, summary, nextStep.

  • summary describes the past (e.g. "SUCCEEDED in 22s. 47 items; 3 fields available.").

  • nextStep prescribes one primary follow-up action with identifiers interpolated (e.g. "Use get-dataset-items with datasetId=...").

  • waitSecs (0–45, default 30) waits up to that many seconds for terminal status before returning.

USAGE:

  • Use to check the status of a run started by any Actor-running tool.

  • Pass waitSecs > 0 to block until terminal (or until the cap elapses).

USAGE EXAMPLES:

  • user_input: Show details of run y2h7sK3Wc

  • user_input: Wait for run y2h7sK3Wc to finish

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdYesThe ID of the Actor run.
waitSecsNoMaximum seconds to wait for the run to reach a terminal state (SUCCEEDED, FAILED, ABORTED, TIMED-OUT). 0 returns immediately with the current status. Cap: 45. Default: 30.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tipNoAdvisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key
runIdYesActor run ID
statsNoRun statistics
statusYesRun status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
actorIdYesStable Apify Actor ID from the run record
summaryYesPast-tense summary of the run state
exitCodeNoActor process exit code; populated for terminal states (especially FAILED)
nextStepYesOne primary follow-up action with identifiers interpolated
storagesYesDataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
actorNameNo"username/actor-name"
startedAtNoISO timestamp when the run started
finishedAtNoISO timestamp when the run finished (terminal states only)
statusMessageNoPass-through from Apify run.statusMessage
apifyConsoleUrlNoPersonalized Apify Console link to the run; present only for Console sessions

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds real behavioral context beyond that: the blocking semantics and 45s cap of waitSecs, the meaning of summary (describes the past) and nextStep (prescribes one interpolated follow-up), which an agent needs to interpret the response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then USAGE, then examples, with every line carrying information: field list, summary/nextStep semantics, and the waitSecs contract. No filler sentences, and the examples are short and directly actionable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, yet the description usefully characterizes summary and nextStep so the agent can act on them. Purpose, parameters, blocking behavior and examples are all covered; only auth/permission prerequisites for reading another Actor's run are unstated, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already documented in the schema with min/max/default and terminal-state enumeration. The description's waitSecs line ('0-45, default 30, waits up to that many seconds for terminal status') largely restates the schema, adding no syntax or format beyond it, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a precise verb+resource ('Get detailed information about a specific Actor run') and enumerates the returned fields (status, storages, stats, summary, nextStep). It does not explicitly contrast itself with the sibling abort-actor-run, but the phrasing 'a run started by any Actor-running tool' makes its read-only inspection role clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The USAGE section states when to reach for it ('check the status of a run started by any Actor-running tool') and how to make it block via waitSecs > 0, reinforced by two concrete user_input examples. It stops short of stating when NOT to use it (e.g. versus abort-actor-run or a listing tool), so it is clear context without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-dataset-itemsGet dataset itemsA
Read-onlyIdempotent
Inspect

Get items (rows) from a dataset — the output/results produced by an Actor run. Returns the rows themselves, not dataset metadata, counts, or a schema. When the user provides a datasetId and asks to retrieve results, output, data, or rows, call this tool directly. Default limit is 20. Use clean=true to skip empty items and hidden fields.

USAGE:

  • Use when you need to read data from a dataset (all items or only selected fields).

USAGE EXAMPLES:

  • user_input: Retrieve results from dataset abc123

  • user_input: Get only metadata.url and title from dataset username~my-dataset

ParametersJSON Schema
NameRequiredDescriptionDefault
descNoIf true, results are returned in reverse order (newest to oldest).
omitNoComma-separated list of fields to exclude from results.
cleanNoIf true, returns only non-empty items and skips hidden fields (starting with #). Shortcut for skipHidden=true and skipEmpty=true.
limitNoMaximum number of items to return. Default is 20.
fieldsNoComma-separated list of fields to include in results. Fields in output are sorted as specified. Use dot notation for nested objects (e.g. "metadata.url"); the server auto-flattens parent prefixes.
offsetNoNumber of items to skip at the start. Default is 0.
flattenNoComma-separated list of fields to flatten (e.g. flatten="metadata" turns {"metadata":{"url":"x"}} into {"metadata.url":"x"}). Normally derived automatically from dot-notation in `fields`; specify only as a diagnostic override.
datasetIdYesDataset ID or username~dataset-name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYesDataset items
limitYesLimit used for pagination
offsetYesOffset used for pagination
summaryYesSummary of the result
nextStepYesOne follow-up action with tool name
datasetIdYesDataset ID
itemCountYesNumber of items returned
totalItemCountYesTotal items in dataset
apifyConsoleUrlNoPersonalized Apify Console link to the dataset; present only for Console sessions

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring readOnlyHint=true and idempotentHint=true, the description adds valuable behavioral context: returns rows themselves, default limit of 20, and clean=true behavior. It also clarifies the nature of the return value beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear USAGE and USAGE EXAMPLES sections. Some redundancy ('Get items (rows)...' and 'Returns the rows themselves...') but overall efficient and front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 8 parameters, an output schema, and rich annotations, the description adequately covers key behaviors, usage triggers, and examples. It doesn't explain every parameter but relies on the schema for that, which is appropriate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds extra meaning by explaining default limit (20) and the clean=true shortcut, which supplements the schema. It also provides examples for fields usage, though most parameter semantics are in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool gets items (rows) from a dataset and explicitly distinguishes it from metadata, counts, or schema. It names the exact resource (dataset items) and the action (get), and provides direct trigger phrases for when to use it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit use cases ('when the user provides a datasetId and asks to retrieve results...'), and clarifies what it is not for (metadata, counts, schema). However, it does not name alternative tools explicitly, only implies them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-key-value-store-recordGet key-value store recordA
Read-onlyIdempotent
Inspect

Get the value stored under a specific key in a key-value store — a single record, not a listing of all keys. Requires the exact key name. The response preserves the original Content-Encoding; most clients handle decompression automatically.

USAGE:

  • Use when you need to retrieve a specific record (JSON, text, or binary) from a store.

USAGE EXAMPLES:

  • user_input: Get record INPUT from store abc123

  • user_input: Get record data.json from store username~my-store

ParametersJSON Schema
NameRequiredDescriptionDefault
recordKeyYesKey of the record to retrieve.
keyValueStoreIdYesKey-value store ID or username~store-name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
keyYesRecord key
valueYesThe stored value (JSON, text, or binary)
summaryYesSummary of the result
contentTypeNoMIME type of the stored value
keyValueStoreIdYesKey-value store ID

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint, idempotentHint, and destructiveHint as false. The description adds valuable behavioral context beyond this: the exact key name requirement and the preservation of Content-Encoding with automatic client decompression. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a concise opening definition, a short behavioral note, and clear usage examples. Every section earns its place without unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read-only tool with full schema coverage, an output schema, and strong annotations, the description covers the essential context: how to target a record, what to expect (Content-Encoding), and when it applies. The sibling context also helps differentiate it from listing operations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100%, so the schema already documents both parameters. The description adds usage examples and the 'exact key name' requirement, but these are minimally additive beyond the schema's own property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Get the value stored under a specific key in a key-value store.' It also distinguishes itself by explicitly stating this is 'a single record, not a listing of all keys,' which separates it from sibling tools like get-dataset-items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage context: 'Use when you need to retrieve a specific record (JSON, text, or binary) from a store.' It does not name alternative tools explicitly, but the 'not a listing of all keys' phrase gives implicit exclusion guidance for listing-style operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

leoworks--aliexpress-reviews-classifierleoworks/aliexpress-reviews-classifierB
Destructive
Inspect

This tool calls the Actor "leoworks/aliexpress-reviews-classifier" and retrieves its output results. Actor description: Scrape AliExpress product reviews — text, English translation, star rating, date, buyer country, option (SKU) and photos — from any product URL. Optional AI classification adds complaint types, sentiment and purchase motive, plus a per-product summary. No login.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoTwo-letter country code used for the request (affects which reviews AliExpress shows first and the translation language base). Default US. Example values: "US"US
waitSecsNoMax seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow `nextStep` to poll via get-actor-run. Set to 0 to fire-and-forget.
healthCheckNoInternal: fail the run when results look degraded (used by the developer's scheduled checks).
productUrlsYes**REQUIRED** AliExpress product pages (any site: www.aliexpress.com, aliexpress.us, ko.aliexpress.com …) or product IDs, e.g. https://www.aliexpress.com/item/1005008549911526.html or 1005008549911526. Example values: ["https://www.aliexpress.com/item/1005008549911526.html"]
reviewFilterNoReviews come in AliExpress' default order. Star and date sorting are not offered by the source. Example values: "all"all
maxConcurrencyNoProducts processed in parallel. Example values: 5
classifyReviewsNoAdd complaint types (delivery, quality/defect, size/fit, price/value, customer service, packaging, no effect, skin/body reaction, other), sentiment and purchase motive to each review. Reviews in other languages are classified from AliExpress' English translation. Charged per review as review-judged. Example values: true
includeStarOnlyNoAliExpress has many reviews with a star rating but no text or photos. They are skipped (not charged) by default; turn this on to collect them too (charged as review).
reviewsPerProductNoMaximum reviews to collect for each product (charged per review). The form starts at 20 for a quick, low-cost first run; raise it up to 5,000 (default when omitted via API: 100). Example values: 20
complaintThresholdNoMinimum probability (0–1) for a complaint type to be reported. Example values: 0.5
proxyConfigurationNoDefault Apify datacenter proxy works. Example values: {"useApifyProxy":true}
residentialFallbackNoRetry failing requests through residential proxy in the shipping country. Example values: true

Output Schema

ParametersJSON Schema
NameRequiredDescription
tipNoAdvisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key
runIdYesActor run ID
statsNoRun statistics
statusYesRun status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
actorIdYesStable Apify Actor ID from the run record
summaryYesPast-tense summary of the run state
exitCodeNoActor process exit code; populated for terminal states (especially FAILED)
nextStepYesOne primary follow-up action with identifiers interpolated
storagesYesDataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
actorNameNo"username/actor-name"
startedAtNoISO timestamp when the run started
finishedAtNoISO timestamp when the run finished (terminal states only)
statusMessageNoPass-through from Apify run.statusMessage
apifyConsoleUrlNoPersonalized Apify Console link to the run; present only for Console sessions

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, so the safety profile is partially covered. The description adds real context ('No login', AI classification is optional and enriches each review with complaint type/sentiment/motive plus a per-product summary), but it omits the per-review charging model and the fact that runs are asynchronous and may return before completion, both of which are operationally important.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with the substantive information (what is scraped, what classification adds, no login) front-loaded. The opening boilerplate 'calls the Actor ... and retrieves its output results' is filler that repeats the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 12 parameters fully described in the schema and an output schema present, the description does not need to enumerate fields or return values. It covers the data surface and the optional classification mode adequately; the main gap is not flagging the cost-per-review and polling workflow that the schema mentions only in scattered parameter descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; every parameter (productUrls, reviewFilter, classifyReviews, reviewsPerProduct, proxies, etc.) is already documented in the schema. The description adds no format or default detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Scrape AliExpress product reviews – text, English translation, star rating, date, buyer country, option (SKU) and photos') and adds the optional AI classification layer, so an agent understands the output scope. It does not explicitly differentiate itself from close siblings such as leoworks--aliexpress-search-scraper or leoworks--korean-review-classifier, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to choose this tool versus the AliExpress search scraper or the Korean review classifier, nor any prerequisite or exclusion guidance. The only routing hint ('follow `nextStep` to poll via get-actor-run') lives in the waitSecs schema field, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

leoworks--aliexpress-search-scraperleoworks/aliexpress-search-scraperB
Destructive
Inspect

This tool calls the Actor "leoworks/aliexpress-search-scraper" and retrieves its output results. Actor description: Scrape AliExpress search results for any keyword — rank, title, price, discount, sold count, rating, ship-from and ads flagged — up to 60 pages. Rank mode tracks where your products rank for each keyword over time. No login.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoOrder of the search results. Example values: "best_match"best_match
countryNoTwo-letter country code. Results, prices and product IDs depend on the region; the proxy exits in this country. Example values: "US"US
currencyNoThree-letter currency code for prices (e.g. USD, EUR, GBP). Example values: "USD"USD
keywordsYes**REQUIRED** Search terms, one per line (e.g. wireless earbuds, phone case). Example values: ["wireless earbuds"]
maxPagesNo60 products per page. Search mode: an upper bound next to the result cap (default 60 pages). Rank mode: how deep to look for tracked products (default 5 = top 300, up to 60).
waitSecsNoMax seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow `nextStep` to poll via get-actor-run. Set to 0 to fire-and-forget.
includeAdsNoKeep sponsored products in search-mode results (flagged isAd). Organic rank never counts ads. Example values: true
healthCheckNoInternal: fail the run when results look degraded (used by the developer's scheduled checks).
trackProductsNoOptional. Product URLs or IDs (any AliExpress site). When set, the Actor runs in rank mode: one row per keyword × product with its organic rank (ads excluded), position, page, and the change since the previous run — or 'not found within N'. Charged as keyword-checked instead of per result.
maxConcurrencyNoKeywords processed in parallel. Example values: 3
rankHistoryStoreNoKey-value store in your account that keeps the last rank of each keyword × product, so each row shows previousRank, rankChange (positive = moved up) and isNew. Leave empty to turn off. No extra charge. Example values: "aliexpress-rank-history"aliexpress-rank-history
proxyConfigurationNoDefault Apify datacenter proxy (in the shipping country) works. Example values: {"useApifyProxy":true}
residentialFallbackNoRetry failing pages through residential proxy in the shipping country. Example values: true
maxResultsPerKeywordNoStop after this many products per keyword. Applied before the page count. Starts at 20 for a quick, low-cost first run; raise it up to 3,600 (60 pages). Example values: 20

Output Schema

ParametersJSON Schema
NameRequiredDescription
tipNoAdvisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key
runIdYesActor run ID
statsNoRun statistics
statusYesRun status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
actorIdYesStable Apify Actor ID from the run record
summaryYesPast-tense summary of the run state
exitCodeNoActor process exit code; populated for terminal states (especially FAILED)
nextStepYesOne primary follow-up action with identifiers interpolated
storagesYesDataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
actorNameNo"username/actor-name"
startedAtNoISO timestamp when the run started
finishedAtNoISO timestamp when the run finished (terminal states only)
statusMessageNoPass-through from Apify run.statusMessage
apifyConsoleUrlNoPersonalized Apify Console link to the run; present only for Console sessions

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare openWorldHint=true and destructiveHint=true, so the safety profile is partly covered. The description adds useful context ('No login', ads flagged, up to 60 pages), but does not disclose why the tool is destructive (credit consumption per result vs per keyword, actor-run launch) nor that it may return before the run finishes at the waitSecs cap. 'Retrieves its output results' slightly oversells synchronous behavior, though the schema's waitSecs/nextStep text corrects it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the platform and the scraped fields; nothing is redundant or padded. The opening 'calls the Actor ... and retrieves its output results' wrapper is the only dead weight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the schema covers parameters and run polling. What is missing for a 14-parameter, credit-consuming actor is any note about cost model (per-result vs per-keyword) and the asynchronous run lifecycle, both of which matter for correct invocation but are only discoverable inside the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 14 parameters including defaults, enums and the rank-mode trigger. The description only gestures at a couple of concepts (rank mode, ads flagged) without adding syntax or semantics beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete verb and resource ('Scrape AliExpress search results for any keyword') and enumerates the returned fields (rank, title, price, discount, sold count, rating, ship-from, ads), plus the two operating modes (search vs rank). It is clear enough to distinguish from the AliExpress reviews classifier and Naver trackers by platform and data type, though the leading boilerplate sentence ('calls the Actor ... retrieves its output results') adds nothing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage via the mode split ('Rank mode tracks where your products rank ... over time') and 'No login', but never states when to pick this tool over the sibling rank trackers or when rank mode is appropriate versus plain search. The concrete trigger (setting trackProducts) lives only in the schema, so guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

leoworks--kbeauty-ranking-review-monitorleoworks/kbeauty-ranking-review-monitorB
Destructive
Inspect

This tool calls the Actor "leoworks/kbeauty-ranking-review-monitor" and retrieves its output results. Actor description: Track K-beauty bestseller rankings on Olive Young Global (OliveYoung, 올리브영) and Amorepacific's Amore Mall (아모레몰: Sulwhasoo, Laneige, Hera…) and collect cosmetics reviews with optional AI classification — complaint types, sentiment and purchase motive in Korean, English and Japanese. No login.

ParametersJSON Schema
NameRequiredDescriptionDefault
brandsNoOptional. Keep only products of these brands (English or Korean name, e.g. COSRX, 설화수). The whole ranking (up to 100) is searched and the original rank is kept.
sourcesNoWhich bestseller rankings to collect. Leave empty to only collect reviews for the product pages below. Example values: ["oliveyoung_global"]
waitSecsNoMax seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow `nextStep` to poll via get-actor-run. Set to 0 to fire-and-forget.
reviewSortNoAmore Mall supports Newest and Most helpful; other orders fall back to Newest there. Example values: "newest"newest
healthCheckNoInternal: fail the run when results look degraded (used by the developer's scheduled checks).
productUrlsNoOptional. Olive Young Global or Amore Mall product pages to collect reviews for, in addition to the ranked products.
maxConcurrencyNoRankings and products processed in parallel. Example values: 5
amoremallPeriodNoRanking period on Amore Mall. Example values: "daily"daily
classifyReviewsNoAdd complaint types, sentiment and purchase motive to each Korean, English or Japanese review (charged per review as review-judged). Example values: true
rankHistoryStoreNoName of a key-value store in your Apify account that keeps the last snapshot of each ranking. Ranking rows then show `previousRank`, `rankChange` (positive = moved up) and `isNew` (not in the previous ranking). Run on a schedule to track movement. Use a different name per project; leave empty to turn this off. No extra charge. Example values: "kbeauty-ranking-history"kbeauty-ranking-history
amoremallAgeGroupNoBuyer age group for the Amore Mall ranking. Example values: "all"all
amoremallRankingsNoAmore Mall ranking tabs to collect. Example values: ["best_purchased"]
reviewsPerProductNoReviews to collect for each product (0 = rankings only). Charged per review. The form starts at 5 for a quick first run; raise it up to 1,000 (default when omitted via API: 20). Example values: 5
complaintThresholdNoMinimum probability (0–1) for a complaint type to be reported. Example values: 0.5
proxyConfigurationNoDefault Apify datacenter proxy works for both sites. Example values: {"useApifyProxy":true}
amoremallCategoriesNoAmore Mall categories (one ranking per category and ranking type). Example values: ["all"]
residentialFallbackNoRetry failing requests through Korean residential proxy. Example values: true
oliveyoungCategoriesNoBestseller tabs to collect (one ranking per category). Example values: ["all"]
includeProductDetailsNoAdd each Olive Young Global ranking product's information sheet as `productDetails`: full ingredient list, volume, skin type it is made for, country of manufacture, manufacturer, plus all other sheet fields. One extra request per product; no extra charge. Amore Mall rows are not covered.
maxProductsPerRankingNoTop N products of each ranking (rankings have up to 100 products). Each product row is charged as ranking-item. The form starts at 5 for a quick first run; raise it up to 100 (default when omitted via API: 20). Example values: 5

Output Schema

ParametersJSON Schema
NameRequiredDescription
tipNoAdvisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key
runIdYesActor run ID
statsNoRun statistics
statusYesRun status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
actorIdYesStable Apify Actor ID from the run record
summaryYesPast-tense summary of the run state
exitCodeNoActor process exit code; populated for terminal states (especially FAILED)
nextStepYesOne primary follow-up action with identifiers interpolated
storagesYesDataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
actorNameNo"username/actor-name"
startedAtNoISO timestamp when the run started
finishedAtNoISO timestamp when the run finished (terminal states only)
statusMessageNoPass-through from Apify run.statusMessage
apifyConsoleUrlNoPersonalized Apify Console link to the run; present only for Console sessions

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, lowering the disclosure bar. The description adds the useful behavioral fact that no login is required, but it does not explain the run lifecycle, the per-review/per-ranking-item charging that the schema mentions, or why the operation is destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences that front-load the actor identity and then the capability summary; no padding. Slightly boilerplate in the first clause ('This tool calls the Actor ... and retrieves its output results'), but nothing wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the 20-parameter schema is fully documented. The description covers sources, review collection and AI classification adequately, though it omits the asynchronous run/polling behavior that an agent needs for long runs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all 20 parameters, so the schema fully documents names, enums, defaults and trade-offs like cost and proxy behavior. The description adds no parameter meaning of its own, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a concrete verb+resource: tracking K-beauty bestseller rankings on Olive Young Global and Amore Mall and collecting reviews with optional AI classification. That is specific and understandable. It does not, however, differentiate itself from siblings such as leoworks--naver-shopping-rank-tracker or leoworks--korean-review-classifier, so an agent must infer the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of when not to use it, and no reference to any alternative tool. The 'No login' note is a fact about the actor, not usage guidance. The agent gets no help choosing between this and the other ranking/review siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

leoworks--korean-review-classifierleoworks/korean-review-classifierA
Destructive
Inspect

This tool calls the Actor "leoworks/korean-review-classifier" and retrieves its output results. Actor description: Classify Korean customer reviews — Coupang reviews (쿠팡 리뷰), Olive Young reviews, Naver Shopping and Naver Place reviews — into complaint types, sentiment and purchase motive with probabilities. Korean review sentiment analysis for any review scraper's dataset — no prompts, no LLM key.

ParametersJSON Schema
NameRequiredDescriptionDefault
textsNoPaste review texts directly (one per line). Use this OR “Reviews dataset”. Example values: ["배송이 일주일이나 걸렸고 박스가 다 찢어져서 왔어요.","항상 쓰던 거라 이번에도 재구매했어요. 할인할 때 사니 좋네요!"]
idFieldsNoFields copied unchanged from each input item to the output so you can join results back (e.g. reviewId, productId). Leave empty to auto-pick reviewId/id/url.
maxItemsNoClassify at most this many reviews (0 = all).
waitSecsNoMax seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow `nextStep` to poll via get-actor-run. Set to 0 to fire-and-forget.
datasetIdNoAn Apify dataset containing reviews — for example the output of a Coupang, Naver Shopping, Naver Place or Olive Young review scraper. Use this OR “Review texts”.
textFieldNoField holding the review text. Leave empty to auto-detect (content, text, review, body, reviewText, …).
outputModeNoMinimal mode returns only label keys — smaller and easier to aggregate. Example values: "full"full
healthCheckNoInternal: fail the run when results look degraded (used by the developer's scheduled checks).
customLabelsNoUp to 10 extra yes/no labels (each up to 200 characters) written in plain language (English or Korean), e.g. “mentions the smell”, “배송 기사 불친절 언급”. Each gets a probability.
maxConcurrencyNoReviews classified in parallel. Example values: 10
extraTextFieldsNoFields to prepend to the text (up to 5), e.g. `title` for Coupang review headlines. Leave empty if unsure.
summaryGroupFieldNoField in your dataset that identifies the product (e.g. `productId`, `productName`, `placeId`). The run then saves a REPORT record with, per product: complaint rate and complaint mix, sentiment shares, purchase motives, average rating and 3 example complaints. Leave empty to detect it automatically (overall summary only if none is found). No extra charge.
complaintThresholdNoMinimum probability (0–1) for a complaint type or custom label to be reported. Raise it for fewer, surer labels. Example values: 0.5

Output Schema

ParametersJSON Schema
NameRequiredDescription
tipNoAdvisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key
runIdYesActor run ID
statsNoRun statistics
statusYesRun status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
actorIdYesStable Apify Actor ID from the run record
summaryYesPast-tense summary of the run state
exitCodeNoActor process exit code; populated for terminal states (especially FAILED)
nextStepYesOne primary follow-up action with identifiers interpolated
storagesYesDataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
actorNameNo"username/actor-name"
startedAtNoISO timestamp when the run started
finishedAtNoISO timestamp when the run finished (terminal states only)
statusMessageNoPass-through from Apify run.statusMessage
apifyConsoleUrlNoPersonalized Apify Console link to the run; present only for Console sessions

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true, readOnlyHint=false and openWorldHint=true, so the safety profile is partly structured. The description adds only 'no prompts, no LLM key' as a behavioral trait, and does not disclose that this launches a billable Actor run, its cost, or auth/rate-limit characteristics. With annotations covering part of the burden, this is adequate but thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the actual classification capability and compact overall. The first clause ('calls the Actor ... and retrieves its output results') is boilerplate that restates the name, but the total length is small and nothing is bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 parameters with full schema coverage, an output schema, and annotations, the description covers the essential purpose and the source platforms. It leaves the billable-run behavior implicit, but the return format is handled by the output schema and parameter behavior by the schema, so it is largely complete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the 13 parameters is already documented in the schema (texts vs datasetId, idFields, summaryGroupField, complaintThreshold, etc.). The description adds no parameter-level meaning beyond what the schema provides, which is the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (classify) and resource (Korean customer reviews from Coupang, Olive Young, Naver Shopping/Place) and states the output categories (complaint types, sentiment, purchase motive with probabilities). This distinguishes it from siblings like the Aliexpress classifier and the ranking/monitor tools. The opening boilerplate about calling the Actor adds no value but does not obscure the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies context ('Korean review sentiment analysis for any review scraper's dataset') which suggests when it is applicable, but there is no explicit when-to-use vs the sibling aliexpress-reviews-classifier or other classifiers, and no exclusions. Usage is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

leoworks--naver-ai-briefing-monitorleoworks/naver-ai-briefing-monitorB
Destructive
Inspect

This tool calls the Actor "leoworks/naver-ai-briefing-monitor" and retrieves its output results. Actor description: Track your brand in Naver's AI briefing (네이버 AI 브리핑), the generative answer atop Korea's #1 search engine — Google AI Overviews for Korea. Capture the answer, cited sources, AI ads and related questions, and see if your brand or rivals are mentioned and recommended (GEO). No login.

ParametersJSON Schema
NameRequiredDescriptionDefault
queriesYes**REQUIRED** Korean search queries to check. Informational, how-to, review and comparison queries trigger AI briefings most often (see README). Example values: ["콜라겐 효과","전기포트 세척 방법"]
surfaceNoPC search shows AI briefings slightly more often in our tests. Example values: "pc"pc
waitSecsNoMax seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow `nextStep` to poll via get-actor-run. Set to 0 to fire-and-forget.
brandNamesNoBrands to check in each AI briefing (Korean or English).
includeAdsNoAlso request the ads Naver attaches to the AI briefing. Example values: true
healthCheckNoInternal: fail the run when results look degraded (used by the developer's scheduled checks).
maxConcurrencyNoQueries checked in parallel. Example values: 5
competitorNamesNoCompetitors to check the same way. Brands + competitors: up to 10 in total.
proxyConfigurationNoDefault Apify datacenter proxy works for most users. Example values: {"useApifyProxy":true}
residentialFallbackNoRetry failing requests through Korean residential proxy. Example values: true

Output Schema

ParametersJSON Schema
NameRequiredDescription
tipNoAdvisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key
runIdYesActor run ID
statsNoRun statistics
statusYesRun status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
actorIdYesStable Apify Actor ID from the run record
summaryYesPast-tense summary of the run state
exitCodeNoActor process exit code; populated for terminal states (especially FAILED)
nextStepYesOne primary follow-up action with identifiers interpolated
storagesYesDataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
actorNameNo"username/actor-name"
startedAtNoISO timestamp when the run started
finishedAtNoISO timestamp when the run finished (terminal states only)
statusMessageNoPass-through from Apify run.statusMessage
apifyConsoleUrlNoPersonalized Apify Console link to the run; present only for Console sessions

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare openWorldHint=true and destructiveHint=true, so safety behavior is partly covered. The description adds useful context ('No login') and confirms it returns Actor output. However, it does not disclose that this is a scraping run subject to proxy fallback, wait caps, or that destructiveHint is flagged despite being a read-style monitor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loads the Actor call before the capability summary. The boilerplate first sentence adds little, but the overall length is appropriate and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and 100% schema coverage, the description only needs to convey purpose and usage context, which it largely does. The main gap is the absence of when-to-use guidance relative to sibling monitors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all ten parameters are documented in the schema itself (including waitSecs batching behavior and brand/competitor limits). The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific Actor and states its function: tracking a brand in Naver's AI briefing and capturing the answer, cited sources, ads, and related questions. This clearly differentiates it from siblings like naver-blog-brand-monitor or naver-shopping-rank-tracker. The opening wrapper sentence ('calls the Actor... and retrieves its output results') is generic boilerplate, but the embedded Actor description carries the real purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description never states when to choose this tool versus alternatives such as the other leoworks brand/review monitors. It implies a GEO/brand-tracking use case but gives no explicit trigger, prerequisites, or exclusions. An agent must infer its fit from the capability text alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

leoworks--naver-blog-brand-monitorleoworks/naver-blog-brand-monitorA
Destructive
Inspect

This tool calls the Actor "leoworks/naver-blog-brand-monitor" and retrieves its output results. Actor description: Monitor a brand or product on Naver Blog (네이버 블로그), Korea's biggest review platform. This Naver Blog scraper collects posts by keyword and labels each one sponsored (체험단/협찬) or self-paid with evidence, plus sentiment and brand mentions — Korean social listening, no login.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoMost recent posts first (good for monitoring) or Naver relevance order. Example values: "recent"recent
judgeNoWhich judgments to add (charged as post-judged per post when any is on): sponsored (체험단/협찬 vs 내돈내산), sentiment, brandMention. Example values: {"sponsored":true,"sentiment":true,"brandMention":true}
queriesYes**REQUIRED** Naver Blog search queries — usually your brand or product name in Korean (e.g. 라운드랩 선크림, 다이슨 에어랩 후기). Example values: ["라운드랩 선크림"]
dateFromNoOnly posts published on or after this date (YYYY-MM-DD).
waitSecsNoMax seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow `nextStep` to poll via get-actor-run. Set to 0 to fire-and-forget.
ncpApiKeyNoOptional secret key paired with the key ID above.
brandNamesNoBrands whose mention you want checked in every post (Korean or English, e.g. 라운드랩, Round Lab). Up to 10. Example values: ["라운드랩"]
healthCheckNoInternal: fail the run when results look degraded (used by the developer's scheduled checks).
ncpApiKeyIdNoOptional. Use your own NAVER Cloud (NCP) NAVER API Hub key for post discovery instead of web search — steadier for large daily volumes. See README.
maxConcurrencyNoPosts processed in parallel. Example values: 10
includeFullTextNoAdd the full post text to each row (larger output).
maxPostsPerQueryNoUp to 1,000 posts per query. The form starts at 8 for a quick, low-cost first run (default when omitted via API: 50). Example values: 8
proxyConfigurationNoDefault Apify datacenter proxy works for most users. Example values: {"useApifyProxy":true}
residentialFallbackNoRetry failing requests through Korean residential proxy. Example values: true

Output Schema

ParametersJSON Schema
NameRequiredDescription
tipNoAdvisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key
runIdYesActor run ID
statsNoRun statistics
statusYesRun status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
actorIdYesStable Apify Actor ID from the run record
summaryYesPast-tense summary of the run state
exitCodeNoActor process exit code; populated for terminal states (especially FAILED)
nextStepYesOne primary follow-up action with identifiers interpolated
storagesYesDataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
actorNameNo"username/actor-name"
startedAtNoISO timestamp when the run started
finishedAtNoISO timestamp when the run finished (terminal states only)
statusMessageNoPass-through from Apify run.statusMessage
apifyConsoleUrlNoPersonalized Apify Console link to the run; present only for Console sessions

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (openWorldHint=true, destructiveHint=true, readOnlyHint=false), so the description need not repeat it. It adds useful behavioral context — posts are labeled sponsored/self-paid with evidence, plus sentiment and brand mentions, and no login is required — but says nothing about billing/credit consumption or long-run polling, which matter for a paid Apify Actor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, well-sized, with the core function front-loaded after a short meta clause. The opening 'calls the Actor ... and retrieves its output results' is boilerplate filler, but nothing else is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter tool with an output schema, return values need no explanation, and the description covers the scraping scope and what each result contains. The main omission is cost/credit behavior for the paid judgments, but annotations and schema carry most of the remaining burden.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across 14 parameters, so the schema already documents every field (queries, judge, brands, date range, proxy options). The description adds only indirect meaning ('posts by keyword' maps to queries, the labels map to the judge flags) and no syntax or defaults, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: it queries Naver Blog posts by keyword and labels each one sponsored/self-paid with sentiment and brand mentions. The Naver Blog scope cleanly distinguishes it from siblings like naver-shopping-rank-tracker and korean-review-classifier. It stops short of naming a sibling alternative, so it does not fully earn a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case (Korean social listening / brand monitoring on Naver Blog) and notes 'no login,' but never states when to pick this over siblings such as korean-review-classifier or kbeauty-ranking-review-monitor, nor any exclusions. Usage is inferable but not spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

leoworks--naver-shopping-rank-trackerleoworks/naver-shopping-rank-trackerA
Destructive
Inspect

This tool calls the Actor "leoworks/naver-shopping-rank-tracker" and retrieves its output results. Actor description: Track where your products, URLs or Smartstore stores rank in Naver Shopping search for any Korean keyword (네이버 쇼핑 순위, 스마트스토어 순위). Organic rank 1–35 plus ad slot position, price, reviews and rating — a Naver Shopping scraper built for scheduled rank monitoring. No login.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetsYes**REQUIRED** One entry per keyword × target. `keyword` = Korean search keyword. `match` = what to find: a product URL (smartstore.naver.com/.../products/123, brand.naver.com/..., search.shopping.naver.com/catalog/123, or your own mall's product URL), a numeric product ID (Naver product/catalog ID or smartstore product number), or a store name / smartstore slug. Leave `match` empty to just snapshot the keyword (use with Top competitors). Example values: [{"keyword":"무선이어폰","match":"브리츠 공식몰"},{"keyword":"무선이어폰","match":"https://search.shopping.naver.com/catalog/56796984706"}]
waitSecsNoMax seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow `nextStep` to poll via get-actor-run. Set to 0 to fire-and-forget.
includeAdsNoAlso report the target's position among sponsored (ad) slots as `adRank`. Example values: true
outputModeNo`full` = all fields. `minimal` = rank, price, store and title only (smaller, faster to process). Example values: "full"full
healthCheckNoInternal: fail the run when results look degraded (used by the developer's scheduled checks).
maxConcurrencyNoHow many keywords to check in parallel. Example values: 5
topCompetitorsNoAttach the top N organic products for each keyword (0–40). Charged per item as `competitor-item`. Attached once per keyword.
rankHistoryStoreNoName of a key-value store in your Apify account that keeps the last organic rank of each keyword × target. Each row then shows `previousOrganicRank`, `rankChange` (positive = moved up) and `isNew` (found now, not found last time). Run on a schedule to track movement. Use a different name per project; leave empty to turn this off. No extra charge. Example values: "naver-shopping-rank-history"naver-shopping-rank-history
proxyConfigurationNoDefault (Apify datacenter proxy) works for most users. Example values: {"useApifyProxy":true}
residentialFallbackNoIf a keyword keeps failing on the default proxy, retry it through Korean residential proxy. Example values: true

Output Schema

ParametersJSON Schema
NameRequiredDescription
tipNoAdvisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key
runIdYesActor run ID
statsNoRun statistics
statusYesRun status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
actorIdYesStable Apify Actor ID from the run record
summaryYesPast-tense summary of the run state
exitCodeNoActor process exit code; populated for terminal states (especially FAILED)
nextStepYesOne primary follow-up action with identifiers interpolated
storagesYesDataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
actorNameNo"username/actor-name"
startedAtNoISO timestamp when the run started
finishedAtNoISO timestamp when the run finished (terminal states only)
statusMessageNoPass-through from Apify run.statusMessage
apifyConsoleUrlNoPersonalized Apify Console link to the run; present only for Console sessions

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, and the description adds real context beyond them: 'No login' (auth requirement), per-item charging for topCompetitors ('competitor-item'), and 'No extra charge' plus stateful behavior for rankHistoryStore (previousOrganicRank/rankChange/isNew persisted across runs). The destructive hint is implicitly explained by that key-value-store write, though the description never states the write explicitly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences plus a compact Actor blurb, front-loaded with the call semantics and immediately followed by the substantive purpose. There is minor redundancy in the boilerplate first sentence, but nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and the description covers purpose, auth, cost model, and scheduling. The remaining gap is selection guidance against the generic siblings (get-actor-run, get-dataset-items), which the waitSecs/nextStep polling note in the schema partially covers but the description does not reinforce.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all 10 parameters, including nested targets and proxyConfiguration, are documented in the schema itself. The description adds no syntax, format, or default information beyond what the schema already provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence is boilerplate ('calls the Actor ... and retrieves its output results'), but the embedded Actor description supplies a concrete verb+resource: tracking product/URL/Smartstore rank in Naver Shopping for Korean keywords, including the data returned (organic rank 1–35, ad slot, price, reviews). That is enough to distinguish it from the other Naver siblings (ai-briefing-monitor, blog-brand-monitor), though the differentiation comes from domain wording rather than an explicit contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: 'a Naver Shopping scraper built for scheduled rank monitoring' and the rankHistoryStore note 'Run on a schedule to track movement' tell the agent the intended scenario. There is no explicit when-not-to-use and no named alternative among the siblings (e.g. when to poll via get-actor-run instead of calling this tool directly), so guidance stays at the implied level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updates
    • First observedabort-actor-run
    • First observedget-actor-run
    • First observedget-dataset-items
    • First observedget-key-value-store-record
    • First observedleoworks--aliexpress-reviews-classifier
    • First observedleoworks--aliexpress-search-scraper
    • First observedleoworks--kbeauty-ranking-review-monitor
    • First observedleoworks--korean-review-classifier
    • First observedleoworks--naver-ai-briefing-monitor
    • First observedleoworks--naver-blog-brand-monitor
    • First observedleoworks--naver-shopping-rank-tracker

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Real-time Korean web data for AI assistants — Naver Place reviews, Melon charts, Daangn/Bunjang marketplace, Naver News, Musinsa fashion rankings. 7 tools powered by Apify actors.
    7
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    This MCP server equips AI agents with ten web-data tools for web search, page reading, site crawling, contact and tech-stack detection, company profiling, e-mail/DNS security checks, e-mail validation, package health, and raw Google search. Each call runs Actors on the user's own Apify account, returning trimmed, readable dataset rows.
    10
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Use 3,000+ pre-built cloud tools from Apify, known as Actors, to extract data from websites, e-commerce, social media, search engines, maps, and more
    10
    32,599 npm
    9,604
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Seven remote MCP servers exposing 51 published Apify scrapers as agent tools: company diligence, social listening, recruiting, real estate, lead generation, e-commerce and academic research. Billed per result, and a call that returns nothing is never charged.
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.