@datadive-tools/mcp 0.9.0 → 0.11.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/README.md CHANGED
@@ -100,14 +100,23 @@ niches, plus pagination metadata. If you don't, see Troubleshooting below.
100
100
  | `list_niches` | Paginated list of your niches. Discovery step — returns `nicheId`s for the niche-scoped tools below. |
101
101
  | `get_niche_keywords` | Master keyword list for a niche: search volume, relevancy, competitor ASIN ranks. |
102
102
  | `get_niche_roots` | Keyword lexical roots for a niche — high-impact words with frequency and broad search volume. |
103
- | `get_niche_competitors` | Competitor ASINs and niche statistics (sales, revenue, ratings, opportunity score). |
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
- | `list_rank_radars` | Paginated list of rank radars. Filter by `nicheId` or `status`. |
105
+ | `list_rank_radars` | Paginated list of rank radars. Filter by `nicheId`, `searchText` or `status` (`ACTIVE` by default, plus `PAUSED`, `ARCHIVED`, `ALL`). |
106
106
  | `get_rank_radar_data` | Historical keyword rankings for a rank radar within a `startDate`/`endDate` range. |
107
107
  | `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`. |
108
108
  | `redive_niche` | **Spends dive tokens.** Refreshes an existing niche with current data — either the same competitors or a newly discovered set. Async — returns a `diveId` to poll with `get_dive_status`. Requires `confirm: true`. |
109
109
  | `get_dive_status` | Poll a dive started by `create_niche_dive` or `redive_niche`: `in_progress`, `success` (carries the `nicheId`), or `error`. |
110
110
  | `create_rank_radar` | **Spends Search Term tokens.** Starts tracking keyword rankings for an ASIN in a niche. Returns a `rankRadarId`. Requires `confirm: true`. |
111
+ | `add_rank_radar_search_terms` | Starts tracking extra keywords on an existing rank radar. Takes one Daily Tracked Keywords slot per new keyword; reversible with `pause_rank_radar_search_terms`. |
112
+ | `pause_rank_radar_search_terms` | Pauses individual keywords of a rank radar, keeping their history and freeing their tracking slots. Takes keyword ids from `get_rank_radar_data`. |
113
+ | `resume_rank_radar_search_terms` | Restarts tracking on paused keywords of a rank radar. Takes back one tracking slot each. |
114
+ | `pause_rank_radar` | Pauses a whole rank radar (what the API calls archiving — listed under `status: PAUSED`, not `ARCHIVED`). Tracking stops, the history is kept, and the tracking slots are freed. Reversible with `resume_rank_radar`. |
115
+ | `resume_rank_radar` | Reactivates a paused rank radar, restoring as many keywords as the remaining quota allows (most relevant first). |
116
+ | `delete_rank_radar` | **Destroys ranking history.** Deletes a rank radar permanently (listed under `status: ARCHIVED`) and frees its tracking slots. Requires `confirm: true` — prefer `pause_rank_radar` if the data may be wanted later. |
117
+ | `delete_niche` | **Destroys niche data.** Deletes a niche with its keywords, competitors and dive history; spent dive tokens are not refunded. Blocked while a rank radar uses the niche. Requires `confirm: true`. |
118
+ | `generate_listing_copy` | **Spends an AI Copywriter prompt.** Drafts an optimised title, bullets and description from a niche's keyword research. Nothing is published to Amazon. Async — returns a `generationId`. Requires `confirm: true`. |
119
+ | `get_listing_copy_generation_status` | Poll a draft started by `generate_listing_copy`: `generating`, `complete` (carries the generated copy), or `failed`. Free to poll. |
111
120
  | `list_seller_profiles` | Paginated list of connected Amazon seller accounts. Discovery step — returns the `sellerId` + `marketplace` the seller-scoped tools below (and the alert tools) need. |
112
121
  | `get_seller_catalog` | Paginated catalog of a seller's own ASINs. Filter by `search`, `brand`, and `status` (Active by default). |
113
122
  | `get_seller_listing_changes` | Paginated price/content/image changes on a seller's listings. Filter by `types`, `asin`, `brand`, `search`, and a date range; optionally include ranking/conversion `correlation`. |
@@ -118,22 +127,38 @@ niches, plus pagination metadata. If you don't, see Troubleshooting below.
118
127
  | `list_usage` | Paginated billable usage logs (token-consumption events). Filter by `type`, `search` (user), and `startDate`/`endDate`. |
119
128
 
120
129
  All data is scoped to the organization that owns the API key. Most tools are
