@datadive-tools/mcp 0.13.0 → 0.14.0

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/dist/lib.js CHANGED
@@ -139,7 +139,7 @@ function extractMessage(body) {
139
139
  }
140
140
 
141
141
  // package.json
142
- var version = "0.13.0";
142
+ var version = "0.14.0";
143
143
 
144
144
  // src/http/client.ts
145
145
  var PKG_VERSION = version;
@@ -457,22 +457,33 @@ var listRankRadarsTool = {
457
457
  // src/tools/get-rank-radar-data.ts
458
458
  import { z as z7 } from "zod";
459
459
  var ISO_DATE = /^\d{4}-\d{2}-\d{2}$/;
460
+ var RANK_RADAR_KEYWORDS_MAX_PAGE_SIZE = 100;
461
+ var RANK_RADAR_MAX_DATE_RANGE_DAYS = 90;
460
462
  var inputSchema7 = {
461
463
  rankRadarId: z7.string().uuid().describe("The Rank Radar UUID (from `list_rank_radars`)."),
462
464
  startDate: z7.string().regex(ISO_DATE, "startDate must be in yyyy-mm-dd format").describe("Start date for the ranking data range, yyyy-mm-dd (e.g. 2024-03-26)."),
463
- endDate: z7.string().regex(ISO_DATE, "endDate must be in yyyy-mm-dd format").describe("End date for the ranking data range, yyyy-mm-dd (e.g. 2024-04-26). Must be on or after startDate.")
465
+ endDate: z7.string().regex(ISO_DATE, "endDate must be in yyyy-mm-dd format").describe(
466
+ `End date for the ranking data range, yyyy-mm-dd (e.g. 2024-04-26). Must be on or after startDate, and at most ${RANK_RADAR_MAX_DATE_RANGE_DAYS} days after it.`
467
+ ),
468
+ currentPage: z7.number().int().min(1).optional().describe("Page of keywords, 1-indexed. Defaults to 1."),
469
+ pageSize: z7.number().int().min(1).max(RANK_RADAR_KEYWORDS_MAX_PAGE_SIZE).optional().describe(`Keywords per page (max ${RANK_RADAR_KEYWORDS_MAX_PAGE_SIZE}). Defaults to 20.`)
464
470
  };
465
471
  var getRankRadarDataTool = {
466
472
  name: "get_rank_radar_data",
467
473
  title: "Get Keyword Rankings for a Rank Radar",
468
- description: "Use this to analyze keyword ranking trends over time. Requires startDate and endDate (yyyy-mm-dd). Retrieves historical keyword ranking data for the specified Rank Radar within the date range. Returns an array of tracked keywords; each has id, keyword, searchVolume, ranks (per-day { date, organicRank, impressionRank }), and any highlight annotations. Use after `list_rank_radars` to discover a `rankRadarId`.",
474
+ 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. Results are paged by keyword: \`data\` holds one page of tracked keywords, and the response carries currentPage, pageSize, total, lastPage, hasNext and hasPrev. \`total\` is the Rank Radar's keyword count; to read every keyword, call again with \`currentPage\` + 1 while \`hasNext\` is true, using \`pageSize\` ${RANK_RADAR_KEYWORDS_MAX_PAGE_SIZE} for large Rank Radars. Each keyword has id, keyword, searchVolume, relevancy, ranks (per-day { date, organicRank, sponsoredRank, impressionRank }), and any highlight annotations. Paused keywords are not included. Use after \`list_rank_radars\` to discover a \`rankRadarId\`.`,
469
475
  inputSchema: inputSchema7,
470
476
  annotations: { readOnlyHint: true },
471
477
  handler: async (args, ctx) => {
472
478
  return await httpGet(
473
479
  { config: ctx.config, toolName: "get_rank_radar_data" },
474
480
  `/v1/niches/rank-radars/${encodeURIComponent(args.rankRadarId)}`,
475
- { startDate: args.startDate, endDate: args.endDate }
481
+ {
482
+ startDate: args.startDate,
483
+ endDate: args.endDate,
484
+ currentPage: args.currentPage,
485
+ pageSize: args.pageSize
486
+ }
476
487
  );
477
488
  }
478
489
  };