@scavio/mcp-server 0.15.5 → 0.15.6
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/trim-platforms.d.ts +24 -0
- package/dist/lib/trim-platforms.js +196 -0
- package/dist/lib/trim-platforms.js.map +1 -0
- package/dist/lib/trim-response.d.ts +52 -1
- package/dist/lib/trim-response.js +151 -8
- package/dist/lib/trim-response.js.map +1 -1
- package/dist/tools/amazon.js +6 -3
- package/dist/tools/amazon.js.map +1 -1
- package/dist/tools/google.js +44 -9
- package/dist/tools/google.js.map +1 -1
- package/dist/tools/instagram.js +25 -16
- package/dist/tools/instagram.js.map +1 -1
- package/dist/tools/tiktok.js +26 -18
- package/dist/tools/tiktok.js.map +1 -1
- package/dist/tools/walmart.js +5 -3
- package/dist/tools/walmart.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-platform record projections for trimResponse (see trim-response.ts).
|
|
3
|
+
*
|
|
4
|
+
* TikTok and Instagram are the two platforms whose MCP tools pass upstream
|
|
5
|
+
* app-API records through nearly raw: a single TikTok video record has ~155
|
|
6
|
+
* keys (77KB), an Instagram media record ~130 keys (24KB). Generic rules can
|
|
7
|
+
* only shave those, so each recognised record type is projected onto the
|
|
8
|
+
* fields an agent actually uses: ids, text, author, counts, timestamps,
|
|
9
|
+
* canonical URL, one playable/display URL, and every cursor.
|
|
10
|
+
*
|
|
11
|
+
* Projection only ever REMOVES keys from a record. Paths an agent already
|
|
12
|
+
* relies on (data.aweme_list[].statistics.digg_count, video.play_addr.url_list[0],
|
|
13
|
+
* items[].caption.text, ...) keep working unchanged.
|
|
14
|
+
*
|
|
15
|
+
* Records are recognised by signature, not by path, so the same projector
|
|
16
|
+
* covers search, feeds, hashtag lists, detail and comments alike. Projectors
|
|
17
|
+
* are applied only when a tool opts in with `platform`, which is why the
|
|
18
|
+
* profile tools (a single, already-small record whose bio fields matter) do
|
|
19
|
+
* not pass it.
|
|
20
|
+
*/
|
|
21
|
+
import type { JsonObject, JsonValue } from "./trim-response.js";
|
|
22
|
+
export type Platform = "tiktok" | "instagram";
|
|
23
|
+
export declare const PLATFORM_PROJECTORS: Record<Platform, (o: JsonObject) => JsonObject>;
|
|
24
|
+
export declare const PLATFORM_PREPARE: Record<Platform, (root: JsonValue) => JsonValue>;
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
2
|
+
function pick(o, keys) {
|
|
3
|
+
const out = {};
|
|
4
|
+
for (const k of keys)
|
|
5
|
+
if (k in o)
|
|
6
|
+
out[k] = o[k];
|
|
7
|
+
return out;
|
|
8
|
+
}
|
|
9
|
+
/** `{uri, url_list:[a,b,c], width, height, url_key, data_size, ...}` -> `{url_list:[a]}`. */
|
|
10
|
+
function firstUrl(m) {
|
|
11
|
+
if (!isObj(m) || !Array.isArray(m.url_list) || m.url_list.length === 0)
|
|
12
|
+
return undefined;
|
|
13
|
+
return { url_list: [m.url_list[0]] };
|
|
14
|
+
}
|
|
15
|
+
/** Share URLs carry per-request tracking params; the path is the canonical link. */
|
|
16
|
+
function stripQuery(u) {
|
|
17
|
+
return typeof u === "string" ? u.split("?")[0] : u;
|
|
18
|
+
}
|
|
19
|
+
// ---------------------------------------------------------------- TikTok
|
|
20
|
+
const TT_AWEME_KEEP = [
|
|
21
|
+
"aweme_id", "desc", "create_time", "region", "desc_language", "content_type", "aweme_type",
|
|
22
|
+
"is_top", "is_ads", "share_url", "statistics", "author", "video", "music", "text_extra",
|
|
23
|
+
"cha_list", "image_post_info", "poi_info", "item_title",
|
|
24
|
+
];
|
|
25
|
+
const TT_USER_KEEP = [
|
|
26
|
+
"uid", "sec_uid", "unique_id", "nickname", "signature", "avatar_thumb", "follower_count",
|
|
27
|
+
"following_count", "total_favorited", "aweme_count", "favoriting_count", "verification_type",
|
|
28
|
+
"custom_verify", "enterprise_verify_reason", "region", "language", "secret", "create_time",
|
|
29
|
+
"ins_id", "twitter_name", "youtube_channel_id", "youtube_channel_title", "bio_url",
|
|
30
|
+
];
|
|
31
|
+
const TT_COMMENT_KEEP = [
|
|
32
|
+
"cid", "text", "create_time", "digg_count", "reply_comment_total", "user", "aweme_id",
|
|
33
|
+
"reply_id", "reply_to_reply_id", "is_author_digged", "comment_language", "label_text",
|
|
34
|
+
"stick_position", "reply_comment",
|
|
35
|
+
];
|
|
36
|
+
function tiktokAweme(o) {
|
|
37
|
+
const out = pick(o, TT_AWEME_KEEP);
|
|
38
|
+
if ("share_url" in out)
|
|
39
|
+
out.share_url = stripQuery(out.share_url) ?? null;
|
|
40
|
+
else if (isObj(o.share_info) && typeof o.share_info.share_url === "string")
|
|
41
|
+
out.share_url = stripQuery(o.share_info.share_url) ?? null;
|
|
42
|
+
if (isObj(o.video)) {
|
|
43
|
+
const v = pick(o.video, ["duration", "width", "height", "ratio"]);
|
|
44
|
+
const cover = firstUrl(o.video.cover);
|
|
45
|
+
const play = firstUrl(o.video.play_addr);
|
|
46
|
+
if (cover)
|
|
47
|
+
v.cover = cover;
|
|
48
|
+
if (play)
|
|
49
|
+
v.play_addr = play;
|
|
50
|
+
out.video = v;
|
|
51
|
+
}
|
|
52
|
+
if (isObj(o.music)) {
|
|
53
|
+
const m = pick(o.music, ["id", "id_str", "mid", "title", "author", "owner_handle", "duration", "original", "is_original_sound"]);
|
|
54
|
+
const play = firstUrl(o.music.play_url);
|
|
55
|
+
if (play)
|
|
56
|
+
m.play_url = play;
|
|
57
|
+
out.music = m;
|
|
58
|
+
}
|
|
59
|
+
if (Array.isArray(o.text_extra)) {
|
|
60
|
+
out.text_extra = o.text_extra.map((t) => (isObj(t) ? pick(t, ["hashtag_name", "hashtag_id", "user_id", "sec_uid", "type"]) : t));
|
|
61
|
+
}
|
|
62
|
+
if (Array.isArray(o.cha_list)) {
|
|
63
|
+
out.cha_list = o.cha_list.map((c) => (isObj(c) ? pick(c, ["cid", "cha_name"]) : c));
|
|
64
|
+
}
|
|
65
|
+
if (isObj(o.image_post_info) && Array.isArray(o.image_post_info.images)) {
|
|
66
|
+
out.image_post_info = {
|
|
67
|
+
images: o.image_post_info.images.map((i) => (isObj(i) ? { display_image: firstUrl(i.display_image) ?? null } : i)),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
if (isObj(o.poi_info))
|
|
71
|
+
out.poi_info = pick(o.poi_info, ["poi_id", "poi_name"]);
|
|
72
|
+
return out;
|
|
73
|
+
}
|
|
74
|
+
function tiktokUser(o) {
|
|
75
|
+
const out = pick(o, TT_USER_KEEP);
|
|
76
|
+
if ("avatar_thumb" in out)
|
|
77
|
+
out.avatar_thumb = firstUrl(out.avatar_thumb) ?? null;
|
|
78
|
+
return out;
|
|
79
|
+
}
|
|
80
|
+
function projectTiktok(o) {
|
|
81
|
+
if ("cid" in o && "text" in o)
|
|
82
|
+
return pick(o, TT_COMMENT_KEEP);
|
|
83
|
+
if ("aweme_id" in o && ("video" in o || "author" in o || "desc" in o))
|
|
84
|
+
return tiktokAweme(o);
|
|
85
|
+
if ("sec_uid" in o && ("unique_id" in o || "nickname" in o))
|
|
86
|
+
return tiktokUser(o);
|
|
87
|
+
return o;
|
|
88
|
+
}
|
|
89
|
+
/** Envelope noise that sits beside the result list on every TikTok page. */
|
|
90
|
+
function prepareTiktok(root) {
|
|
91
|
+
if (isObj(root) && isObj(root.data)) {
|
|
92
|
+
for (const k of ["extra", "global_doodle_config", "backtrace", "feedback_type", "ad_info"])
|
|
93
|
+
delete root.data[k];
|
|
94
|
+
}
|
|
95
|
+
return root;
|
|
96
|
+
}
|
|
97
|
+
// ---------------------------------------------------------------- Instagram
|
|
98
|
+
const IG_MEDIA_KEEP = [
|
|
99
|
+
"id", "pk", "code", "shortcode", "media_type", "product_type", "is_video", "taken_at",
|
|
100
|
+
"taken_at_date", "expiring_at", "caption", "caption_text", "accessibility_caption", "title",
|
|
101
|
+
"like_count", "comment_count", "play_count", "ig_play_count", "view_count", "video_view_count",
|
|
102
|
+
"share_count", "reshare_count", "save_count", "video_duration", "is_paid_partnership", "is_pinned",
|
|
103
|
+
"user", "owner", "coauthor_producers", "usertags", "tagged_users", "sponsor_tags", "location",
|
|
104
|
+
"thumbnail_url", "display_uri", "display_url", "video_url", "image_versions2", "image_versions",
|
|
105
|
+
"video_versions", "carousel_media", "carousel_media_count",
|
|
106
|
+
];
|
|
107
|
+
const IG_USER_KEEP = ["pk", "id", "username", "full_name", "is_verified", "is_private", "profile_pic_url", "follower_count"];
|
|
108
|
+
function instagramMedia(o) {
|
|
109
|
+
const out = pick(o, IG_MEDIA_KEEP);
|
|
110
|
+
if (isObj(out.caption))
|
|
111
|
+
out.caption = pick(out.caption, ["text", "created_at"]);
|
|
112
|
+
if (isObj(out.location))
|
|
113
|
+
out.location = pick(out.location, ["pk", "name", "short_name", "city", "address", "lat", "lng"]);
|
|
114
|
+
// One display image and one video URL is enough. When the flat
|
|
115
|
+
// thumbnail_url / video_url is present the ladders are pure duplicates.
|
|
116
|
+
const hasThumb = typeof out.thumbnail_url === "string" || typeof out.display_uri === "string" || typeof out.display_url === "string";
|
|
117
|
+
if (hasThumb) {
|
|
118
|
+
delete out.image_versions2;
|
|
119
|
+
delete out.image_versions;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
if (isObj(out.image_versions2))
|
|
123
|
+
out.image_versions2 = pick(out.image_versions2, ["candidates"]);
|
|
124
|
+
if (isObj(out.image_versions))
|
|
125
|
+
out.image_versions = pick(out.image_versions, ["items", "candidates"]);
|
|
126
|
+
}
|
|
127
|
+
if (typeof out.video_url === "string")
|
|
128
|
+
delete out.video_versions;
|
|
129
|
+
else if (Array.isArray(out.video_versions) && out.video_versions.length) {
|
|
130
|
+
const v = out.video_versions[0];
|
|
131
|
+
out.video_versions = [isObj(v) ? pick(v, ["url", "width", "height"]) : v];
|
|
132
|
+
}
|
|
133
|
+
return out;
|
|
134
|
+
}
|
|
135
|
+
function projectInstagram(o) {
|
|
136
|
+
if (("pk" in o || "id" in o) && "media_type" in o && ("code" in o || "taken_at" in o || "shortcode" in o))
|
|
137
|
+
return instagramMedia(o);
|
|
138
|
+
if ("username" in o && ("pk" in o || "id" in o) && !("media_type" in o))
|
|
139
|
+
return pick(o, IG_USER_KEEP);
|
|
140
|
+
return o;
|
|
141
|
+
}
|
|
142
|
+
const IG_CURSOR_KEYS = ["page_info", "next_max_id", "more_available", "has_more", "pagination_token", "end_cursor"];
|
|
143
|
+
function findKey(node, key, depth = 0) {
|
|
144
|
+
if (depth > 6)
|
|
145
|
+
return undefined;
|
|
146
|
+
if (Array.isArray(node))
|
|
147
|
+
return undefined;
|
|
148
|
+
if (!isObj(node))
|
|
149
|
+
return undefined;
|
|
150
|
+
if (key in node && node[key] !== null)
|
|
151
|
+
return node[key];
|
|
152
|
+
for (const v of Object.values(node)) {
|
|
153
|
+
const hit = findKey(v, key, depth + 1);
|
|
154
|
+
if (hit !== undefined)
|
|
155
|
+
return hit;
|
|
156
|
+
}
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Instagram list responses carry the same records two or three times: the
|
|
161
|
+
* normalized `data.items`, the raw `data.edges`, and the raw GraphQL envelope
|
|
162
|
+
* under `data.data` (e.g. data.data.xdt_api__v1__clips__user__connection_v2.edges).
|
|
163
|
+
* Keep `items`, hoist any cursor that only lived in the raw copy, drop the rest.
|
|
164
|
+
*/
|
|
165
|
+
function prepareInstagram(root) {
|
|
166
|
+
if (!isObj(root) || !isObj(root.data))
|
|
167
|
+
return root;
|
|
168
|
+
const d = root.data;
|
|
169
|
+
if (!Array.isArray(d.items))
|
|
170
|
+
return root;
|
|
171
|
+
if (isObj(d.data)) {
|
|
172
|
+
for (const k of IG_CURSOR_KEYS) {
|
|
173
|
+
if (k === "end_cursor" && isObj(d.page_info))
|
|
174
|
+
continue;
|
|
175
|
+
if (d[k] === undefined || d[k] === null) {
|
|
176
|
+
const hit = findKey(d.data, k);
|
|
177
|
+
if (hit !== undefined)
|
|
178
|
+
d[k] = hit;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
delete d.data;
|
|
182
|
+
}
|
|
183
|
+
if (Array.isArray(d.edges))
|
|
184
|
+
delete d.edges;
|
|
185
|
+
return root;
|
|
186
|
+
}
|
|
187
|
+
// ---------------------------------------------------------------- registry
|
|
188
|
+
export const PLATFORM_PROJECTORS = {
|
|
189
|
+
tiktok: projectTiktok,
|
|
190
|
+
instagram: projectInstagram,
|
|
191
|
+
};
|
|
192
|
+
export const PLATFORM_PREPARE = {
|
|
193
|
+
tiktok: prepareTiktok,
|
|
194
|
+
instagram: prepareInstagram,
|
|
195
|
+
};
|
|
196
|
+
//# sourceMappingURL=trim-platforms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trim-platforms.js","sourceRoot":"","sources":["../../src/lib/trim-platforms.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,55 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Shapes an API response for a model's context window.
|
|
3
|
+
*
|
|
4
|
+
* The REST API returns upstream JSON close to raw, which is right for code and
|
|
5
|
+
* wrong for an agent: a 3-video TikTok search was 225KB, a 3-post Instagram
|
|
6
|
+
* page 291KB, a Google Shopping page 294KB. Almost all of it is media ladders
|
|
7
|
+
* (the same video at five bitrates, the same avatar at five sizes, three CDN
|
|
8
|
+
* mirrors of each URL), inline base64 thumbnails, DASH XML, tracking blobs and
|
|
9
|
+
* session cookies. None of it helps an agent answer a question, and every byte
|
|
10
|
+
* is paid for in context.
|
|
11
|
+
*
|
|
12
|
+
* Everything here is MCP-only. The REST API response is untouched.
|
|
13
|
+
*
|
|
14
|
+
* Rules, in the order they run:
|
|
15
|
+
* 1. limit - result lists named in `listKeys` are sliced to `limit`,
|
|
16
|
+
* and the cut is reported in a top-level `_truncated` note
|
|
17
|
+
* so the model knows there was more.
|
|
18
|
+
* 2. platform - a platform's record projector (src/lib/trim-platforms.ts)
|
|
19
|
+
* keeps the agent-useful fields of each recognised record.
|
|
20
|
+
* Ids, cursors and has_more flags are never dropped.
|
|
21
|
+
* 3. generic - anywhere in the tree: known-noise keys are dropped, CDN
|
|
22
|
+
* mirror lists keep one URL, media-variant ladders keep one
|
|
23
|
+
* variant, inline data: URIs and XML manifests are dropped.
|
|
24
|
+
* 4. stripEmpty - null, "", [] and {} are removed (the original behaviour).
|
|
25
|
+
*
|
|
26
|
+
* Deterministic and offline: no network, no randomness, no clock.
|
|
27
|
+
*/
|
|
28
|
+
import { type Platform } from "./trim-platforms.js";
|
|
29
|
+
export type JsonValue = string | number | boolean | null | JsonValue[] | {
|
|
30
|
+
[key: string]: JsonValue;
|
|
31
|
+
};
|
|
32
|
+
export type JsonObject = {
|
|
33
|
+
[key: string]: JsonValue;
|
|
34
|
+
};
|
|
35
|
+
export type { Platform };
|
|
36
|
+
export interface TrimOptions {
|
|
37
|
+
/** Max items kept in each result list named by `listKeys`. */
|
|
38
|
+
limit?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Keys of the result lists `limit` applies to. Looked up in the top three
|
|
41
|
+
* object levels only (root, root.data, root.data.data), never deep, so a
|
|
42
|
+
* nested `comments` inside a record is not mistaken for the page's list.
|
|
43
|
+
*/
|
|
44
|
+
listKeys?: string[];
|
|
45
|
+
/** Apply that platform's record projections. */
|
|
46
|
+
platform?: Platform;
|
|
47
|
+
/** Extra keys dropped wherever they appear, for one tool's known noise. */
|
|
48
|
+
dropKeys?: string[];
|
|
49
|
+
}
|
|
50
|
+
/** Shape a parsed API response for the model. Exported for scripts/trim-check.mjs. */
|
|
51
|
+
export declare function shapeResponse(data: unknown, opts?: TrimOptions): JsonValue;
|
|
52
|
+
export declare function trimResponse(data: unknown, opts?: TrimOptions): {
|
|
2
53
|
content: [{
|
|
3
54
|
type: "text";
|
|
4
55
|
text: string;
|
|
@@ -1,15 +1,116 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Shapes an API response for a model's context window.
|
|
3
|
+
*
|
|
4
|
+
* The REST API returns upstream JSON close to raw, which is right for code and
|
|
5
|
+
* wrong for an agent: a 3-video TikTok search was 225KB, a 3-post Instagram
|
|
6
|
+
* page 291KB, a Google Shopping page 294KB. Almost all of it is media ladders
|
|
7
|
+
* (the same video at five bitrates, the same avatar at five sizes, three CDN
|
|
8
|
+
* mirrors of each URL), inline base64 thumbnails, DASH XML, tracking blobs and
|
|
9
|
+
* session cookies. None of it helps an agent answer a question, and every byte
|
|
10
|
+
* is paid for in context.
|
|
11
|
+
*
|
|
12
|
+
* Everything here is MCP-only. The REST API response is untouched.
|
|
13
|
+
*
|
|
14
|
+
* Rules, in the order they run:
|
|
15
|
+
* 1. limit - result lists named in `listKeys` are sliced to `limit`,
|
|
16
|
+
* and the cut is reported in a top-level `_truncated` note
|
|
17
|
+
* so the model knows there was more.
|
|
18
|
+
* 2. platform - a platform's record projector (src/lib/trim-platforms.ts)
|
|
19
|
+
* keeps the agent-useful fields of each recognised record.
|
|
20
|
+
* Ids, cursors and has_more flags are never dropped.
|
|
21
|
+
* 3. generic - anywhere in the tree: known-noise keys are dropped, CDN
|
|
22
|
+
* mirror lists keep one URL, media-variant ladders keep one
|
|
23
|
+
* variant, inline data: URIs and XML manifests are dropped.
|
|
24
|
+
* 4. stripEmpty - null, "", [] and {} are removed (the original behaviour).
|
|
25
|
+
*
|
|
26
|
+
* Deterministic and offline: no network, no randomness, no clock.
|
|
27
|
+
*/
|
|
28
|
+
import { PLATFORM_PREPARE, PLATFORM_PROJECTORS } from "./trim-platforms.js";
|
|
29
|
+
/**
|
|
30
|
+
* Keys that never carry agent-useful data on any platform we serve. Dropped
|
|
31
|
+
* at any depth. Kept deliberately short: a key belongs here only if it is
|
|
32
|
+
* noise everywhere it can appear, otherwise it goes in a platform projector
|
|
33
|
+
* or a tool's `dropKeys`.
|
|
34
|
+
*/
|
|
35
|
+
const GLOBAL_DROP_KEYS = new Set([
|
|
36
|
+
// Session / tracking echoed back from the upstream request.
|
|
37
|
+
"cookie",
|
|
38
|
+
"tt_chain_token",
|
|
39
|
+
"log_pb",
|
|
40
|
+
// Streaming manifests and bitrate ladders: XML or many-URL blobs that only
|
|
41
|
+
// a video player can use. One playable URL survives elsewhere in the record.
|
|
42
|
+
"video_dash_manifest",
|
|
43
|
+
"dash_manifest",
|
|
44
|
+
"bit_rate",
|
|
45
|
+
"bit_rate_audio",
|
|
46
|
+
"misc_download_addrs",
|
|
47
|
+
// Instagram ML embedding vector and video scrubber sprite sheets.
|
|
48
|
+
"xray_visual_2025_100d_embed",
|
|
49
|
+
"scrubber_spritesheet_info_candidates",
|
|
50
|
+
]);
|
|
51
|
+
/** Lists of variants of one asset: keep the first (the largest / default). */
|
|
52
|
+
const FIRST_ONLY_KEYS = new Set(["url_list", "candidates", "video_versions"]);
|
|
53
|
+
const DATA_URI_MIN = 200;
|
|
54
|
+
function isPlainObject(v) {
|
|
55
|
+
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Inline base64 images (Google Shopping thumbnails are 4-5KB each) and inline
|
|
59
|
+
* DASH manifests. Generic XML is deliberately NOT matched: extract and SEC
|
|
60
|
+
* can legitimately return an XML document as their payload.
|
|
61
|
+
*/
|
|
62
|
+
function isDroppableString(s) {
|
|
63
|
+
if (s.length >= DATA_URI_MIN && s.startsWith("data:"))
|
|
64
|
+
return true;
|
|
65
|
+
return s.length > 1000 && s.slice(0, 200).includes("<MPD");
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The same image at several sizes, e.g. YouTube community posts list
|
|
69
|
+
* `...=s288-c...`, `...=s400-c...` through `...=s5464-c...` for ONE image.
|
|
70
|
+
* Grouped by the URL up to the size token; one URL kept per group, the
|
|
71
|
+
* largest at or under 1080px (or the smallest when all are larger).
|
|
72
|
+
*/
|
|
73
|
+
const SIZE_TOKEN = /=s(\d+)(?=[-&]|$)/;
|
|
74
|
+
function collapseSizeLadder(arr) {
|
|
75
|
+
if (arr.length < 3 || !arr.every((v) => typeof v === "string" && v.startsWith("http") && SIZE_TOKEN.test(v)))
|
|
76
|
+
return arr;
|
|
77
|
+
const groups = new Map();
|
|
78
|
+
for (const url of arr) {
|
|
79
|
+
const m = SIZE_TOKEN.exec(url);
|
|
80
|
+
const base = url.slice(0, m.index);
|
|
81
|
+
const list = groups.get(base) ?? [];
|
|
82
|
+
list.push({ url, size: Number(m[1]) });
|
|
83
|
+
groups.set(base, list);
|
|
84
|
+
}
|
|
85
|
+
if (groups.size === arr.length)
|
|
86
|
+
return arr;
|
|
87
|
+
const out = [];
|
|
88
|
+
for (const list of groups.values()) {
|
|
89
|
+
const fit = list.filter((x) => x.size <= 1080).sort((a, b) => b.size - a.size)[0];
|
|
90
|
+
out.push((fit ?? list.sort((a, b) => a.size - b.size)[0]).url);
|
|
91
|
+
}
|
|
92
|
+
return out;
|
|
93
|
+
}
|
|
94
|
+
function compact(val, drop, project) {
|
|
2
95
|
if (val === null || val === undefined || val === "")
|
|
3
96
|
return undefined;
|
|
97
|
+
if (typeof val === "string")
|
|
98
|
+
return isDroppableString(val) ? undefined : val;
|
|
4
99
|
if (Array.isArray(val)) {
|
|
5
|
-
const
|
|
6
|
-
|
|
100
|
+
const out = collapseSizeLadder(val)
|
|
101
|
+
.map((v) => compact(v, drop, project))
|
|
102
|
+
.filter((v) => v !== undefined);
|
|
103
|
+
return out.length ? out : undefined;
|
|
7
104
|
}
|
|
8
105
|
if (typeof val === "object") {
|
|
106
|
+
const obj = project ? project(val) : val;
|
|
9
107
|
const out = {};
|
|
10
108
|
let hasKey = false;
|
|
11
|
-
for (const [k, v] of Object.entries(
|
|
12
|
-
|
|
109
|
+
for (const [k, v] of Object.entries(obj)) {
|
|
110
|
+
if (drop.has(k))
|
|
111
|
+
continue;
|
|
112
|
+
const src = FIRST_ONLY_KEYS.has(k) && Array.isArray(v) && v.length > 1 ? [v[0]] : v;
|
|
113
|
+
const clean = compact(src, drop, project);
|
|
13
114
|
if (clean !== undefined) {
|
|
14
115
|
out[k] = clean;
|
|
15
116
|
hasKey = true;
|
|
@@ -19,8 +120,50 @@ function stripEmpty(val) {
|
|
|
19
120
|
}
|
|
20
121
|
return val;
|
|
21
122
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
123
|
+
/**
|
|
124
|
+
* Slice the named result lists in the top three object levels. Returns
|
|
125
|
+
* "path: kept of received" notes for the lists that were cut.
|
|
126
|
+
*/
|
|
127
|
+
function applyLimit(root, keys, limit) {
|
|
128
|
+
const notes = {};
|
|
129
|
+
const want = new Set(keys);
|
|
130
|
+
const visit = (node, path, depth) => {
|
|
131
|
+
if (!isPlainObject(node) || depth > 2)
|
|
132
|
+
return;
|
|
133
|
+
for (const [k, v] of Object.entries(node)) {
|
|
134
|
+
const p = path ? `${path}.${k}` : k;
|
|
135
|
+
if (want.has(k) && Array.isArray(v)) {
|
|
136
|
+
if (v.length > limit) {
|
|
137
|
+
notes[p] = `${limit} of ${v.length} returned; raise count/limit for the rest (a next-page cursor or page continues after all ${v.length})`;
|
|
138
|
+
node[k] = v.slice(0, limit);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
else if (isPlainObject(v)) {
|
|
142
|
+
visit(v, p, depth + 1);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
visit(root, "", 0);
|
|
147
|
+
return notes;
|
|
148
|
+
}
|
|
149
|
+
/** Shape a parsed API response for the model. Exported for scripts/trim-check.mjs. */
|
|
150
|
+
export function shapeResponse(data, opts = {}) {
|
|
151
|
+
// Work on a copy: limit and the platform prepare step mutate.
|
|
152
|
+
let root = structuredClone(data ?? {});
|
|
153
|
+
let notes = {};
|
|
154
|
+
if (opts.platform)
|
|
155
|
+
root = PLATFORM_PREPARE[opts.platform]?.(root) ?? root;
|
|
156
|
+
if (opts.limit !== undefined && opts.listKeys?.length)
|
|
157
|
+
notes = applyLimit(root, opts.listKeys, opts.limit);
|
|
158
|
+
const drop = opts.dropKeys?.length ? new Set([...GLOBAL_DROP_KEYS, ...opts.dropKeys]) : GLOBAL_DROP_KEYS;
|
|
159
|
+
const project = opts.platform ? PLATFORM_PROJECTORS[opts.platform] : undefined;
|
|
160
|
+
const out = (compact(root, drop, project) ?? {});
|
|
161
|
+
if (Object.keys(notes).length && isPlainObject(out)) {
|
|
162
|
+
return { ...out, _truncated: notes };
|
|
163
|
+
}
|
|
164
|
+
return out;
|
|
165
|
+
}
|
|
166
|
+
export function trimResponse(data, opts = {}) {
|
|
167
|
+
return { content: [{ type: "text", text: JSON.stringify(shapeResponse(data, opts)) }] };
|
|
25
168
|
}
|
|
26
169
|
//# sourceMappingURL=trim-response.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trim-response.js","sourceRoot":"","sources":["../../src/lib/trim-response.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"trim-response.js","sourceRoot":"","sources":["../../src/lib/trim-response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAiB,MAAM,qBAAqB,CAAC;AAsB3F;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS;IACvC,4DAA4D;IAC5D,QAAQ;IACR,gBAAgB;IAChB,QAAQ;IACR,2EAA2E;IAC3E,6EAA6E;IAC7E,qBAAqB;IACrB,eAAe;IACf,UAAU;IACV,gBAAgB;IAChB,qBAAqB;IACrB,kEAAkE;IAClE,6BAA6B;IAC7B,sCAAsC;CACvC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAEtF,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,CAAS;IAClC,IAAI,CAAC,CAAC,MAAM,IAAI,YAAY,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,GAAG,mBAAmB,CAAC;AACvC,SAAS,kBAAkB,CAAC,GAAgB;IAC1C,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IACzH,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2C,CAAC;IAClE,KAAK,MAAM,GAAG,IAAI,GAAe,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAE,CAAC;QAChC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM;QAAE,OAAO,GAAG,CAAC;IAC3C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,OAAO,CAAC,GAAc,EAAE,IAAiB,EAAE,OAAuC;IACzF,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAEtE,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IAE7E,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;aACrC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAgB,CAAC;QACjD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACtC,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACzC,MAAM,GAAG,GAAe,EAAE,CAAC;QAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,SAAS;YAC1B,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACvD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBACf,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,IAAe,EAAE,IAAc,EAAE,KAAa;IAChE,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,CAAC,IAAe,EAAE,IAAY,EAAE,KAAa,EAAE,EAAE;QAC7D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO;QAC9C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;oBACrB,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,OAAO,CAAC,CAAC,MAAM,6FAA6F,CAAC,CAAC,MAAM,GAAG,CAAC;oBAC3I,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;iBAAM,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5B,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACnB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,aAAa,CAAC,IAAa,EAAE,OAAoB,EAAE;IACjE,8DAA8D;IAC9D,IAAI,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,EAAE,CAAc,CAAC;IAEpD,IAAI,KAAK,GAA2B,EAAE,CAAC;IACvC,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAC1E,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM;QAAE,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAE3G,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,gBAAgB,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACzG,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAc,CAAC;IAE9D,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAa,EAAE,OAAoB,EAAE;IAChE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC1F,CAAC"}
|
package/dist/tools/amazon.js
CHANGED
|
@@ -35,10 +35,10 @@ const asinField = z
|
|
|
35
35
|
.length(10)
|
|
36
36
|
.describe("ASIN, e.g. 'B09V3KXJPB'.");
|
|
37
37
|
export function registerAmazonTools(server, getClient) {
|
|
38
|
-
const call = (path) => async (params) => {
|
|
38
|
+
const call = (path, opts) => async (params) => {
|
|
39
39
|
try {
|
|
40
40
|
const data = await getClient().post(path, params);
|
|
41
|
-
return trimResponse(data);
|
|
41
|
+
return trimResponse(data, opts);
|
|
42
42
|
}
|
|
43
43
|
catch (err) {
|
|
44
44
|
return handleApiError(err);
|
|
@@ -50,7 +50,10 @@ export function registerAmazonTools(server, getClient) {
|
|
|
50
50
|
country: countryField,
|
|
51
51
|
page: z.number().int().min(1).optional()
|
|
52
52
|
.describe("Page, 1-based."),
|
|
53
|
-
},
|
|
53
|
+
},
|
|
54
|
+
// data.filters is ~60% of a search page: refinement links for filters
|
|
55
|
+
// this tool cannot apply (no category/price params). Dropped from MCP output.
|
|
56
|
+
call("/api/v1/amazon/search", { dropKeys: ["filters"] }));
|
|
54
57
|
server.tool("get_amazon_product", `Full Amazon product page for an ASIN. Price is buy-box price; use get_amazon_offers for competing sellers. 1 credit.`, {
|
|
55
58
|
asin: asinField,
|
|
56
59
|
country: countryField,
|
package/dist/tools/amazon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amazon.js","sourceRoot":"","sources":["../../src/tools/amazon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"amazon.js","sourceRoot":"","sources":["../../src/tools/amazon.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/google.js
CHANGED
|
@@ -1,6 +1,35 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { handleApiError } from "../lib/tool-error.js";
|
|
3
3
|
import { trimResponse } from "../lib/trim-response.js";
|
|
4
|
+
/**
|
|
5
|
+
* Shopping records carry both a durable catalog_id and an
|
|
6
|
+
* immersive_product_page_token (~1.4KB of base64 each, 60+ per page). The
|
|
7
|
+
* token is only an alternative way into google_shopping_product, and
|
|
8
|
+
* catalog_id+query is the documented full-data path, so the token is dropped
|
|
9
|
+
* from records that have a catalog_id. Records without one keep their token,
|
|
10
|
+
* so every result stays openable. MCP output only; the REST API is unchanged.
|
|
11
|
+
*/
|
|
12
|
+
function shoppingTokens(data) {
|
|
13
|
+
const strip = (list) => {
|
|
14
|
+
if (!Array.isArray(list))
|
|
15
|
+
return list;
|
|
16
|
+
return list.map((r) => {
|
|
17
|
+
if (r && typeof r === "object" && "catalog_id" in r && r.catalog_id) {
|
|
18
|
+
const { immersive_product_page_token: _drop, ...rest } = r;
|
|
19
|
+
return rest;
|
|
20
|
+
}
|
|
21
|
+
return r;
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
if (!data || typeof data !== "object")
|
|
25
|
+
return data;
|
|
26
|
+
const d = data;
|
|
27
|
+
const out = { ...d, shopping_results: strip(d.shopping_results) };
|
|
28
|
+
if (Array.isArray(d.categorized_shopping_results)) {
|
|
29
|
+
out.categorized_shopping_results = d.categorized_shopping_results.map((c) => c && typeof c === "object" ? { ...c, shopping_results: strip(c.shopping_results) } : c);
|
|
30
|
+
}
|
|
31
|
+
return out;
|
|
32
|
+
}
|
|
4
33
|
export function registerGoogleTools(server, getClient) {
|
|
5
34
|
server.tool("search_google", `Search Google, return SERP results with organic, ads, AI Overview. 1 credit.`, {
|
|
6
35
|
query: z.string().min(1).max(500)
|
|
@@ -134,7 +163,7 @@ export function registerGoogleTools(server, getClient) {
|
|
|
134
163
|
return handleApiError(err);
|
|
135
164
|
}
|
|
136
165
|
});
|
|
137
|
-
server.tool("google_shopping", `Search Google Shopping for products with prices across retailers. 1 credit.`, {
|
|
166
|
+
server.tool("google_shopping", `Search Google Shopping for products with prices across retailers. Returns the top 10 shopping_results by default (limit to change). Pass catalog_id+query to google_shopping_product for detail. 1 credit.`, {
|
|
138
167
|
query: z.string().min(1).max(500)
|
|
139
168
|
.describe("Product query."),
|
|
140
169
|
device: z.enum(["desktop", "mobile"]).optional()
|
|
@@ -163,10 +192,12 @@ export function registerGoogleTools(server, getClient) {
|
|
|
163
192
|
.describe("Location name, auto-encoded to UULE."),
|
|
164
193
|
uule: z.string().optional()
|
|
165
194
|
.describe("UULE string, overrides location."),
|
|
166
|
-
|
|
195
|
+
limit: z.number().int().min(1).max(100).optional()
|
|
196
|
+
.describe("Max shopping_results returned (default 10). Local trim, same cost."),
|
|
197
|
+
}, async ({ limit, ...params }) => {
|
|
167
198
|
try {
|
|
168
199
|
const data = await getClient().post("/api/v2/google/shopping", params);
|
|
169
|
-
return trimResponse(data);
|
|
200
|
+
return trimResponse(shoppingTokens(data), { limit: limit ?? 10, listKeys: ["shopping_results"] });
|
|
170
201
|
}
|
|
171
202
|
catch (err) {
|
|
172
203
|
return handleApiError(err);
|
|
@@ -336,7 +367,7 @@ export function registerGoogleTools(server, getClient) {
|
|
|
336
367
|
return handleApiError(err);
|
|
337
368
|
}
|
|
338
369
|
});
|
|
339
|
-
server.tool("google_news", `Google News results. Query or browse via topic/story/publication token. 1 credit.`, {
|
|
370
|
+
server.tool("google_news", `Google News results. Query or browse via topic/story/publication token. Returns the first 20 news_results by default (limit to change). 1 credit.`, {
|
|
340
371
|
query: z.string().optional()
|
|
341
372
|
.describe("Keyword search."),
|
|
342
373
|
topic_token: z.string().optional()
|
|
@@ -357,10 +388,12 @@ export function registerGoogleTools(server, getClient) {
|
|
|
357
388
|
.describe("e.g. 'google.co.uk'."),
|
|
358
389
|
so: z.number().int().optional()
|
|
359
390
|
.describe("0=relevance, 1=date."),
|
|
360
|
-
|
|
391
|
+
limit: z.number().int().min(1).max(100).optional()
|
|
392
|
+
.describe("Max news_results returned (default 20). Local trim, same cost."),
|
|
393
|
+
}, async ({ limit, ...params }) => {
|
|
361
394
|
try {
|
|
362
395
|
const data = await getClient().post("/api/v2/google/news", params);
|
|
363
|
-
return trimResponse(data);
|
|
396
|
+
return trimResponse(data, { limit: limit ?? 20, listKeys: ["news_results"], dropKeys: ["thumbnail_small", "icon"] });
|
|
364
397
|
}
|
|
365
398
|
catch (err) {
|
|
366
399
|
return handleApiError(err);
|
|
@@ -394,7 +427,7 @@ export function registerGoogleTools(server, getClient) {
|
|
|
394
427
|
return handleApiError(err);
|
|
395
428
|
}
|
|
396
429
|
});
|
|
397
|
-
server.tool("google_trending", `Google Trending Now searches for a country. 1 credit.`, {
|
|
430
|
+
server.tool("google_trending", `Google Trending Now searches for a country. Returns the first 50 trends by default (limit to change; a day can have 400+). 1 credit.`, {
|
|
398
431
|
geo: z.string()
|
|
399
432
|
.describe("e.g. 'US'."),
|
|
400
433
|
hl: z.string().optional()
|
|
@@ -407,10 +440,12 @@ export function registerGoogleTools(server, getClient) {
|
|
|
407
440
|
.describe("Sort."),
|
|
408
441
|
status: z.enum(["all", "active"]).optional()
|
|
409
442
|
.describe("Trend status filter."),
|
|
410
|
-
|
|
443
|
+
limit: z.number().int().min(1).max(500).optional()
|
|
444
|
+
.describe("Max trends returned (default 50). Local trim, same cost."),
|
|
445
|
+
}, async ({ limit, ...params }) => {
|
|
411
446
|
try {
|
|
412
447
|
const data = await getClient().post("/api/v2/google/trending", params);
|
|
413
|
-
return trimResponse(data);
|
|
448
|
+
return trimResponse(data, { limit: limit ?? 50, listKeys: ["trends"] });
|
|
414
449
|
}
|
|
415
450
|
catch (err) {
|
|
416
451
|
return handleApiError(err);
|
package/dist/tools/google.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/tools/google.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/tools/google.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/instagram.js
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { handleApiError } from "../lib/tool-error.js";
|
|
3
3
|
import { trimResponse } from "../lib/trim-response.js";
|
|
4
|
+
/**
|
|
5
|
+
* Result lists that `count` caps in the MCP output. Upstream treats count as
|
|
6
|
+
* best effort (count=3 returned 12 posts), so it is enforced here. Responses
|
|
7
|
+
* are also deduplicated (items vs raw edges vs the raw GraphQL envelope) and
|
|
8
|
+
* records projected to agent-useful fields, see src/lib/trim-platforms.ts.
|
|
9
|
+
* get_instagram_profile is deliberately left unprojected. The REST API
|
|
10
|
+
* response is unchanged.
|
|
11
|
+
*/
|
|
12
|
+
const IG_LISTS = ["items", "edges", "users"];
|
|
4
13
|
export function registerInstagramTools(server, getClient) {
|
|
5
14
|
server.tool("get_instagram_profile", `Get an Instagram user's profile. Usually 8 credits (2-10).`, {
|
|
6
15
|
username: z.string().optional()
|
|
@@ -22,13 +31,13 @@ export function registerInstagramTools(server, getClient) {
|
|
|
22
31
|
user_id: z.string().optional()
|
|
23
32
|
.describe("Numeric user ID."),
|
|
24
33
|
count: z.number().int().min(1).max(50).default(12)
|
|
25
|
-
.describe("
|
|
34
|
+
.describe("Max posts returned; upstream may fetch more, extras are trimmed."),
|
|
26
35
|
cursor: z.string().optional()
|
|
27
36
|
.describe("pagination_token or next_max_id from previous response."),
|
|
28
37
|
}, async (params) => {
|
|
29
38
|
try {
|
|
30
39
|
const data = await getClient().post("/api/v1/instagram/user/posts", params);
|
|
31
|
-
return trimResponse(data);
|
|
40
|
+
return trimResponse(data, { platform: "instagram", limit: params.count, listKeys: IG_LISTS });
|
|
32
41
|
}
|
|
33
42
|
catch (err) {
|
|
34
43
|
return handleApiError(err);
|
|
@@ -40,13 +49,13 @@ export function registerInstagramTools(server, getClient) {
|
|
|
40
49
|
user_id: z.string().optional()
|
|
41
50
|
.describe("Numeric user ID."),
|
|
42
51
|
count: z.number().int().min(1).max(50).default(12)
|
|
43
|
-
.describe("
|
|
52
|
+
.describe("Max reels returned."),
|
|
44
53
|
cursor: z.string().optional()
|
|
45
54
|
.describe("next_max_id from previous response."),
|
|
46
55
|
}, async (params) => {
|
|
47
56
|
try {
|
|
48
57
|
const data = await getClient().post("/api/v1/instagram/user/reels", params);
|
|
49
|
-
return trimResponse(data);
|
|
58
|
+
return trimResponse(data, { platform: "instagram", limit: params.count, listKeys: IG_LISTS });
|
|
50
59
|
}
|
|
51
60
|
catch (err) {
|
|
52
61
|
return handleApiError(err);
|
|
@@ -58,13 +67,13 @@ export function registerInstagramTools(server, getClient) {
|
|
|
58
67
|
user_id: z.string().optional()
|
|
59
68
|
.describe("Numeric user ID."),
|
|
60
69
|
count: z.number().int().min(1).max(50).default(12)
|
|
61
|
-
.describe("
|
|
70
|
+
.describe("Max posts returned."),
|
|
62
71
|
cursor: z.string().optional()
|
|
63
72
|
.describe("next_max_id from previous response."),
|
|
64
73
|
}, async (params) => {
|
|
65
74
|
try {
|
|
66
75
|
const data = await getClient().post("/api/v1/instagram/user/tagged", params);
|
|
67
|
-
return trimResponse(data);
|
|
76
|
+
return trimResponse(data, { platform: "instagram", limit: params.count, listKeys: IG_LISTS });
|
|
68
77
|
}
|
|
69
78
|
catch (err) {
|
|
70
79
|
return handleApiError(err);
|
|
@@ -78,7 +87,7 @@ export function registerInstagramTools(server, getClient) {
|
|
|
78
87
|
}, async (params) => {
|
|
79
88
|
try {
|
|
80
89
|
const data = await getClient().post("/api/v1/instagram/user/stories", params);
|
|
81
|
-
return trimResponse(data);
|
|
90
|
+
return trimResponse(data, { platform: "instagram" });
|
|
82
91
|
}
|
|
83
92
|
catch (err) {
|
|
84
93
|
return handleApiError(err);
|
|
@@ -94,7 +103,7 @@ export function registerInstagramTools(server, getClient) {
|
|
|
94
103
|
}, async (params) => {
|
|
95
104
|
try {
|
|
96
105
|
const data = await getClient().post("/api/v1/instagram/post", params);
|
|
97
|
-
return trimResponse(data);
|
|
106
|
+
return trimResponse(data, { platform: "instagram" });
|
|
98
107
|
}
|
|
99
108
|
catch (err) {
|
|
100
109
|
return handleApiError(err);
|
|
@@ -112,7 +121,7 @@ export function registerInstagramTools(server, getClient) {
|
|
|
112
121
|
}, async (params) => {
|
|
113
122
|
try {
|
|
114
123
|
const data = await getClient().post("/api/v1/instagram/post/comments", params);
|
|
115
|
-
return trimResponse(data);
|
|
124
|
+
return trimResponse(data, { platform: "instagram" });
|
|
116
125
|
}
|
|
117
126
|
catch (err) {
|
|
118
127
|
return handleApiError(err);
|
|
@@ -128,7 +137,7 @@ export function registerInstagramTools(server, getClient) {
|
|
|
128
137
|
}, async (params) => {
|
|
129
138
|
try {
|
|
130
139
|
const data = await getClient().post("/api/v1/instagram/post/comments/replies", params);
|
|
131
|
-
return trimResponse(data);
|
|
140
|
+
return trimResponse(data, { platform: "instagram" });
|
|
132
141
|
}
|
|
133
142
|
catch (err) {
|
|
134
143
|
return handleApiError(err);
|
|
@@ -142,7 +151,7 @@ export function registerInstagramTools(server, getClient) {
|
|
|
142
151
|
}, async (params) => {
|
|
143
152
|
try {
|
|
144
153
|
const data = await getClient().post("/api/v1/instagram/search/users", params);
|
|
145
|
-
return trimResponse(data);
|
|
154
|
+
return trimResponse(data, { platform: "instagram" });
|
|
146
155
|
}
|
|
147
156
|
catch (err) {
|
|
148
157
|
return handleApiError(err);
|
|
@@ -156,7 +165,7 @@ export function registerInstagramTools(server, getClient) {
|
|
|
156
165
|
}, async (params) => {
|
|
157
166
|
try {
|
|
158
167
|
const data = await getClient().post("/api/v1/instagram/search/hashtags", params);
|
|
159
|
-
return trimResponse(data);
|
|
168
|
+
return trimResponse(data, { platform: "instagram" });
|
|
160
169
|
}
|
|
161
170
|
catch (err) {
|
|
162
171
|
return handleApiError(err);
|
|
@@ -168,13 +177,13 @@ export function registerInstagramTools(server, getClient) {
|
|
|
168
177
|
user_id: z.string().optional()
|
|
169
178
|
.describe("Numeric user ID."),
|
|
170
179
|
count: z.number().int().min(1).max(100).default(12)
|
|
171
|
-
.describe("
|
|
180
|
+
.describe("Max users returned."),
|
|
172
181
|
cursor: z.string().optional()
|
|
173
182
|
.describe("next_max_id from previous response."),
|
|
174
183
|
}, async (params) => {
|
|
175
184
|
try {
|
|
176
185
|
const data = await getClient().post("/api/v1/instagram/user/followers", params);
|
|
177
|
-
return trimResponse(data);
|
|
186
|
+
return trimResponse(data, { platform: "instagram", limit: params.count, listKeys: IG_LISTS });
|
|
178
187
|
}
|
|
179
188
|
catch (err) {
|
|
180
189
|
return handleApiError(err);
|
|
@@ -186,13 +195,13 @@ export function registerInstagramTools(server, getClient) {
|
|
|
186
195
|
user_id: z.string().optional()
|
|
187
196
|
.describe("Numeric user ID."),
|
|
188
197
|
count: z.number().int().min(1).max(100).default(12)
|
|
189
|
-
.describe("
|
|
198
|
+
.describe("Max users returned."),
|
|
190
199
|
cursor: z.string().optional()
|
|
191
200
|
.describe("next_max_id from previous response."),
|
|
192
201
|
}, async (params) => {
|
|
193
202
|
try {
|
|
194
203
|
const data = await getClient().post("/api/v1/instagram/user/followings", params);
|
|
195
|
-
return trimResponse(data);
|
|
204
|
+
return trimResponse(data, { platform: "instagram", limit: params.count, listKeys: IG_LISTS });
|
|
196
205
|
}
|
|
197
206
|
catch (err) {
|
|
198
207
|
return handleApiError(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instagram.js","sourceRoot":"","sources":["../../src/tools/instagram.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,SAA6B;IACrF,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,4DAA4D,EAC5D;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC5B,QAAQ,CAAC,qCAAqC,CAAC;QAClD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC3B,QAAQ,CAAC,0CAA0C,CAAC;KACxD,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,SAAS,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;YACzE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,0BAA0B,EAC1B,+GAA+G,EAC/G;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC5B,QAAQ,CAAC,mBAAmB,CAAC;QAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC3B,QAAQ,CAAC,kBAAkB,CAAC;QAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aAC/C,QAAQ,CAAC
|
|
1
|
+
{"version":3,"file":"instagram.js","sourceRoot":"","sources":["../../src/tools/instagram.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/tiktok.js
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { handleApiError } from "../lib/tool-error.js";
|
|
3
3
|
import { trimResponse } from "../lib/trim-response.js";
|
|
4
|
+
/**
|
|
5
|
+
* Result lists that `count` caps in the MCP output. Upstream often returns
|
|
6
|
+
* more than was asked for (a count=3 search returned full pages), and each
|
|
7
|
+
* TikTok record is large, so the requested count is enforced here. Records are
|
|
8
|
+
* also projected to agent-useful fields (see src/lib/trim-platforms.ts); the
|
|
9
|
+
* REST API response is unchanged.
|
|
10
|
+
*/
|
|
11
|
+
const TT_LISTS = ["aweme_list", "search_item_list", "comments", "user_list", "followers", "followings"];
|
|
4
12
|
export function registerTiktokTools(server, getClient) {
|
|
5
13
|
server.tool("get_tiktok_profile", `Get a TikTok user's profile. Returns sec_user_id needed by user_posts/followers/followings tools. 1 credit.`, {
|
|
6
14
|
username: z.string().optional()
|
|
@@ -22,13 +30,13 @@ export function registerTiktokTools(server, getClient) {
|
|
|
22
30
|
cursor: z.string().default("0")
|
|
23
31
|
.describe("Use data.max_cursor from previous response."),
|
|
24
32
|
count: z.number().int().min(1).max(30).default(20)
|
|
25
|
-
.describe("
|
|
33
|
+
.describe("Max videos returned (1-30). Pages return up to ~10 videos whatever you request, so page with max_cursor for more."),
|
|
26
34
|
sort_type: z.enum(["0", "1"]).default("0")
|
|
27
35
|
.describe("'0' = latest, '1' = popular."),
|
|
28
36
|
}, async (params) => {
|
|
29
37
|
try {
|
|
30
38
|
const data = await getClient().post("/api/v1/tiktok/user/posts", params);
|
|
31
|
-
return trimResponse(data);
|
|
39
|
+
return trimResponse(data, { platform: "tiktok", limit: params.count, listKeys: TT_LISTS });
|
|
32
40
|
}
|
|
33
41
|
catch (err) {
|
|
34
42
|
return handleApiError(err);
|
|
@@ -40,7 +48,7 @@ export function registerTiktokTools(server, getClient) {
|
|
|
40
48
|
}, async (params) => {
|
|
41
49
|
try {
|
|
42
50
|
const data = await getClient().post("/api/v1/tiktok/video", params);
|
|
43
|
-
return trimResponse(data);
|
|
51
|
+
return trimResponse(data, { platform: "tiktok" });
|
|
44
52
|
}
|
|
45
53
|
catch (err) {
|
|
46
54
|
return handleApiError(err);
|
|
@@ -52,11 +60,11 @@ export function registerTiktokTools(server, getClient) {
|
|
|
52
60
|
cursor: z.string().default("0")
|
|
53
61
|
.describe("From data.cursor of previous response."),
|
|
54
62
|
count: z.number().int().min(1).max(50).default(20)
|
|
55
|
-
.describe("
|
|
63
|
+
.describe("Max comments returned."),
|
|
56
64
|
}, async (params) => {
|
|
57
65
|
try {
|
|
58
66
|
const data = await getClient().post("/api/v1/tiktok/video/comments", params);
|
|
59
|
-
return trimResponse(data);
|
|
67
|
+
return trimResponse(data, { platform: "tiktok", limit: params.count, listKeys: TT_LISTS });
|
|
60
68
|
}
|
|
61
69
|
catch (err) {
|
|
62
70
|
return handleApiError(err);
|
|
@@ -70,11 +78,11 @@ export function registerTiktokTools(server, getClient) {
|
|
|
70
78
|
cursor: z.string().default("0")
|
|
71
79
|
.describe("From data.cursor of previous response."),
|
|
72
80
|
count: z.number().int().min(1).max(50).default(20)
|
|
73
|
-
.describe("
|
|
81
|
+
.describe("Max replies returned."),
|
|
74
82
|
}, async (params) => {
|
|
75
83
|
try {
|
|
76
84
|
const data = await getClient().post("/api/v1/tiktok/video/comments/replies", params);
|
|
77
|
-
return trimResponse(data);
|
|
85
|
+
return trimResponse(data, { platform: "tiktok", limit: params.count, listKeys: TT_LISTS });
|
|
78
86
|
}
|
|
79
87
|
catch (err) {
|
|
80
88
|
return handleApiError(err);
|
|
@@ -86,7 +94,7 @@ export function registerTiktokTools(server, getClient) {
|
|
|
86
94
|
cursor: z.string().default("0")
|
|
87
95
|
.describe("From data.cursor of previous response."),
|
|
88
96
|
count: z.number().int().min(1).max(30).default(20)
|
|
89
|
-
.describe("
|
|
97
|
+
.describe("Max results returned."),
|
|
90
98
|
sort_type: z.enum(["0", "1"]).default("0")
|
|
91
99
|
.describe("'0' = relevance, '1' = most likes."),
|
|
92
100
|
publish_time: z.enum(["0", "1", "7", "30", "90", "180"]).default("0")
|
|
@@ -94,7 +102,7 @@ export function registerTiktokTools(server, getClient) {
|
|
|
94
102
|
}, async (params) => {
|
|
95
103
|
try {
|
|
96
104
|
const data = await getClient().post("/api/v1/tiktok/search/videos", params);
|
|
97
|
-
return trimResponse(data);
|
|
105
|
+
return trimResponse(data, { platform: "tiktok", limit: params.count, listKeys: TT_LISTS });
|
|
98
106
|
}
|
|
99
107
|
catch (err) {
|
|
100
108
|
return handleApiError(err);
|
|
@@ -106,11 +114,11 @@ export function registerTiktokTools(server, getClient) {
|
|
|
106
114
|
cursor: z.string().default("0")
|
|
107
115
|
.describe("From data.cursor of previous response."),
|
|
108
116
|
count: z.number().int().min(1).max(30).default(20)
|
|
109
|
-
.describe("
|
|
117
|
+
.describe("Max results returned."),
|
|
110
118
|
}, async (params) => {
|
|
111
119
|
try {
|
|
112
120
|
const data = await getClient().post("/api/v1/tiktok/search/users", params);
|
|
113
|
-
return trimResponse(data);
|
|
121
|
+
return trimResponse(data, { platform: "tiktok", limit: params.count, listKeys: TT_LISTS });
|
|
114
122
|
}
|
|
115
123
|
catch (err) {
|
|
116
124
|
return handleApiError(err);
|
|
@@ -124,7 +132,7 @@ export function registerTiktokTools(server, getClient) {
|
|
|
124
132
|
}, async (params) => {
|
|
125
133
|
try {
|
|
126
134
|
const data = await getClient().post("/api/v1/tiktok/hashtag", params);
|
|
127
|
-
return trimResponse(data);
|
|
135
|
+
return trimResponse(data, { platform: "tiktok" });
|
|
128
136
|
}
|
|
129
137
|
catch (err) {
|
|
130
138
|
return handleApiError(err);
|
|
@@ -136,11 +144,11 @@ export function registerTiktokTools(server, getClient) {
|
|
|
136
144
|
cursor: z.string().default("0")
|
|
137
145
|
.describe("From data.cursor of previous response."),
|
|
138
146
|
count: z.number().int().min(1).max(30).default(20)
|
|
139
|
-
.describe("
|
|
147
|
+
.describe("Max results returned."),
|
|
140
148
|
}, async (params) => {
|
|
141
149
|
try {
|
|
142
150
|
const data = await getClient().post("/api/v1/tiktok/hashtag/videos", params);
|
|
143
|
-
return trimResponse(data);
|
|
151
|
+
return trimResponse(data, { platform: "tiktok", limit: params.count, listKeys: TT_LISTS });
|
|
144
152
|
}
|
|
145
153
|
catch (err) {
|
|
146
154
|
return handleApiError(err);
|
|
@@ -150,7 +158,7 @@ export function registerTiktokTools(server, getClient) {
|
|
|
150
158
|
sec_user_id: z.string()
|
|
151
159
|
.describe("From get_tiktok_profile."),
|
|
152
160
|
count: z.number().int().min(1).max(20).default(20)
|
|
153
|
-
.describe("
|
|
161
|
+
.describe("Max results returned."),
|
|
154
162
|
page_token: z.string().optional()
|
|
155
163
|
.describe("From previous response."),
|
|
156
164
|
min_time: z.number().optional()
|
|
@@ -158,7 +166,7 @@ export function registerTiktokTools(server, getClient) {
|
|
|
158
166
|
}, async (params) => {
|
|
159
167
|
try {
|
|
160
168
|
const data = await getClient().post("/api/v1/tiktok/user/followers", params);
|
|
161
|
-
return trimResponse(data);
|
|
169
|
+
return trimResponse(data, { platform: "tiktok", limit: params.count, listKeys: TT_LISTS });
|
|
162
170
|
}
|
|
163
171
|
catch (err) {
|
|
164
172
|
return handleApiError(err);
|
|
@@ -168,7 +176,7 @@ export function registerTiktokTools(server, getClient) {
|
|
|
168
176
|
sec_user_id: z.string()
|
|
169
177
|
.describe("From get_tiktok_profile."),
|
|
170
178
|
count: z.number().int().min(1).max(20).default(20)
|
|
171
|
-
.describe("
|
|
179
|
+
.describe("Max results returned."),
|
|
172
180
|
page_token: z.string().optional()
|
|
173
181
|
.describe("From previous response."),
|
|
174
182
|
min_time: z.number().optional()
|
|
@@ -176,7 +184,7 @@ export function registerTiktokTools(server, getClient) {
|
|
|
176
184
|
}, async (params) => {
|
|
177
185
|
try {
|
|
178
186
|
const data = await getClient().post("/api/v1/tiktok/user/followings", params);
|
|
179
|
-
return trimResponse(data);
|
|
187
|
+
return trimResponse(data, { platform: "tiktok", limit: params.count, listKeys: TT_LISTS });
|
|
180
188
|
}
|
|
181
189
|
catch (err) {
|
|
182
190
|
return handleApiError(err);
|
package/dist/tools/tiktok.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiktok.js","sourceRoot":"","sources":["../../src/tools/tiktok.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,SAA6B;IAClF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,6GAA6G,EAC7G;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC5B,QAAQ,CAAC,gDAAgD,CAAC;QAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC/B,QAAQ,CAAC,yCAAyC,CAAC;KACvD,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,SAAS,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;YACtE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,iGAAiG,EACjG;QACE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;aACpB,QAAQ,CAAC,0BAA0B,CAAC;QACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;aAC5B,QAAQ,CAAC,6CAA6C,CAAC;QAC1D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aAC/C,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"tiktok.js","sourceRoot":"","sources":["../../src/tools/tiktok.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/walmart.js
CHANGED
|
@@ -32,7 +32,7 @@ const storeIdField = z.string().min(1).optional()
|
|
|
32
32
|
const sortByField = z.enum(["best_match", "price_low", "price_high", "best_seller", "rating_high", "new"]).optional()
|
|
33
33
|
.describe("Sort order. Default 'best_match'.");
|
|
34
34
|
export function registerWalmartTools(server, getClient) {
|
|
35
|
-
server.tool("search_walmart", `Search Walmart products. Paginate with page while has_more_pages. 1 credit (US/CA), 2 credits (Mexico). Optional store targeting: pass delivery_zip + store_id together (store_id from get_walmart_stores, same domain) for one store's assortment and availability - walmart.com and walmart.ca only, 2 credits, takes 10-60s, store echoed in data.location.`, {
|
|
35
|
+
server.tool("search_walmart", `Search Walmart products. Returns the first 20 products by default (limit to change; a page holds up to ~70). Paginate with page while has_more_pages. 1 credit (US/CA), 2 credits (Mexico). Optional store targeting: pass delivery_zip + store_id together (store_id from get_walmart_stores, same domain) for one store's assortment and availability - walmart.com and walmart.ca only, 2 credits, takes 10-60s, store echoed in data.location.`, {
|
|
36
36
|
query: z.string().min(1).max(500)
|
|
37
37
|
.describe("Product search query."),
|
|
38
38
|
page: z.number().int().min(1).optional()
|
|
@@ -48,10 +48,12 @@ export function registerWalmartTools(server, getClient) {
|
|
|
48
48
|
domain: domainField,
|
|
49
49
|
delivery_zip: deliveryZipField,
|
|
50
50
|
store_id: storeIdField,
|
|
51
|
-
|
|
51
|
+
limit: z.number().int().min(1).max(100).optional()
|
|
52
|
+
.describe("Max products returned (default 20). Local trim, same cost."),
|
|
53
|
+
}, async ({ limit, ...params }) => {
|
|
52
54
|
try {
|
|
53
55
|
const data = await getClient().post("/api/v1/walmart/search", params);
|
|
54
|
-
return trimResponse(data);
|
|
56
|
+
return trimResponse(data, { limit: limit ?? 20, listKeys: ["products"] });
|
|
55
57
|
}
|
|
56
58
|
catch (err) {
|
|
57
59
|
return handleApiError(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walmart.js","sourceRoot":"","sources":["../../src/tools/walmart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC3D,QAAQ,CAAC,0EAA0E,CAAC,CAAC;AAExF;;;;;GAKG;AACH,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;KACnE,QAAQ,CAAC,4CAA4C,CAAC,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KACzD,QAAQ,CAAC,+HAA+H,CAAC,CAAC;AAC7I,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC9C,QAAQ,CAAC,sIAAsI,CAAC,CAAC;AAEpJ,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;KAClH,QAAQ,CAAC,mCAAmC,CAAC,CAAC;AAEjD,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,SAA6B;IACnF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"walmart.js","sourceRoot":"","sources":["../../src/tools/walmart.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scavio/mcp-server",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.6",
|
|
4
4
|
"mcpName": "io.github.scavio-ai/scavio-mcp",
|
|
5
5
|
"description": "MCP server connecting AI agents to Scavio: web search, page extraction, and structured e-commerce, social, travel, jobs, real-estate, app-store, ad-library and company-filing data. 191 tools across 31 platforms plus Extract, one API key.",
|
|
6
6
|
"type": "module",
|
|
@@ -53,6 +53,7 @@
|
|
|
53
53
|
"start": "node dist/index.js",
|
|
54
54
|
"typecheck": "tsc --noEmit",
|
|
55
55
|
"toolslist": "node scripts/toolslist.mjs",
|
|
56
|
+
"trim-check": "node scripts/trim-check.mjs",
|
|
56
57
|
"prepublishOnly": "npm run build"
|
|
57
58
|
},
|
|
58
59
|
"publishConfig": {
|