@decodo/mcp-server 1.2.3 → 1.2.5
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 +142 -31
- package/build/auth/constants.js +12 -0
- package/build/auth/constants.js.map +1 -0
- package/build/auth/credential.js +27 -0
- package/build/auth/credential.js.map +1 -0
- package/build/auth/detect-credential-type.js +14 -0
- package/build/auth/detect-credential-type.js.map +1 -0
- package/build/auth/index.js +12 -0
- package/build/auth/index.js.map +1 -0
- package/build/{clients → auth}/types.js.map +1 -1
- package/build/clients/retry.js +17 -19
- package/build/clients/retry.js.map +1 -1
- package/build/clients/scraper-api-client.js +99 -42
- package/build/clients/scraper-api-client.js.map +1 -1
- package/build/constants.js +1 -34
- package/build/constants.js.map +1 -1
- package/build/index.js +8 -4
- package/build/index.js.map +1 -1
- package/build/logger.js +16 -0
- package/build/logger.js.map +1 -0
- package/build/server/cors.js +30 -0
- package/build/server/cors.js.map +1 -0
- package/build/server/sapi-base-server.js +0 -1
- package/build/server/sapi-base-server.js.map +1 -1
- package/build/server/sapi-http-server.js.map +1 -1
- package/build/server/sapi-stdio-server.js.map +1 -1
- package/build/server.js +9 -7
- package/build/server.js.map +1 -1
- package/build/tools/amazon-bestsellers/amazon-bestsellers-tool.js +5 -3
- package/build/tools/amazon-bestsellers/amazon-bestsellers-tool.js.map +1 -1
- package/build/tools/amazon-pricing/amazon-pricing-tool.js +5 -2
- package/build/tools/amazon-pricing/amazon-pricing-tool.js.map +1 -1
- package/build/tools/amazon-product/amazon-product-tool.js +5 -2
- package/build/tools/amazon-product/amazon-product-tool.js.map +1 -1
- package/build/tools/amazon-search/amazon-search-tool.js +5 -2
- package/build/tools/amazon-search/amazon-search-tool.js.map +1 -1
- package/build/tools/amazon-sellers/amazon-sellers-tool.js +5 -2
- package/build/tools/amazon-sellers/amazon-sellers-tool.js.map +1 -1
- package/build/tools/bing-search/bing-search-tool.js +11 -9
- package/build/tools/bing-search/bing-search-tool.js.map +1 -1
- package/build/tools/chatgpt/chatgpt-tool.js +5 -1
- package/build/tools/chatgpt/chatgpt-tool.js.map +1 -1
- package/build/tools/google-ads/google-ads-tool.js +5 -1
- package/build/tools/google-ads/google-ads-tool.js.map +1 -1
- package/build/tools/google-ai-mode/google-ai-mode-tool.js +13 -7
- package/build/tools/google-ai-mode/google-ai-mode-tool.js.map +1 -1
- package/build/tools/google-lens/google-lens-tool.js +5 -1
- package/build/tools/google-lens/google-lens-tool.js.map +1 -1
- package/build/tools/google-search/google-search-tool.js +5 -1
- package/build/tools/google-search/google-search-tool.js.map +1 -1
- package/build/tools/google-travel-hotels/google-travel-hotels-tool.js +5 -1
- package/build/tools/google-travel-hotels/google-travel-hotels-tool.js.map +1 -1
- package/build/tools/perplexity/perplexity-tool.js +5 -1
- package/build/tools/perplexity/perplexity-tool.js.map +1 -1
- package/build/tools/reddit-post/reddit-post-tool.js +5 -1
- package/build/tools/reddit-post/reddit-post-tool.js.map +1 -1
- package/build/tools/reddit-subreddit/reddit-subreddit-tool.js +5 -1
- package/build/tools/reddit-subreddit/reddit-subreddit-tool.js.map +1 -1
- package/build/tools/reddit-user/reddit-user-tool.js +5 -1
- package/build/tools/reddit-user/reddit-user-tool.js.map +1 -1
- package/build/tools/scrape-as-markdown/scrape-as-markdown-tool.js +3 -0
- package/build/tools/scrape-as-markdown/scrape-as-markdown-tool.js.map +1 -1
- package/build/tools/screenshot/screenshot-tool.js +3 -0
- package/build/tools/screenshot/screenshot-tool.js.map +1 -1
- package/build/tools/target-product/target-product-tool.js +5 -3
- package/build/tools/target-product/target-product-tool.js.map +1 -1
- package/build/tools/target-search/target-search-tool.js +5 -3
- package/build/tools/target-search/target-search-tool.js.map +1 -1
- package/build/tools/tiktok-post/tiktok-post-tool.js +5 -1
- package/build/tools/tiktok-post/tiktok-post-tool.js.map +1 -1
- package/build/tools/tiktok-shop-product/tiktok-shop-product-tool.js +5 -1
- package/build/tools/tiktok-shop-product/tiktok-shop-product-tool.js.map +1 -1
- package/build/tools/tiktok-shop-search/tiktok-shop-search-tool.js +5 -2
- package/build/tools/tiktok-shop-search/tiktok-shop-search-tool.js.map +1 -1
- package/build/tools/tiktok-shop-url/tiktok-shop-url-tool.js +5 -1
- package/build/tools/tiktok-shop-url/tiktok-shop-url-tool.js.map +1 -1
- package/build/tools/tool.js.map +1 -1
- package/build/tools/walmart-product/walmart-product-tool.js +18 -2
- package/build/tools/walmart-product/walmart-product-tool.js.map +1 -1
- package/build/tools/walmart-search/walmart-search-tool.js +18 -3
- package/build/tools/walmart-search/walmart-search-tool.js.map +1 -1
- package/build/tools/youtube-channel/youtube-channel-tool.js +5 -1
- package/build/tools/youtube-channel/youtube-channel-tool.js.map +1 -1
- package/build/tools/youtube-metadata/youtube-metadata-tool.js +5 -1
- package/build/tools/youtube-metadata/youtube-metadata-tool.js.map +1 -1
- package/build/tools/youtube-search/youtube-search-tool.js +5 -1
- package/build/tools/youtube-search/youtube-search-tool.js.map +1 -1
- package/build/tools/youtube-subtitles/youtube-subtitles-tool.js +5 -1
- package/build/tools/youtube-subtitles/youtube-subtitles-tool.js.map +1 -1
- package/package.json +5 -2
- /package/build/{clients → auth}/types.js +0 -0
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.TiktokShopSearchTool = void 0;
|
|
7
7
|
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const sdk_ts_1 = require("@decodo/sdk-ts");
|
|
8
9
|
const constants_1 = require("../../constants");
|
|
9
10
|
const utils_1 = require("../../utils");
|
|
10
11
|
const zod_types_1 = require("../../zod/zod-types");
|
|
@@ -21,20 +22,22 @@ class TiktokShopSearchTool extends tool_1.Tool {
|
|
|
21
22
|
};
|
|
22
23
|
this.register = ({ server, sapiClient, auth }) => {
|
|
23
24
|
server.registerTool('tiktok_shop_search', {
|
|
25
|
+
title: 'TikTok Shop Search',
|
|
24
26
|
description: 'Scrape TikTok Shop Search results with automatic parsing',
|
|
25
27
|
inputSchema: {
|
|
26
28
|
query: zod_1.default.string().describe('Search query for TikTok Shop products'),
|
|
27
|
-
geo: zod_types_1.zodGeo,
|
|
28
29
|
jsRender: zod_types_1.zodJsRender,
|
|
29
30
|
country: zod_types_1.zodCountry,
|
|
30
31
|
deviceType: zod_types_1.zodDeviceType,
|
|
31
32
|
},
|
|
32
33
|
annotations: {
|
|
34
|
+
title: 'TikTok Shop Search',
|
|
33
35
|
readOnlyHint: true,
|
|
36
|
+
destructiveHint: false,
|
|
34
37
|
openWorldHint: true,
|
|
35
38
|
},
|
|
36
39
|
}, async (scrapingParams, extra) => {
|
|
37
|
-
const params = Object.assign(Object.assign({}, scrapingParams), { target:
|
|
40
|
+
const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.TiktokShopSearch, markdown: true });
|
|
38
41
|
const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
|
|
39
42
|
const { data: text } = this.transformResponse({ data });
|
|
40
43
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiktok-shop-search-tool.js","sourceRoot":"","sources":["../../../src/tools/tiktok-shop-search/tiktok-shop-search-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;
|
|
1
|
+
{"version":3,"file":"tiktok-shop-search-tool.js","sourceRoot":"","sources":["../../../src/tools/tiktok-shop-search/tiktok-shop-search-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,uCAAuE;AACvE,mDAA6E;AAC7E,kCAAqD;AAErD,MAAa,oBAAqB,SAAQ,WAAI;IAA9C;;QACE,YAAO,GAAG,mBAAO,CAAC,SAAS,CAAC;QAI5B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,KAAK,MAAM,aAAa,IAAI,oBAAoB,CAAC,2BAA2B,EAAE,CAAC;gBAC7E,IAAI,GAAG,IAAA,iCAAyB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;gBACE,KAAK,EAAE,oBAAoB;gBAC3B,WAAW,EAAE,0DAA0D;gBACvE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;oBACnE,QAAQ,EAAE,uBAAW;oBACrB,OAAO,EAAE,sBAAU;oBACnB,UAAU,EAAE,yBAAa;iBAC1B;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,oBAAoB;oBAC3B,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,eAAM,CAAC,gBAAgB,EAC/B,QAAQ,EAAE,IAAI,GACY,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAExD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI;yBACL;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;;AAtDD,oDAsDC;AAnDgB,gDAA2B,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,AAA/B,CAAgC"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.TiktokShopUrlTool = void 0;
|
|
7
7
|
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const sdk_ts_1 = require("@decodo/sdk-ts");
|
|
8
9
|
const constants_1 = require("../../constants");
|
|
9
10
|
const zod_types_1 = require("../../zod/zod-types");
|
|
10
11
|
const tool_1 = require("../tool");
|
|
@@ -17,17 +18,20 @@ class TiktokShopUrlTool extends tool_1.Tool {
|
|
|
17
18
|
};
|
|
18
19
|
this.register = ({ server, sapiClient, auth }) => {
|
|
19
20
|
server.registerTool('tiktok_shop_url', {
|
|
21
|
+
title: 'TikTok Shop URL',
|
|
20
22
|
description: 'Scrape TikTok Shop page by URL',
|
|
21
23
|
inputSchema: {
|
|
22
24
|
url: zod_1.default.string().describe('TikTok Shop URL (e.g., "https://www.tiktok.com/shop/s?q=HEADPHONES")'),
|
|
23
25
|
jsRender: zod_types_1.zodJsRender,
|
|
24
26
|
},
|
|
25
27
|
annotations: {
|
|
28
|
+
title: 'TikTok Shop URL',
|
|
26
29
|
readOnlyHint: true,
|
|
30
|
+
destructiveHint: false,
|
|
27
31
|
openWorldHint: true,
|
|
28
32
|
},
|
|
29
33
|
}, async (scrapingParams, extra) => {
|
|
30
|
-
const params = Object.assign(Object.assign({}, scrapingParams), { target:
|
|
34
|
+
const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.Tiktok });
|
|
31
35
|
const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
|
|
32
36
|
return {
|
|
33
37
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiktok-shop-url-tool.js","sourceRoot":"","sources":["../../../src/tools/tiktok-shop-url/tiktok-shop-url-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;
|
|
1
|
+
{"version":3,"file":"tiktok-shop-url-tool.js","sourceRoot":"","sources":["../../../src/tools/tiktok-shop-url/tiktok-shop-url-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,mDAAkD;AAClD,kCAAqD;AAGrD,MAAa,iBAAkB,SAAQ,WAAI;IAA3C;;QACE,YAAO,GAAG,mBAAO,CAAC,SAAS,CAAC;QAE5B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;gBACE,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,gCAAgC;gBAC7C,WAAW,EAAE;oBACX,GAAG,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;oBAChG,QAAQ,EAAE,uBAAW;iBACtB;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,iBAAiB;oBACxB,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,eAAM,CAAC,MAAM,GACK,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;yBAC3B;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AA3CD,8CA2CC"}
|
package/build/tools/tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/tools/tool.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/tools/tool.ts"],"names":[],"mappings":";;;AAWA,MAAsB,IAAI;CAYzB;AAZD,oBAYC"}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
2
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
15
|
};
|
|
5
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
17
|
exports.WalmartProductTool = void 0;
|
|
7
18
|
const zod_1 = __importDefault(require("zod"));
|
|
19
|
+
const sdk_ts_1 = require("@decodo/sdk-ts");
|
|
8
20
|
const constants_1 = require("../../constants");
|
|
9
21
|
const utils_1 = require("../../utils");
|
|
10
22
|
const zod_types_1 = require("../../zod/zod-types");
|
|
@@ -29,6 +41,7 @@ class WalmartProductTool extends tool_1.Tool {
|
|
|
29
41
|
};
|
|
30
42
|
this.register = ({ server, sapiClient, auth }) => {
|
|
31
43
|
server.registerTool('walmart_product', {
|
|
44
|
+
title: 'Walmart Product',
|
|
32
45
|
description: 'Scrape Walmart Product page with automatic parsing',
|
|
33
46
|
inputSchema: {
|
|
34
47
|
product_id: zod_1.default.string().describe('Walmart product ID (e.g., "15296401808")'),
|
|
@@ -37,11 +50,14 @@ class WalmartProductTool extends tool_1.Tool {
|
|
|
37
50
|
storeId: zodStoreId,
|
|
38
51
|
},
|
|
39
52
|
annotations: {
|
|
53
|
+
title: 'Walmart Product',
|
|
40
54
|
readOnlyHint: true,
|
|
55
|
+
destructiveHint: false,
|
|
41
56
|
openWorldHint: true,
|
|
42
57
|
},
|
|
43
|
-
}, async (
|
|
44
|
-
|
|
58
|
+
}, async (_a, extra) => {
|
|
59
|
+
var { storeId } = _a, scrapingParams = __rest(_a, ["storeId"]);
|
|
60
|
+
const params = Object.assign(Object.assign(Object.assign({}, scrapingParams), (storeId && { walmart_store_id: String(storeId) })), { target: sdk_ts_1.Target.WalmartProduct, parse: true });
|
|
45
61
|
const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
|
|
46
62
|
const { data: text } = this.transformResponse({ data });
|
|
47
63
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walmart-product-tool.js","sourceRoot":"","sources":["../../../src/tools/walmart-product/walmart-product-tool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"walmart-product-tool.js","sourceRoot":"","sources":["../../../src/tools/walmart-product/walmart-product-tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,uCAAuE;AACvE,mDAAkD;AAClD,kCAAqD;AAErD,MAAM,cAAc,GAAG,aAAC;KACrB,MAAM,EAAE;KACR,QAAQ,CAAC,gCAAgC,CAAC;KAC1C,QAAQ,EAAE,CAAC;AAEd,MAAM,UAAU,GAAG,aAAC;KACjB,MAAM,EAAE;KACR,QAAQ,CAAC,sCAAsC,CAAC;KAChD,QAAQ,EAAE,CAAC;AAEd,MAAa,kBAAmB,SAAQ,WAAI;IAA5C;;QACE,YAAO,GAAG,mBAAO,CAAC,SAAS,CAAC;QAI5B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,KAAK,MAAM,aAAa,IAAI,kBAAkB,CAAC,2BAA2B,EAAE,CAAC;gBAC3E,IAAI,GAAG,IAAA,iCAAyB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;gBACE,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,oDAAoD;gBACjE,WAAW,EAAE;oBACX,UAAU,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;oBAC3E,QAAQ,EAAE,uBAAW;oBACrB,WAAW,EAAE,cAAc;oBAC3B,OAAO,EAAE,UAAU;iBACpB;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,iBAAiB;oBACxB,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,EAAiD,EAAE,KAAoB,EAAE,EAAE;oBAA3E,EAAE,OAAO,OAAwC,EAAnC,cAAc,cAA5B,WAA8B,CAAF;gBACjC,MAAM,MAAM,GAAG,8CACV,cAAc,GACd,CAAC,OAAO,IAAI,EAAE,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KACrD,MAAM,EAAE,eAAM,CAAC,cAAc,EAC7B,KAAK,EAAE,IAAI,GACe,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAExD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI;yBACL;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;;AAvDD,gDAuDC;AApDgB,8CAA2B,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC,AAApC,CAAqC"}
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
2
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
15
|
};
|
|
5
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
17
|
exports.WalmartSearchTool = void 0;
|
|
7
18
|
const zod_1 = __importDefault(require("zod"));
|
|
19
|
+
const sdk_ts_1 = require("@decodo/sdk-ts");
|
|
8
20
|
const constants_1 = require("../../constants");
|
|
9
21
|
const utils_1 = require("../../utils");
|
|
10
22
|
const zod_types_1 = require("../../zod/zod-types");
|
|
@@ -29,20 +41,23 @@ class WalmartSearchTool extends tool_1.Tool {
|
|
|
29
41
|
};
|
|
30
42
|
this.register = ({ server, sapiClient, auth }) => {
|
|
31
43
|
server.registerTool('walmart_search', {
|
|
44
|
+
title: 'Walmart Search',
|
|
32
45
|
description: 'Scrape Walmart Search results with automatic parsing',
|
|
33
46
|
inputSchema: {
|
|
34
47
|
query: zod_1.default.string().describe('Search query for Walmart products (e.g., "camping tent")'),
|
|
35
48
|
jsRender: zod_types_1.zodJsRender,
|
|
36
|
-
deviceType: zod_types_1.zodDeviceType,
|
|
37
49
|
deliveryZip: zodDeliveryZip,
|
|
38
50
|
storeId: zodWalmartStoreId,
|
|
39
51
|
},
|
|
40
52
|
annotations: {
|
|
53
|
+
title: 'Walmart Search',
|
|
41
54
|
readOnlyHint: true,
|
|
55
|
+
destructiveHint: false,
|
|
42
56
|
openWorldHint: true,
|
|
43
57
|
},
|
|
44
|
-
}, async (
|
|
45
|
-
|
|
58
|
+
}, async (_a, extra) => {
|
|
59
|
+
var { storeId } = _a, scrapingParams = __rest(_a, ["storeId"]);
|
|
60
|
+
const params = Object.assign(Object.assign(Object.assign({}, scrapingParams), (storeId && { walmart_store_id: String(storeId) })), { target: sdk_ts_1.Target.WalmartSearch, markdown: true });
|
|
46
61
|
const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
|
|
47
62
|
const { data: text } = this.transformResponse({ data });
|
|
48
63
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walmart-search-tool.js","sourceRoot":"","sources":["../../../src/tools/walmart-search/walmart-search-tool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"walmart-search-tool.js","sourceRoot":"","sources":["../../../src/tools/walmart-search/walmart-search-tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,uCAAuE;AACvE,mDAAkD;AAClD,kCAAqD;AAErD,MAAM,cAAc,GAAG,aAAC;KACrB,MAAM,EAAE;KACR,QAAQ,CAAC,gCAAgC,CAAC;KAC1C,QAAQ,EAAE,CAAC;AAEd,MAAM,iBAAiB,GAAG,aAAC;KACxB,MAAM,EAAE;KACR,QAAQ,CAAC,sCAAsC,CAAC;KAChD,QAAQ,EAAE,CAAC;AAEd,MAAa,iBAAkB,SAAQ,WAAI;IAA3C;;QACE,YAAO,GAAG,mBAAO,CAAC,SAAS,CAAC;QAI5B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,KAAK,MAAM,aAAa,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,CAAC;gBAC1E,IAAI,GAAG,IAAA,iCAAyB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;gBACE,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,sDAAsD;gBACnE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;oBACtF,QAAQ,EAAE,uBAAW;oBACrB,WAAW,EAAE,cAAc;oBAC3B,OAAO,EAAE,iBAAiB;iBAC3B;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,gBAAgB;oBACvB,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,EAAiD,EAAE,KAAoB,EAAE,EAAE;oBAA3E,EAAE,OAAO,OAAwC,EAAnC,cAAc,cAA5B,WAA8B,CAAF;gBACjC,MAAM,MAAM,GAAG,8CACV,cAAc,GACd,CAAC,OAAO,IAAI,EAAE,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KACrD,MAAM,EAAE,eAAM,CAAC,aAAa,EAC5B,QAAQ,EAAE,IAAI,GACY,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAExD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI;yBACL;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;;AAvDD,8CAuDC;AApDgB,6CAA2B,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,AAA/B,CAAgC"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.YoutubeChannelTool = void 0;
|
|
7
7
|
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const sdk_ts_1 = require("@decodo/sdk-ts");
|
|
8
9
|
const constants_1 = require("../../constants");
|
|
9
10
|
const tool_1 = require("../tool");
|
|
10
11
|
const zodLimit = zod_1.default
|
|
@@ -20,17 +21,20 @@ class YoutubeChannelTool extends tool_1.Tool {
|
|
|
20
21
|
};
|
|
21
22
|
this.register = ({ server, sapiClient, auth }) => {
|
|
22
23
|
server.registerTool('youtube_channel', {
|
|
24
|
+
title: 'YouTube Channel',
|
|
23
25
|
description: 'Scrape YouTube channel videos with automatic parsing',
|
|
24
26
|
inputSchema: {
|
|
25
27
|
query: zod_1.default.string().describe('YouTube channel handle or ID (e.g., "@decodo_official")'),
|
|
26
28
|
limit: zodLimit,
|
|
27
29
|
},
|
|
28
30
|
annotations: {
|
|
31
|
+
title: 'YouTube Channel',
|
|
29
32
|
readOnlyHint: true,
|
|
33
|
+
destructiveHint: false,
|
|
30
34
|
openWorldHint: true,
|
|
31
35
|
},
|
|
32
36
|
}, async (scrapingParams, extra) => {
|
|
33
|
-
const params = Object.assign(Object.assign({}, scrapingParams), { target:
|
|
37
|
+
const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.YoutubeChannel, parse: true });
|
|
34
38
|
const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
|
|
35
39
|
return {
|
|
36
40
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"youtube-channel-tool.js","sourceRoot":"","sources":["../../../src/tools/youtube-channel/youtube-channel-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;
|
|
1
|
+
{"version":3,"file":"youtube-channel-tool.js","sourceRoot":"","sources":["../../../src/tools/youtube-channel/youtube-channel-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,kCAAqD;AAGrD,MAAM,QAAQ,GAAG,aAAC;KACf,MAAM,EAAE;KACR,QAAQ,CAAC,oCAAoC,CAAC;KAC9C,QAAQ,EAAE,CAAC;AAEd,MAAa,kBAAmB,SAAQ,WAAI;IAA5C;;QACE,YAAO,GAAG,mBAAO,CAAC,YAAY,CAAC;QAE/B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;gBACE,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,sDAAsD;gBACnE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;oBACrF,KAAK,EAAE,QAAQ;iBAChB;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,iBAAiB;oBACxB,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,eAAM,CAAC,cAAc,EAC7B,KAAK,EAAE,IAAI,GACe,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;yBAC3B;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AA5CD,gDA4CC"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.YoutubeMetadataTool = void 0;
|
|
7
7
|
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const sdk_ts_1 = require("@decodo/sdk-ts");
|
|
8
9
|
const constants_1 = require("../../constants");
|
|
9
10
|
const tool_1 = require("../tool");
|
|
10
11
|
class YoutubeMetadataTool extends tool_1.Tool {
|
|
@@ -16,16 +17,19 @@ class YoutubeMetadataTool extends tool_1.Tool {
|
|
|
16
17
|
};
|
|
17
18
|
this.register = ({ server, sapiClient, auth }) => {
|
|
18
19
|
server.registerTool('youtube_metadata', {
|
|
20
|
+
title: 'YouTube Metadata',
|
|
19
21
|
description: 'Scrape YouTube video metadata',
|
|
20
22
|
inputSchema: {
|
|
21
23
|
query: zod_1.default.string().describe('YouTube video ID (e.g., "dFu9aKJoqGg")'),
|
|
22
24
|
},
|
|
23
25
|
annotations: {
|
|
26
|
+
title: 'YouTube Metadata',
|
|
24
27
|
readOnlyHint: true,
|
|
28
|
+
destructiveHint: false,
|
|
25
29
|
openWorldHint: true,
|
|
26
30
|
},
|
|
27
31
|
}, async (scrapingParams, extra) => {
|
|
28
|
-
const params = Object.assign(Object.assign({}, scrapingParams), { target:
|
|
32
|
+
const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.YoutubeMetadata });
|
|
29
33
|
const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
|
|
30
34
|
return {
|
|
31
35
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"youtube-metadata-tool.js","sourceRoot":"","sources":["../../../src/tools/youtube-metadata/youtube-metadata-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;
|
|
1
|
+
{"version":3,"file":"youtube-metadata-tool.js","sourceRoot":"","sources":["../../../src/tools/youtube-metadata/youtube-metadata-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,kCAAqD;AAGrD,MAAa,mBAAoB,SAAQ,WAAI;IAA7C;;QACE,YAAO,GAAG,mBAAO,CAAC,YAAY,CAAC;QAE/B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;gBACE,KAAK,EAAE,kBAAkB;gBACzB,WAAW,EAAE,+BAA+B;gBAC5C,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;iBACrE;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,kBAAkB;oBACzB,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,eAAM,CAAC,eAAe,GACJ,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;yBAC3B;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AA1CD,kDA0CC"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.YoutubeSearchTool = void 0;
|
|
7
7
|
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const sdk_ts_1 = require("@decodo/sdk-ts");
|
|
8
9
|
const constants_1 = require("../../constants");
|
|
9
10
|
const tool_1 = require("../tool");
|
|
10
11
|
class YoutubeSearchTool extends tool_1.Tool {
|
|
@@ -16,16 +17,19 @@ class YoutubeSearchTool extends tool_1.Tool {
|
|
|
16
17
|
};
|
|
17
18
|
this.register = ({ server, sapiClient, auth }) => {
|
|
18
19
|
server.registerTool('youtube_search', {
|
|
20
|
+
title: 'YouTube Search',
|
|
19
21
|
description: 'Search YouTube videos',
|
|
20
22
|
inputSchema: {
|
|
21
23
|
query: zod_1.default.string().describe('YouTube search query (e.g., "How to care for chinchillas")'),
|
|
22
24
|
},
|
|
23
25
|
annotations: {
|
|
26
|
+
title: 'YouTube Search',
|
|
24
27
|
readOnlyHint: true,
|
|
28
|
+
destructiveHint: false,
|
|
25
29
|
openWorldHint: true,
|
|
26
30
|
},
|
|
27
31
|
}, async (scrapingParams, extra) => {
|
|
28
|
-
const params = Object.assign(Object.assign({}, scrapingParams), { target:
|
|
32
|
+
const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.YoutubeSearch });
|
|
29
33
|
const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
|
|
30
34
|
return {
|
|
31
35
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"youtube-search-tool.js","sourceRoot":"","sources":["../../../src/tools/youtube-search/youtube-search-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;
|
|
1
|
+
{"version":3,"file":"youtube-search-tool.js","sourceRoot":"","sources":["../../../src/tools/youtube-search/youtube-search-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,kCAAqD;AAGrD,MAAa,iBAAkB,SAAQ,WAAI;IAA3C;;QACE,YAAO,GAAG,mBAAO,CAAC,YAAY,CAAC;QAE/B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;gBACE,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,uBAAuB;gBACpC,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;iBACzF;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,gBAAgB;oBACvB,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,eAAM,CAAC,aAAa,GACF,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;yBAC3B;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AA1CD,8CA0CC"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.YoutubeSubtitlesTool = void 0;
|
|
7
7
|
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const sdk_ts_1 = require("@decodo/sdk-ts");
|
|
8
9
|
const constants_1 = require("../../constants");
|
|
9
10
|
const tool_1 = require("../tool");
|
|
10
11
|
const zodLanguageCode = zod_1.default
|
|
@@ -20,17 +21,20 @@ class YoutubeSubtitlesTool extends tool_1.Tool {
|
|
|
20
21
|
};
|
|
21
22
|
this.register = ({ server, sapiClient, auth }) => {
|
|
22
23
|
server.registerTool('youtube_subtitles', {
|
|
24
|
+
title: 'YouTube Subtitles',
|
|
23
25
|
description: 'Scrape YouTube video subtitles',
|
|
24
26
|
inputSchema: {
|
|
25
27
|
query: zod_1.default.string().describe('YouTube video ID (e.g., "L8zSWbQN-v8")'),
|
|
26
28
|
language_code: zodLanguageCode,
|
|
27
29
|
},
|
|
28
30
|
annotations: {
|
|
31
|
+
title: 'YouTube Subtitles',
|
|
29
32
|
readOnlyHint: true,
|
|
33
|
+
destructiveHint: false,
|
|
30
34
|
openWorldHint: true,
|
|
31
35
|
},
|
|
32
36
|
}, async (scrapingParams, extra) => {
|
|
33
|
-
const params = Object.assign(Object.assign({}, scrapingParams), { target:
|
|
37
|
+
const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.YoutubeSubtitles });
|
|
34
38
|
const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
|
|
35
39
|
return {
|
|
36
40
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"youtube-subtitles-tool.js","sourceRoot":"","sources":["../../../src/tools/youtube-subtitles/youtube-subtitles-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;
|
|
1
|
+
{"version":3,"file":"youtube-subtitles-tool.js","sourceRoot":"","sources":["../../../src/tools/youtube-subtitles/youtube-subtitles-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,kCAAqD;AAGrD,MAAM,eAAe,GAAG,aAAC;KACtB,MAAM,EAAE;KACR,QAAQ,CAAC,gDAAgD,CAAC;KAC1D,QAAQ,EAAE,CAAC;AAEd,MAAa,oBAAqB,SAAQ,WAAI;IAA9C;;QACE,YAAO,GAAG,mBAAO,CAAC,YAAY,CAAC;QAE/B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;gBACE,KAAK,EAAE,mBAAmB;gBAC1B,WAAW,EAAE,gCAAgC;gBAC7C,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;oBACpE,aAAa,EAAE,eAAe;iBAC/B;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,mBAAmB;oBAC1B,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,eAAM,CAAC,gBAAgB,GACL,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;yBAC3B;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AA3CD,oDA2CC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decodo/mcp-server",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.5",
|
|
4
4
|
"description": "Decodo MCP Server",
|
|
5
5
|
"bin": {
|
|
6
6
|
"decodo-mcp": "./build/index.js"
|
|
@@ -27,9 +27,11 @@
|
|
|
27
27
|
"build"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
+
"@decodo/sdk-ts": "^2.3.0",
|
|
30
31
|
"@modelcontextprotocol/sdk": "^1.12.3",
|
|
31
|
-
"
|
|
32
|
+
"cors": "^2.8.5",
|
|
32
33
|
"dotenv": "^16.5.0",
|
|
34
|
+
"express": "^5.2.1",
|
|
33
35
|
"node-html-markdown": "^1.3.0",
|
|
34
36
|
"tsx": "^4.21.0"
|
|
35
37
|
},
|
|
@@ -40,6 +42,7 @@
|
|
|
40
42
|
"@semantic-release/git": "^10.0.1",
|
|
41
43
|
"@semantic-release/github": "^12.0.6",
|
|
42
44
|
"@semantic-release/npm": "^13.1.5",
|
|
45
|
+
"@types/cors": "^2.8.17",
|
|
43
46
|
"@types/express": "^5.0.1",
|
|
44
47
|
"@types/jest": "^30.0.0",
|
|
45
48
|
"@types/node": "^24.0.0",
|
|
File without changes
|