@nooticr/mcp 1.26.35 → 1.26.36
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/shared/amazon.js
CHANGED
|
@@ -165,7 +165,9 @@ export function registerAmazonTools(server, makeClient) {
|
|
|
165
165
|
"Costs 3 nooticr credits per listing collected — a listing with reviews is a real browser " +
|
|
166
166
|
"render behind Amazon's bot defences. " +
|
|
167
167
|
"Collection runs in the background: this returns everything ready within `waitSeconds` " +
|
|
168
|
-
"plus a scanId to continue with amazon_scan_status. " +
|
|
168
|
+
"plus a scanId to continue with amazon_scan_status. A live scan of ten listings takes " +
|
|
169
|
+
"minutes, so expect the first call to come back incomplete and poll amazon_scan_status " +
|
|
170
|
+
"until it is done — that is free, and repeating it is how a scan gets more time. " +
|
|
169
171
|
"Use for a category or a competitive set; for one listing, get_amazon_product is cheaper.",
|
|
170
172
|
annotations: {
|
|
171
173
|
readOnlyHint: true,
|
|
@@ -197,7 +199,10 @@ export function registerAmazonTools(server, makeClient) {
|
|
|
197
199
|
.number()
|
|
198
200
|
.int()
|
|
199
201
|
.optional()
|
|
200
|
-
.describe("How long to wait before returning partial results (default
|
|
202
|
+
.describe("How long to wait before returning partial results (default 45, max 55). " +
|
|
203
|
+
"Capped under the 60s at which hosts abandon a tool call — asking for longer " +
|
|
204
|
+
"returns nothing and loses the scanId, not a bigger answer. " +
|
|
205
|
+
"Poll amazon_scan_status for the rest instead; it is free and repeatable."),
|
|
201
206
|
focus: z
|
|
202
207
|
.string()
|
|
203
208
|
.optional()
|
|
@@ -256,7 +261,8 @@ export function registerAmazonTools(server, makeClient) {
|
|
|
256
261
|
.number()
|
|
257
262
|
.int()
|
|
258
263
|
.optional()
|
|
259
|
-
.describe("How long to wait for more listings before answering (default 30, max
|
|
264
|
+
.describe("How long to wait for more listings before answering (default 30, max 55). " +
|
|
265
|
+
"Call it again as often as you need rather than asking for one long wait."),
|
|
260
266
|
focus: z.string().optional().describe("Same optional steer as scan_amazon_category."),
|
|
261
267
|
})
|
|
262
268
|
.strict(),
|
package/dist/shared/tools-def.js
CHANGED
|
@@ -417,14 +417,14 @@ export const TOOL_DEFINITIONS = [
|
|
|
417
417
|
{
|
|
418
418
|
name: "scan_amazon_category",
|
|
419
419
|
title: "Scan Amazon Category",
|
|
420
|
-
description: "Collect an Amazon category and read it: listings with prices, star histograms, Amazon's own review-aspect counts and the review text itself, plus the arithmetic over them (price spread, rating spread, which aspects recur across how many brands, and the share of each listing's ratings sitting at 1-2 stars). Pass query to search the category, asins to pin named competitors, or both \u2014 named competitors keep their place at the front. You write the read: purchase drivers, barriers, what the incumbents do well, the gaps, and how a new entrant could position; show_amazon_category_insights draws it for free afterwards. Collection runs in the background, so this returns everything ready within waitSeconds plus a scanId to continue with amazon_scan_status. Consumes 3 nooticr credits per listing collected \u2014 a listing with reviews is a real browser render behind Amazon's bot defences.",
|
|
421
|
-
inputSchema: z.object({ query: z.string().optional().describe("Category or keyword to search on Amazon, e.g. 'ashwagandha gummies'."), asins: z.array(z.string()).optional().describe("Named competitors: ASINs or any Amazon product URL. Kept at the front of the set."), limit: z.number().int().optional().describe("Listings to collect (default 10, max 50)."), reviews: z.boolean().optional().describe("Collect review text too (default true)."), domain: z.string().optional().describe("Marketplace host, e.g. www.amazon.co.uk (default www.amazon.com)."), waitSeconds: z.number().int().optional().describe("How long to wait before returning partial results (default
|
|
420
|
+
description: "Collect an Amazon category and read it: listings with prices, star histograms, Amazon's own review-aspect counts and the review text itself, plus the arithmetic over them (price spread, rating spread, which aspects recur across how many brands, and the share of each listing's ratings sitting at 1-2 stars). Pass query to search the category, asins to pin named competitors, or both \u2014 named competitors keep their place at the front. You write the read: purchase drivers, barriers, what the incumbents do well, the gaps, and how a new entrant could position; show_amazon_category_insights draws it for free afterwards. Collection runs in the background, so this returns everything ready within waitSeconds plus a scanId to continue with amazon_scan_status. A live scan of ten listings takes minutes, so expect the first call to come back incomplete and poll amazon_scan_status until it is done \u2014 that is free, and repeating it is how a scan gets more time. Consumes 3 nooticr credits per listing collected \u2014 a listing with reviews is a real browser render behind Amazon's bot defences.",
|
|
421
|
+
inputSchema: z.object({ query: z.string().optional().describe("Category or keyword to search on Amazon, e.g. 'ashwagandha gummies'."), asins: z.array(z.string()).optional().describe("Named competitors: ASINs or any Amazon product URL. Kept at the front of the set."), limit: z.number().int().optional().describe("Listings to collect (default 10, max 50)."), reviews: z.boolean().optional().describe("Collect review text too (default true)."), domain: z.string().optional().describe("Marketplace host, e.g. www.amazon.co.uk (default www.amazon.com)."), waitSeconds: z.number().int().optional().describe("How long to wait before returning partial results (default 45, max 55). Capped under the 60s at which hosts abandon a tool call \u2014 asking for longer returns nothing and loses the scanId, not a bigger answer. Poll amazon_scan_status for the rest instead; it is free and repeatable."), focus: z.string().optional().describe("An extra question to answer from the reviews.") }).strict(),
|
|
422
422
|
},
|
|
423
423
|
{
|
|
424
424
|
name: "amazon_scan_status",
|
|
425
425
|
title: "Amazon Scan Status",
|
|
426
426
|
description: "Pick up a scan_amazon_category collection that was still running, by scanId \u2014 the listings and reviews collected since, with the same rollup and the same instructions for reading them. Free: it is the poll scan_amazon_category asked for, and charging for the second half of one answer would bill a wait this server chose. Call it when a scan came back incomplete, then write your read from the full set.",
|
|
427
|
-
inputSchema: z.object({ scanId: z.string().describe("The scanId scan_amazon_category returned."), waitSeconds: z.number().int().optional().describe("How long to wait for more listings before answering (default 30, max
|
|
427
|
+
inputSchema: z.object({ scanId: z.string().describe("The scanId scan_amazon_category returned."), waitSeconds: z.number().int().optional().describe("How long to wait for more listings before answering (default 30, max 55). Call it again as often as you need rather than asking for one long wait."), focus: z.string().optional().describe("Same optional steer as scan_amazon_category.") }).strict(),
|
|
428
428
|
},
|
|
429
429
|
{
|
|
430
430
|
name: "get_amazon_product",
|
package/dist/shared/tools.js
CHANGED
|
@@ -27,7 +27,7 @@ import { registerHandoff } from "./handoff.js";
|
|
|
27
27
|
import { registerCollabTools } from "./collab.js";
|
|
28
28
|
import { registerAmazonTools } from "./amazon.js";
|
|
29
29
|
/** Current MCP server version — bumped on every deploy for traceability. */
|
|
30
|
-
export const MCP_SERVER_VERSION = "1.26.
|
|
30
|
+
export const MCP_SERVER_VERSION = "1.26.36";
|
|
31
31
|
/** MCP Apps extension identifier */
|
|
32
32
|
const UI_EXTENSION = "io.modelcontextprotocol/ui";
|
|
33
33
|
/** MIME type for MCP Apps HTML resources */
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nooticr/mcp",
|
|
3
3
|
"mcpName": "com.nooticr/mcp",
|
|
4
|
-
"version": "1.26.
|
|
4
|
+
"version": "1.26.36",
|
|
5
5
|
"description": "MCP server for nooticr - fetch, discover and understand TikTok/Instagram/YouTube/X/Reddit/LinkedIn/Weibo posts with AI (media metadata, niche discovery, brand monitoring, hook & viral analysis)",
|
|
6
6
|
"homepage": "https://mcp.nooticr.com",
|
|
7
7
|
"repository": {
|