121
- read-only; the three tools below spend tokens (`get_dive_status` only polls a
122
- dive and is read-only) — see
123
- [Creating dives & rank radars](#creating-dives--rank-radars).
130
+ read-only. The tools that change something are marked above; the ones that
131
+ cannot be undone also require an explicit `confirm: true` — see
132
+ [Tools that change something](#tools-that-change-something).
124
133
 
125
- ### Creating dives & rank radars
134
+ ### Tools that change something
126
135
 
127
- `create_niche_dive`, `redive_niche` and `create_rank_radar` **consume billable
128
- tokens and cannot be undone**, so they require an explicit `confirm: true`
129
- argument. The assistant should confirm the cost with you before passing it. The
130
- amount scales with `numberOfCompetitors` (dives and re-dives) /
131
- `numberOfKeywords` (rank radars). Check remaining balance any time with
132
- `get_quota`.
136
+ Six tools **cannot be undone**, so they require an explicit `confirm: true`
137
+ argument. Called without it, they change nothing and return a note asking the
138
+ assistant to confirm the cost with you first:
139
+
140
+ - `create_niche_dive`, `redive_niche` — spend dive tokens (scales with
141
+ `numberOfCompetitors`).
142
+ - `create_rank_radar` — spends Search Term tokens (scales with
143
+ `numberOfKeywords`).
144
+ - `generate_listing_copy` — spends one AI Copywriter prompt per call.
145
+ - `delete_niche`, `delete_rank_radar` — destroy data permanently.
146
+
147
+ Check your remaining balance any time with `get_quota`.
148
+
149
+ The other write tools — `pause_rank_radar`, `resume_rank_radar` and the three
150
+ `*_rank_radar_search_terms` tools — need no confirmation. They only move Daily
151
+ Tracked Keywords capacity, which is freed again when you pause, and each is
152
+ undone by its counterpart.
133
153
 
134
154
  To skip the per-call confirmation (e.g. in an automated setup), set
135
- `DATADIVE_AUTO_CONFIRM_WRITES=true` in your client config — then these tools run
136
- without `confirm`.
155
+ `DATADIVE_AUTO_CONFIRM_WRITES=true` in your client config — then all six run
156
+ without `confirm`, deletes included.
157
+
158
+ None of the three is **safe to retry** — each call spends tokens again and
159
+ creates a separate dive / re-dive / Rank Radar, even with identical arguments. If
160
+ a call errors or times out, check `get_dive_status` / `list_niches` /
161
+ `list_rank_radars` for what already exists before calling again.
137
162
 
138
163
  Dives are **asynchronous**. `create_niche_dive` returns a `diveId` and an
139
164
  estimated completion time immediately; poll `get_dive_status` with that `diveId`
@@ -161,7 +186,7 @@ niche follow the refreshed data. It takes a `mode`:
161
186
  |---|---|---|---|
162
187
  | `DATADIVE_API_KEY` | yes | — | Generate at https://2.datadive.tools/api-key |
163
188
  | `DATADIVE_API_BASE_URL` | no | `https://api.datadive.tools` | Override for staging |
164
- | `DATADIVE_AUTO_CONFIRM_WRITES` | no | `false` | Set truthy to let `create_niche_dive` / `create_rank_radar` run without `confirm: true`. |
189
+ | `DATADIVE_AUTO_CONFIRM_WRITES` | no | `false` | Set truthy to let every `confirm: true` tool run without it — dives, rank radar creation, listing copy **and the two deletes**. |
165
190
 
166
191
  ## Troubleshooting
167
192
 
@@ -174,7 +199,7 @@ specific HTTP status from the DataDive API.
174
199
  | **Subscription is inactive or paused** | Resume billing at https://2.datadive.tools — the API key is valid but the subscription isn't active. |
175
200
  | **Forbidden** | The key is valid but doesn't have access to that resource. Usually a niche/rank-radar that belongs to a different org. |
176
201
  | **Rate limit exceeded** | Wait a few seconds and retry. |
177
- | **Bad request** | Check the parameters — the message echoes the server's validation error (e.g., `pageSize must not exceed 100`). |
202
+ | **Bad request** | Check the parameters — the message echoes the server's validation error (e.g., `pageSize must not exceed 50`). |
178
203
  | **DataDive API error (5xx)** | Transient backend issue. Try again; if it persists, contact support. |
179
204
  | **Network error reaching …** | Your machine can't reach `api.datadive.tools` — check VPN / firewall / DNS. |
180
205