@datadive-tools/mcp 0.16.0 → 0.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -103,7 +103,7 @@ niches, plus pagination metadata. If you don't, see Troubleshooting below.
103
103
  | `get_niche_competitors` | Competitor ASINs, titles, BSR, category and niche statistics (sales, revenue, ratings, opportunity score). |
104
104
  | `get_ranking_juice` | DataDive proprietary ranking-juice metric per competitor (current vs optimized listing). |
105
105
  | `list_rank_radars` | Paginated list of rank radars. Filter by `nicheId`, `searchText` or `status` (`ACTIVE` by default, plus `PAUSED`, `ARCHIVED`, `ALL`). |
106
- | `get_rank_radar_data` | Historical keyword rankings for a rank radar within a `startDate`/`endDate` range (max 90 days). Paged by keyword: walk `currentPage` while `hasNext` is true, `pageSize` up to 100. |
106
+ | `get_rank_radar_data` | Historical keyword rankings for a rank radar within a `startDate`/`endDate` range (max 90 days). Returns every active keyword by default; pass `currentPage`/`pageSize` (up to 100) to read one page at a time. |
107
107
  | `get_rank_radar_sqp_data` | Amazon Search Query Performance per Rank Radar keyword: search volume, impressions, clicks, cart adds, purchases — market total vs this ASIN family. Same date range and paging as `get_rank_radar_data`. |
108
108
  | `get_rank_radar_ppc_data` | Sponsored Products metrics per Rank Radar keyword: sponsored rank, spend, sales, ACOS, CPC, match types; optional per-campaign breakdown. Same date range and paging as `get_rank_radar_data`. |
109
109
  | `create_niche_dive` | **Spends dive tokens.** Starts new niche research from a seed ASIN. Async — returns a `diveId` to poll with `get_dive_status`. Requires `confirm: true`. |
package/dist/index.js CHANGED
@@ -144,7 +144,7 @@ function extractMessage(body) {
144
144
  }
145
145
 
146
146
  // package.json
147
- var version = "0.16.0";
147
+ var version = "0.16.1";
148
148
 
149
149
  // src/http/client.ts
150
150
  var PKG_VERSION = version;
@@ -515,13 +515,41 @@ function rankRadarKeywordQuery(args) {
515
515
 
516
516
  // src/tools/get-rank-radar-data.ts
517
517
  var inputSchema7 = rankRadarKeywordQueryInputSchema;
518
+ async function readAllKeywords(args, ctx) {
519
+ const request = { config: ctx.config, toolName: "get_rank_radar_data" };
520
+ const path = rankRadarPath(args.rankRadarId);
521
+ const keywords = [];
522
+ let page;
523
+ let currentPage = 1;
524
+ do {
525
+ page = await httpGet(
526
+ request,
527
+ path,
528
+ rankRadarKeywordQuery({ ...args, currentPage, pageSize: RANK_RADAR_KEYWORDS_MAX_PAGE_SIZE })
529
+ );
530
+ keywords.push(...page.data ?? []);
531
+ currentPage++;
532
+ } while (page.hasNext && currentPage <= page.lastPage && (page.data?.length ?? 0) > 0);
533
+ return {
534
+ data: keywords,
535
+ currentPage: 1,
536
+ pageSize: keywords.length,
537
+ total: page.total,
538
+ lastPage: 1,
539
+ hasNext: false,
540
+ hasPrev: false
541
+ };
542
+ }
518
543
  var getRankRadarDataTool = {
519
544
  name: "get_rank_radar_data",
520
545
  title: "Get Keyword Rankings for a Rank Radar",
521
- description: `Use this to analyze keyword ranking trends over time. Requires startDate and endDate (yyyy-mm-dd), at most ${RANK_RADAR_MAX_DATE_RANGE_DAYS} days apart. Retrieves historical keyword ranking data for the specified Rank Radar within the date range. ${RANK_RADAR_KEYWORD_PAGING_NOTE} Each keyword has id, keyword, searchVolume, relevancy, ranks (per-day { date, organicRank, sponsoredRank, impressionRank }), and any highlight annotations. A rank of 101 means the product was not in the top 100 results that day. For PPC metrics use \`get_rank_radar_ppc_data\`; for Search Query Performance use \`get_rank_radar_sqp_data\`. Use after \`list_rank_radars\` to discover a \`rankRadarId\`.`,
546
+ description: `Use this to analyze keyword ranking trends over time. Requires startDate and endDate (yyyy-mm-dd), at most ${RANK_RADAR_MAX_DATE_RANGE_DAYS} days apart. Retrieves historical keyword ranking data for the specified Rank Radar within the date range. Without \`currentPage\` and \`pageSize\` it returns every active keyword in one result. To read one page instead \u2014 faster for large Rank Radars \u2014 pass \`currentPage\` and/or \`pageSize\` (max ${RANK_RADAR_KEYWORDS_MAX_PAGE_SIZE}) and continue with \`currentPage\` + 1 while \`hasNext\` is true. The response carries currentPage, pageSize, total, lastPage, hasNext and hasPrev; \`total\` is the Rank Radar's active keyword count. Paused keywords are not included. Each keyword has id, keyword, searchVolume, relevancy, ranks (per-day { date, organicRank, sponsoredRank, impressionRank }), and any highlight annotations. A rank of 101 means the product was not in the top 100 results that day. For PPC metrics use \`get_rank_radar_ppc_data\`; for Search Query Performance use \`get_rank_radar_sqp_data\`. Use after \`list_rank_radars\` to discover a \`rankRadarId\`.`,
522
547
  inputSchema: inputSchema7,
523
548
  annotations: { readOnlyHint: true },
524
549
  handler: async (args, ctx) => {
550
+ if (args.currentPage === void 0 && args.pageSize === void 0) {
551
+ return await readAllKeywords(args, ctx);
552
+ }
525
553
  return await httpGet(
526
554
  { config: ctx.config, toolName: "get_rank_radar_data" },
527
555
  rankRadarPath(args.rankRadarId),
@@ -1371,6 +1399,13 @@ var allTools = [
1371
1399
 
1372
1400
  // src/whats-new.ts
1373
1401
  var WHATS_NEW = [
1402
+ {
1403
+ version: "0.16.1",
1404
+ released: "2026-09-29",
1405
+ items: [
1406
+ "`get_rank_radar_data` returns every tracked keyword of a Rank Radar in one answer again, also in AI apps that still show its older inputs. Pass `currentPage` / `pageSize` to read one page at a time."
1407
+ ]
1408
+ },
1374
1409
  {
1375
1410
  version: "0.16.0",
1376
1411
  released: "2026-09-28",