@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
package/build/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.TOOLSET = void 0;
|
|
4
4
|
var TOOLSET;
|
|
5
5
|
(function (TOOLSET) {
|
|
6
6
|
TOOLSET["WEB"] = "web";
|
|
@@ -9,37 +9,4 @@ var TOOLSET;
|
|
|
9
9
|
TOOLSET["SOCIAL_MEDIA"] = "social_media";
|
|
10
10
|
TOOLSET["AI"] = "ai";
|
|
11
11
|
})(TOOLSET || (exports.TOOLSET = TOOLSET = {}));
|
|
12
|
-
// todo: utils
|
|
13
|
-
var SCRAPER_API_TARGETS;
|
|
14
|
-
(function (SCRAPER_API_TARGETS) {
|
|
15
|
-
SCRAPER_API_TARGETS["GOOGLE_SEARCH"] = "google_search";
|
|
16
|
-
SCRAPER_API_TARGETS["GOOGLE_TRAVEL_HOTELS"] = "google_travel_hotels";
|
|
17
|
-
SCRAPER_API_TARGETS["GOOGLE_ADS"] = "google_ads";
|
|
18
|
-
SCRAPER_API_TARGETS["GOOGLE_LENS"] = "google_lens";
|
|
19
|
-
SCRAPER_API_TARGETS["GOOGLE_AI_MODE"] = "google_ai_mode";
|
|
20
|
-
SCRAPER_API_TARGETS["AMAZON_SEARCH"] = "amazon_search";
|
|
21
|
-
SCRAPER_API_TARGETS["AMAZON_PRODUCT"] = "amazon_product";
|
|
22
|
-
SCRAPER_API_TARGETS["AMAZON_PRICING"] = "amazon_pricing";
|
|
23
|
-
SCRAPER_API_TARGETS["AMAZON_SELLERS"] = "amazon_sellers";
|
|
24
|
-
SCRAPER_API_TARGETS["AMAZON_BESTSELLERS"] = "amazon_bestsellers";
|
|
25
|
-
SCRAPER_API_TARGETS["WALMART_SEARCH"] = "walmart_search";
|
|
26
|
-
SCRAPER_API_TARGETS["WALMART_PRODUCT"] = "walmart_product";
|
|
27
|
-
SCRAPER_API_TARGETS["TARGET_SEARCH"] = "target_search";
|
|
28
|
-
SCRAPER_API_TARGETS["TARGET_PRODUCT"] = "target_product";
|
|
29
|
-
SCRAPER_API_TARGETS["TIKTOK_POST"] = "tiktok_post";
|
|
30
|
-
SCRAPER_API_TARGETS["TIKTOK_SHOP_SEARCH"] = "tiktok_shop_search";
|
|
31
|
-
SCRAPER_API_TARGETS["TIKTOK_SHOP_PRODUCT"] = "tiktok_shop_product";
|
|
32
|
-
SCRAPER_API_TARGETS["TIKTOK_SHOP_URL"] = "tiktok";
|
|
33
|
-
SCRAPER_API_TARGETS["YOUTUBE_VIDEO"] = "youtube_video";
|
|
34
|
-
SCRAPER_API_TARGETS["YOUTUBE_METADATA"] = "youtube_metadata";
|
|
35
|
-
SCRAPER_API_TARGETS["YOUTUBE_CHANNEL"] = "youtube_channel";
|
|
36
|
-
SCRAPER_API_TARGETS["YOUTUBE_SUBTITLES"] = "youtube_subtitles";
|
|
37
|
-
SCRAPER_API_TARGETS["YOUTUBE_SEARCH"] = "youtube_search";
|
|
38
|
-
SCRAPER_API_TARGETS["REDDIT_POST"] = "reddit_post";
|
|
39
|
-
SCRAPER_API_TARGETS["REDDIT_SUBREDDIT"] = "reddit_subreddit";
|
|
40
|
-
SCRAPER_API_TARGETS["REDDIT_USER"] = "reddit_user";
|
|
41
|
-
SCRAPER_API_TARGETS["BING_SEARCH"] = "bing_search";
|
|
42
|
-
SCRAPER_API_TARGETS["CHATGPT"] = "chatgpt";
|
|
43
|
-
SCRAPER_API_TARGETS["PERPLEXITY"] = "perplexity";
|
|
44
|
-
})(SCRAPER_API_TARGETS || (exports.SCRAPER_API_TARGETS = SCRAPER_API_TARGETS = {}));
|
|
45
12
|
//# sourceMappingURL=constants.js.map
|
package/build/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,OAMX;AAND,WAAY,OAAO;IACjB,sBAAW,CAAA;IACX,4BAAiB,CAAA;IACjB,kCAAuB,CAAA;IACvB,wCAA6B,CAAA;IAC7B,oBAAS,CAAA;AACX,CAAC,EANW,OAAO,uBAAP,OAAO,QAMlB
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,OAMX;AAND,WAAY,OAAO;IACjB,sBAAW,CAAA;IACX,4BAAiB,CAAA;IACjB,kCAAuB,CAAA;IACvB,wCAA6B,CAAA;IAC7B,oBAAS,CAAA;AACX,CAAC,EANW,OAAO,uBAAP,OAAO,QAMlB"}
|
package/build/index.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
require("dotenv/config");
|
|
5
5
|
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
6
|
+
const auth_1 = require("./auth");
|
|
6
7
|
const sapi_stdio_server_1 = require("./server/sapi-stdio-server");
|
|
7
8
|
const utils_1 = require("./utils");
|
|
8
9
|
const parseEnvsOrExit = () => {
|
|
@@ -13,9 +14,12 @@ const parseEnvsOrExit = () => {
|
|
|
13
14
|
process.exit(1);
|
|
14
15
|
}
|
|
15
16
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
const sapiAuth = (0, auth_1.credentialFromValue)(process.env['SCRAPER_API_TOKEN']);
|
|
18
|
+
if (!sapiAuth) {
|
|
19
|
+
console.error('env SCRAPER_API_TOKEN missing');
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
return { sapiAuth };
|
|
19
23
|
};
|
|
20
24
|
const main = async () => {
|
|
21
25
|
const transport = new stdio_js_1.StdioServerTransport();
|
|
@@ -26,7 +30,7 @@ const main = async () => {
|
|
|
26
30
|
toolsets: (0, utils_1.resolveToolsets)(process.env.TOOLSETS),
|
|
27
31
|
});
|
|
28
32
|
await sapiMcpServer.connect(transport);
|
|
29
|
-
console.error(
|
|
33
|
+
console.error(`MCP Server running on stdio (auth: ${sapiAuth.type})`);
|
|
30
34
|
};
|
|
31
35
|
main().catch(error => {
|
|
32
36
|
console.error('Fatal error in main():', error);
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yBAAuB;AAEvB,wEAAiF;AACjF,kEAAmE;AACnE,mCAA0C;AAE1C,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,MAAM,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAEnC,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,OAAO,MAAM,UAAU,CAAC,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yBAAuB;AAEvB,wEAAiF;AACjF,iCAA6C;AAC7C,kEAAmE;AACnE,mCAA0C;AAE1C,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,MAAM,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAEnC,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,OAAO,MAAM,UAAU,CAAC,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,0BAAmB,EAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAW,CAAC,CAAC;IAEjF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IACtB,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAE7C,4DAA4D;IAC5D,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,EAAE,CAAC;IAEvC,MAAM,aAAa,GAAG,IAAI,yCAAqB,CAAC;QAC9C,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAA,uBAAe,EAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;KAChD,CAAC,CAAC;IACH,MAAM,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvC,OAAO,CAAC,KAAK,CAAC,sCAAsC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;AACxE,CAAC,CAAC;AAEF,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/build/logger.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Structured JSON logger — always writes to stderr.
|
|
4
|
+
* stderr is safe for both stdio and HTTP transports:
|
|
5
|
+
* - stdio: MCP protocol uses stdout; stderr is out-of-band and visible in logs
|
|
6
|
+
* - HTTP: stderr is captured by the container runtime (GCP Cloud Logging etc.)
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.log = void 0;
|
|
10
|
+
const log = (level, event, fields = {}) => {
|
|
11
|
+
const entry = JSON.stringify(Object.assign({ ts: new Date().toISOString(), level,
|
|
12
|
+
event }, fields));
|
|
13
|
+
process.stderr.write(entry + '\n');
|
|
14
|
+
};
|
|
15
|
+
exports.log = log;
|
|
16
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAMI,MAAM,GAAG,GAAG,CAAC,KAAe,EAAE,KAAa,EAAE,SAAoB,EAAE,EAAQ,EAAE;IAClF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,iBAC1B,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAC5B,KAAK;QACL,KAAK,IACF,MAAM,EACT,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AACrC,CAAC,CAAC;AARW,QAAA,GAAG,OAQd"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.corsOptions = exports.isAllowedOrigin = void 0;
|
|
4
|
+
const ALLOWED_ORIGIN_PATTERNS = [
|
|
5
|
+
/^https:\/\/([a-z0-9-]+\.)*claude\.ai$/,
|
|
6
|
+
/^https:\/\/([a-z0-9-]+\.)*anthropic\.com$/,
|
|
7
|
+
/^http:\/\/localhost(:\d+)?$/,
|
|
8
|
+
/^http:\/\/127\.0\.0\.1(:\d+)?$/,
|
|
9
|
+
];
|
|
10
|
+
const isAllowedOrigin = (origin) => {
|
|
11
|
+
if (!origin) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
return ALLOWED_ORIGIN_PATTERNS.some((pattern) => pattern.test(origin));
|
|
15
|
+
};
|
|
16
|
+
exports.isAllowedOrigin = isAllowedOrigin;
|
|
17
|
+
exports.corsOptions = {
|
|
18
|
+
origin: (origin, callback) => {
|
|
19
|
+
if ((0, exports.isAllowedOrigin)(origin)) {
|
|
20
|
+
callback(null, true);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
callback(null, false);
|
|
24
|
+
},
|
|
25
|
+
methods: ['GET', 'POST', 'OPTIONS'],
|
|
26
|
+
allowedHeaders: ['Content-Type', 'Authorization', 'Mcp-Session-Id'],
|
|
27
|
+
exposedHeaders: ['Mcp-Session-Id'],
|
|
28
|
+
maxAge: 86400,
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=cors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors.js","sourceRoot":"","sources":["../../src/server/cors.ts"],"names":[],"mappings":";;;AAEA,MAAM,uBAAuB,GAAG;IAC9B,uCAAuC;IACvC,2CAA2C;IAC3C,6BAA6B;IAC7B,gCAAgC;CACjC,CAAC;AAEK,MAAM,eAAe,GAAG,CAAC,MAA0B,EAAW,EAAE;IACrE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC;AANW,QAAA,eAAe,mBAM1B;AAEW,QAAA,WAAW,GAAqB;IAC3C,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;QAC3B,IAAI,IAAA,uBAAe,EAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;IACnC,cAAc,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,gBAAgB,CAAC;IACnE,cAAc,EAAE,CAAC,gBAAgB,CAAC;IAClC,MAAM,EAAE,KAAK;CACd,CAAC"}
|
|
@@ -7,7 +7,6 @@ const version_1 = require("../version");
|
|
|
7
7
|
const tools_1 = require("../tools");
|
|
8
8
|
class ScraperAPIBaseServer {
|
|
9
9
|
constructor({ auth, toolsets = [] }) {
|
|
10
|
-
this.auth = '';
|
|
11
10
|
this.server = new mcp_js_1.McpServer({
|
|
12
11
|
name: 'decodo',
|
|
13
12
|
version: version_1.PACKAGE_VERSION,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sapi-base-server.js","sourceRoot":"","sources":["../../src/server/sapi-base-server.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;
|
|
1
|
+
{"version":3,"file":"sapi-base-server.js","sourceRoot":"","sources":["../../src/server/sapi-base-server.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AAGpE,sEAAiE;AACjE,wCAA6C;AAC7C,oCA+BkB;AAKlB,MAAa,oBAAoB;IAO/B,YAAY,EAAE,IAAI,EAAE,QAAQ,GAAG,EAAE,EAAiD;QAChF,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAS,CAAC;YAC1B,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,yBAAe;SACzB,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,qCAAgB,CAAC,EAAE,CAAC,CAAC;QAE3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEjC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,SAA+D;QACrE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAmCD,aAAa,CAAC,EAAE,QAAQ,EAA2B;QACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;YACrF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,KAAK,MAAM,IAAI,IAAI,oBAAoB,CAAC,QAAQ,EAAE,CAAC;YACjD,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,gDAAgD;IAClD,CAAC;;AAhFH,oDAiFC;AAxDQ,6BAAQ,GAAW;IACxB,IAAI,4BAAoB,EAAE;IAC1B,IAAI,sBAAc,EAAE;IACpB,IAAI,wBAAgB,EAAE;IACtB,IAAI,qBAAa,EAAE;IACnB,IAAI,sBAAc,EAAE;IACpB,IAAI,wBAAgB,EAAE;IACtB,IAAI,8BAAsB,EAAE;IAC5B,IAAI,wBAAgB,EAAE;IACtB,IAAI,yBAAiB,EAAE;IACvB,IAAI,yBAAiB,EAAE;IACvB,IAAI,yBAAiB,EAAE;IACvB,IAAI,6BAAqB,EAAE;IAC3B,IAAI,yBAAiB,EAAE;IACvB,IAAI,0BAAkB,EAAE;IACxB,IAAI,wBAAgB,EAAE;IACtB,IAAI,yBAAiB,EAAE;IACvB,IAAI,sBAAc,EAAE;IACpB,IAAI,4BAAoB,EAAE;IAC1B,IAAI,6BAAqB,EAAE;IAC3B,IAAI,yBAAiB,EAAE;IACvB,IAAI,2BAAmB,EAAE;IACzB,IAAI,0BAAkB,EAAE;IACxB,IAAI,4BAAoB,EAAE;IAC1B,IAAI,yBAAiB,EAAE;IACvB,IAAI,sBAAc,EAAE;IACpB,IAAI,2BAAmB,EAAE;IACzB,IAAI,sBAAc,EAAE;IACpB,IAAI,sBAAc,EAAE;IACpB,IAAI,mBAAW,EAAE;IACjB,IAAI,sBAAc,EAAE;CACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sapi-http-server.js","sourceRoot":"","sources":["../../src/server/sapi-http-server.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"sapi-http-server.js","sourceRoot":"","sources":["../../src/server/sapi-http-server.ts"],"names":[],"mappings":";;;AAGA,yDAA0D;AAG1D,MAAa,oBAAqB,SAAQ,uCAAoB;IAK5D,YAAY,EAAE,QAAQ,GAAG,EAAE,EAAE,IAAI,EAAiD;QAChF,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5B,CAAC;CACF;AARD,oDAQC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sapi-stdio-server.js","sourceRoot":"","sources":["../../src/server/sapi-stdio-server.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"sapi-stdio-server.js","sourceRoot":"","sources":["../../src/server/sapi-stdio-server.ts"],"names":[],"mappings":";;;AAGA,yDAA0D;AAG1D,MAAa,qBAAsB,SAAQ,uCAAoB;IAK7D,YAAY,EAAE,IAAI,EAAE,QAAQ,GAAG,EAAE,EAAiD;QAChF,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5B,CAAC;CACF;AARD,sDAQC"}
|
package/build/server.js
CHANGED
|
@@ -4,11 +4,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
require("dotenv/config");
|
|
7
|
+
const cors_1 = __importDefault(require("cors"));
|
|
7
8
|
const express_1 = __importDefault(require("express"));
|
|
8
9
|
const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/server/streamableHttp.js");
|
|
10
|
+
const auth_1 = require("./auth");
|
|
11
|
+
const cors_2 = require("./server/cors");
|
|
9
12
|
const sapi_http_server_1 = require("./server/sapi-http-server");
|
|
10
13
|
const utils_1 = require("./utils");
|
|
11
14
|
const app = (0, express_1.default)();
|
|
15
|
+
app.use((0, cors_1.default)(cors_2.corsOptions));
|
|
12
16
|
app.use(express_1.default.json());
|
|
13
17
|
app.get('/mcp', (_req, res) => {
|
|
14
18
|
res.status(200).send('server up, use POST /mcp to see available tools');
|
|
@@ -19,17 +23,16 @@ app.post('/mcp', async (req, res) => {
|
|
|
19
23
|
res.status(401).send('Unauthorized');
|
|
20
24
|
return;
|
|
21
25
|
}
|
|
22
|
-
const
|
|
23
|
-
if (
|
|
24
|
-
res.status(401).send("Valid 'Basic' authorization required");
|
|
26
|
+
const credential = (0, auth_1.credentialFromAuthHeader)(auth);
|
|
27
|
+
if (!credential) {
|
|
28
|
+
res.status(401).send("Valid 'Basic' or 'Bearer' authorization required");
|
|
25
29
|
return;
|
|
26
30
|
}
|
|
27
|
-
const token = parts[1];
|
|
28
31
|
const toolsets = (0, utils_1.resolveToolsets)(req.query.toolsets);
|
|
29
|
-
const server = new sapi_http_server_1.ScraperAPIHttpServer({ toolsets, auth:
|
|
32
|
+
const server = new sapi_http_server_1.ScraperAPIHttpServer({ toolsets, auth: credential });
|
|
30
33
|
const transport = new streamableHttp_js_1.StreamableHTTPServerTransport({
|
|
31
34
|
sessionIdGenerator: undefined,
|
|
32
|
-
enableJsonResponse:
|
|
35
|
+
enableJsonResponse: false,
|
|
33
36
|
});
|
|
34
37
|
res.on('close', () => {
|
|
35
38
|
transport.close();
|
|
@@ -44,7 +47,6 @@ const port = parseInt(process.env.PORT || '3000');
|
|
|
44
47
|
app
|
|
45
48
|
.listen(port, () => {
|
|
46
49
|
console.log(`Demo MCP Server running on http://localhost:${port}/mcp`);
|
|
47
|
-
console.log(`API host: ${process.env.DECODO_SAPI_HOST}`);
|
|
48
50
|
})
|
|
49
51
|
.on('error', (error) => {
|
|
50
52
|
console.error('Server error:', error);
|
package/build/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;AAAA,yBAAuB;AACvB,sDAA8B;AAC9B,0FAAmG;AACnG,gEAAiE;AACjE,mCAA0C;AAE1C,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;AAEtB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAExB,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;IAEvC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,MAAM,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;AAAA,yBAAuB;AACvB,gDAAwB;AACxB,sDAA8B;AAC9B,0FAAmG;AACnG,iCAAkD;AAClD,wCAA4C;AAC5C,gEAAiE;AACjE,mCAA0C;AAE1C,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;AAEtB,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,EAAC,kBAAW,CAAC,CAAC,CAAC;AAC3B,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAExB,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;IAEvC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,+BAAwB,EAAC,IAAI,CAAC,CAAC;IAElD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,uBAAe,EAAC,GAAG,CAAC,KAAK,CAAC,QAAkB,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAG,IAAI,uCAAoB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAExE,MAAM,SAAS,GAAG,IAAI,iDAA6B,CAAC;QAClD,kBAAkB,EAAE,SAAS;QAC7B,kBAAkB,EAAE,KAAK;KAC1B,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,SAAS,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAChC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;AAElD,GAAG;KACA,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,+CAA+C,IAAI,MAAM,CAAC,CAAC;AACzE,CAAC,CAAC;KACD,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;IAC5B,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.AmazonBestsellersTool = 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
|
-
const zod_types_1 = require("../../zod/zod-types");
|
|
10
10
|
const tool_1 = require("../tool");
|
|
11
11
|
const zodDomain = zod_1.default
|
|
12
12
|
.string()
|
|
@@ -25,19 +25,21 @@ class AmazonBestsellersTool extends tool_1.Tool {
|
|
|
25
25
|
};
|
|
26
26
|
this.register = ({ server, sapiClient, auth }) => {
|
|
27
27
|
server.registerTool('amazon_bestsellers', {
|
|
28
|
+
title: 'Amazon Bestsellers',
|
|
28
29
|
description: 'Scrape Amazon Bestsellers list with automatic parsing',
|
|
29
30
|
inputSchema: {
|
|
30
31
|
query: zod_1.default.string().describe('Amazon category (e.g., "mobile-apps", "electronics")'),
|
|
31
32
|
domain: zodDomain,
|
|
32
|
-
deviceType: zod_types_1.zodDeviceType,
|
|
33
33
|
pageFrom: zodPageFrom,
|
|
34
34
|
},
|
|
35
35
|
annotations: {
|
|
36
|
+
title: 'Amazon Bestsellers',
|
|
36
37
|
readOnlyHint: true,
|
|
38
|
+
destructiveHint: false,
|
|
37
39
|
openWorldHint: true,
|
|
38
40
|
},
|
|
39
41
|
}, async (scrapingParams, extra) => {
|
|
40
|
-
const params = Object.assign(Object.assign({}, scrapingParams), { target:
|
|
42
|
+
const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.AmazonBestsellers, parse: true });
|
|
41
43
|
const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
|
|
42
44
|
return {
|
|
43
45
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amazon-bestsellers-tool.js","sourceRoot":"","sources":["../../../src/tools/amazon-bestsellers/amazon-bestsellers-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;
|
|
1
|
+
{"version":3,"file":"amazon-bestsellers-tool.js","sourceRoot":"","sources":["../../../src/tools/amazon-bestsellers/amazon-bestsellers-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,kCAAqD;AAGrD,MAAM,SAAS,GAAG,aAAC;KAChB,MAAM,EAAE;KACR,QAAQ,CAAC,gDAAgD,CAAC;KAC1D,QAAQ,EAAE,CAAC;AAEd,MAAM,WAAW,GAAG,aAAC;KAClB,MAAM,EAAE;KACR,QAAQ,CAAC,qCAAqC,CAAC;KAC/C,QAAQ,EAAE,CAAC;AAEd,MAAa,qBAAsB,SAAQ,WAAI;IAA/C;;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,oBAAoB,EACpB;gBACE,KAAK,EAAE,oBAAoB;gBAC3B,WAAW,EAAE,uDAAuD;gBACpE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;oBAClF,MAAM,EAAE,SAAS;oBACjB,QAAQ,EAAE,WAAW;iBACtB;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,iBAAiB,EAChC,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;AA7CD,sDA6CC"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.AmazonPricingTool = 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");
|
|
@@ -33,21 +34,23 @@ class AmazonPricingTool extends tool_1.Tool {
|
|
|
33
34
|
};
|
|
34
35
|
this.register = ({ server, sapiClient, auth }) => {
|
|
35
36
|
server.registerTool('amazon_pricing', {
|
|
37
|
+
title: 'Amazon Pricing',
|
|
36
38
|
description: 'Scrape Amazon Product pricing information with automatic parsing',
|
|
37
39
|
inputSchema: {
|
|
38
40
|
query: zod_1.default.string().describe('Amazon product ASIN (e.g., "B09H74FXNW")'),
|
|
39
41
|
jsRender: zod_types_1.zodJsRender,
|
|
40
42
|
domain: zodDomain,
|
|
41
|
-
deviceType: zod_types_1.zodDeviceType,
|
|
42
43
|
pageFrom: zodPageFrom,
|
|
43
44
|
geo: zodGeo,
|
|
44
45
|
},
|
|
45
46
|
annotations: {
|
|
47
|
+
title: 'Amazon Pricing',
|
|
46
48
|
readOnlyHint: true,
|
|
49
|
+
destructiveHint: false,
|
|
47
50
|
openWorldHint: true,
|
|
48
51
|
},
|
|
49
52
|
}, async (scrapingParams, extra) => {
|
|
50
|
-
const params = Object.assign(Object.assign({}, scrapingParams), { target:
|
|
53
|
+
const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.AmazonPricing, parse: true });
|
|
51
54
|
const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
|
|
52
55
|
const { data: text } = this.transformResponse({ data });
|
|
53
56
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amazon-pricing-tool.js","sourceRoot":"","sources":["../../../src/tools/amazon-pricing/amazon-pricing-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;
|
|
1
|
+
{"version":3,"file":"amazon-pricing-tool.js","sourceRoot":"","sources":["../../../src/tools/amazon-pricing/amazon-pricing-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,uCAAuE;AACvE,mDAAkD;AAClD,kCAAqD;AAErD,MAAM,SAAS,GAAG,aAAC;KAChB,MAAM,EAAE;KACR,QAAQ,CAAC,gDAAgD,CAAC;KAC1D,QAAQ,EAAE,CAAC;AAEd,MAAM,MAAM,GAAG,aAAC;KACb,MAAM,EAAE;KACR,QAAQ,CAAC,mDAAmD,CAAC;KAC7D,QAAQ,EAAE,CAAC;AAEd,MAAM,WAAW,GAAG,aAAC;KAClB,MAAM,EAAE;KACR,QAAQ,CAAC,qCAAqC,CAAC;KAC/C,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,kEAAkE;gBAC/E,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;oBACtE,QAAQ,EAAE,uBAAW;oBACrB,MAAM,EAAE,SAAS;oBACjB,QAAQ,EAAE,WAAW;oBACrB,GAAG,EAAE,MAAM;iBACZ;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,EAC5B,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,8CAuDC;AApDgB,6CAA2B,GAAG,CAAC,aAAa,CAAC,AAAlB,CAAmB"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.AmazonProductTool = 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");
|
|
@@ -29,20 +30,22 @@ class AmazonProductTool extends tool_1.Tool {
|
|
|
29
30
|
};
|
|
30
31
|
this.register = ({ server, sapiClient, auth }) => {
|
|
31
32
|
server.registerTool('amazon_product', {
|
|
33
|
+
title: 'Amazon Product',
|
|
32
34
|
description: 'Scrape Amazon Product page with automatic parsing',
|
|
33
35
|
inputSchema: {
|
|
34
36
|
query: zod_1.default.string().describe('Amazon product ASIN (e.g., "B09H74FXNW")'),
|
|
35
37
|
jsRender: zod_types_1.zodJsRender,
|
|
36
38
|
domain: zodDomain,
|
|
37
|
-
deviceType: zod_types_1.zodDeviceType,
|
|
38
39
|
geo: zodGeo,
|
|
39
40
|
},
|
|
40
41
|
annotations: {
|
|
42
|
+
title: 'Amazon Product',
|
|
41
43
|
readOnlyHint: true,
|
|
44
|
+
destructiveHint: false,
|
|
42
45
|
openWorldHint: true,
|
|
43
46
|
},
|
|
44
47
|
}, async (scrapingParams, extra) => {
|
|
45
|
-
const params = Object.assign(Object.assign({}, scrapingParams), { target:
|
|
48
|
+
const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.AmazonProduct, parse: true });
|
|
46
49
|
const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
|
|
47
50
|
const { data: text } = this.transformResponse({ data });
|
|
48
51
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amazon-product-tool.js","sourceRoot":"","sources":["../../../src/tools/amazon-product/amazon-product-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;
|
|
1
|
+
{"version":3,"file":"amazon-product-tool.js","sourceRoot":"","sources":["../../../src/tools/amazon-product/amazon-product-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,uCAAuE;AACvE,mDAAkD;AAClD,kCAAqD;AAErD,MAAM,SAAS,GAAG,aAAC;KAChB,MAAM,EAAE;KACR,QAAQ,CAAC,gDAAgD,CAAC;KAC1D,QAAQ,EAAE,CAAC;AAEd,MAAM,MAAM,GAAG,aAAC;KACb,MAAM,EAAE;KACR,QAAQ,CAAC,mDAAmD,CAAC;KAC7D,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,mDAAmD;gBAChE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;oBACtE,QAAQ,EAAE,uBAAW;oBACrB,MAAM,EAAE,SAAS;oBACjB,GAAG,EAAE,MAAM;iBACZ;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,EAC5B,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;;AAtDD,8CAsDC;AAnDgB,6CAA2B,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,AAAnC,CAAoC"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.AmazonSearchTool = 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");
|
|
@@ -29,21 +30,23 @@ class AmazonSearchTool extends tool_1.Tool {
|
|
|
29
30
|
};
|
|
30
31
|
this.register = ({ server, sapiClient, auth }) => {
|
|
31
32
|
server.registerTool('amazon_search', {
|
|
33
|
+
title: 'Amazon Search',
|
|
32
34
|
description: 'Scrape Amazon Search results with automatic parsing',
|
|
33
35
|
inputSchema: {
|
|
34
36
|
query: zod_1.default.string().describe('Search query for Amazon products (e.g., "wireless keyboard")'),
|
|
35
37
|
geo: zod_types_1.zodGeo,
|
|
36
38
|
jsRender: zod_types_1.zodJsRender,
|
|
37
39
|
domain: zodDomain,
|
|
38
|
-
deviceType: zod_types_1.zodDeviceType,
|
|
39
40
|
pageFrom: zodPageFrom,
|
|
40
41
|
},
|
|
41
42
|
annotations: {
|
|
43
|
+
title: 'Amazon Search',
|
|
42
44
|
readOnlyHint: true,
|
|
45
|
+
destructiveHint: false,
|
|
43
46
|
openWorldHint: true,
|
|
44
47
|
},
|
|
45
48
|
}, async (scrapingParams, extra) => {
|
|
46
|
-
const params = Object.assign(Object.assign({}, scrapingParams), { target:
|
|
49
|
+
const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.AmazonSearch, parse: true });
|
|
47
50
|
const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
|
|
48
51
|
const { data: text } = this.transformResponse({ data });
|
|
49
52
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amazon-search-tool.js","sourceRoot":"","sources":["../../../src/tools/amazon-search/amazon-search-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;
|
|
1
|
+
{"version":3,"file":"amazon-search-tool.js","sourceRoot":"","sources":["../../../src/tools/amazon-search/amazon-search-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,uCAAuE;AACvE,mDAA0D;AAC1D,kCAAqD;AAErD,MAAM,SAAS,GAAG,aAAC;KAChB,MAAM,EAAE;KACR,QAAQ,CAAC,gDAAgD,CAAC;KAC1D,QAAQ,EAAE,CAAC;AAEd,MAAM,WAAW,GAAG,aAAC;KAClB,MAAM,EAAE;KACR,QAAQ,CAAC,qCAAqC,CAAC;KAC/C,QAAQ,EAAE,CAAC;AAEd,MAAa,gBAAiB,SAAQ,WAAI;IAA1C;;QACE,YAAO,GAAG,mBAAO,CAAC,SAAS,CAAC;QAI5B,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,KAAK,MAAM,aAAa,IAAI,gBAAgB,CAAC,2BAA2B,EAAE,CAAC;gBACzE,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,eAAe,EACf;gBACE,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,qDAAqD;gBAClE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;oBAC1F,GAAG,EAAE,kBAAM;oBACX,QAAQ,EAAE,uBAAW;oBACrB,MAAM,EAAE,SAAS;oBACjB,QAAQ,EAAE,WAAW;iBACtB;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,eAAe;oBACtB,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,YAAY,EAC3B,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,4CAuDC;AApDgB,4CAA2B,GAAG,CAAC,WAAW,EAAE,iBAAiB,EAAE,aAAa,CAAC,AAAlD,CAAmD"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.AmazonSellersTool = 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");
|
|
@@ -25,20 +26,22 @@ class AmazonSellersTool extends tool_1.Tool {
|
|
|
25
26
|
};
|
|
26
27
|
this.register = ({ server, sapiClient, auth }) => {
|
|
27
28
|
server.registerTool('amazon_sellers', {
|
|
29
|
+
title: 'Amazon Sellers',
|
|
28
30
|
description: 'Scrape Amazon Seller information with automatic parsing',
|
|
29
31
|
inputSchema: {
|
|
30
32
|
query: zod_1.default.string().describe('Amazon seller ID (e.g., "A1R0Z7FJGTKESH")'),
|
|
31
33
|
jsRender: zod_types_1.zodJsRender,
|
|
32
34
|
domain: zodDomain,
|
|
33
|
-
deviceType: zod_types_1.zodDeviceType,
|
|
34
35
|
geo: zodGeo,
|
|
35
36
|
},
|
|
36
37
|
annotations: {
|
|
38
|
+
title: 'Amazon Sellers',
|
|
37
39
|
readOnlyHint: true,
|
|
40
|
+
destructiveHint: false,
|
|
38
41
|
openWorldHint: true,
|
|
39
42
|
},
|
|
40
43
|
}, async (scrapingParams, extra) => {
|
|
41
|
-
const params = Object.assign(Object.assign({}, scrapingParams), { target:
|
|
44
|
+
const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.AmazonSellers, parse: true });
|
|
42
45
|
const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
|
|
43
46
|
return {
|
|
44
47
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amazon-sellers-tool.js","sourceRoot":"","sources":["../../../src/tools/amazon-sellers/amazon-sellers-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;
|
|
1
|
+
{"version":3,"file":"amazon-sellers-tool.js","sourceRoot":"","sources":["../../../src/tools/amazon-sellers/amazon-sellers-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,mDAAkD;AAClD,kCAAqD;AAGrD,MAAM,SAAS,GAAG,aAAC;KAChB,MAAM,EAAE;KACR,QAAQ,CAAC,gDAAgD,CAAC;KAC1D,QAAQ,EAAE,CAAC;AAEd,MAAM,MAAM,GAAG,aAAC;KACb,MAAM,EAAE;KACR,QAAQ,CAAC,mDAAmD,CAAC;KAC7D,QAAQ,EAAE,CAAC;AAEd,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,gBAAgB,EAChB;gBACE,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,yDAAyD;gBACtE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;oBACvE,QAAQ,EAAE,uBAAW;oBACrB,MAAM,EAAE,SAAS;oBACjB,GAAG,EAAE,MAAM;iBACZ;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,EAC5B,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;AA9CD,8CA8CC"}
|
|
@@ -5,18 +5,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.BingSearchTool = 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");
|
|
11
12
|
const tool_1 = require("../tool");
|
|
12
|
-
const
|
|
13
|
-
.
|
|
14
|
-
.describe('
|
|
15
|
-
.optional();
|
|
16
|
-
const zodPageFrom = zod_1.default
|
|
17
|
-
.number()
|
|
18
|
-
.describe('Starting page number for pagination')
|
|
13
|
+
const zodDeviceType = zod_1.default
|
|
14
|
+
.enum(['desktop', 'mobile'])
|
|
15
|
+
.describe('Device type to emulate for the request')
|
|
19
16
|
.optional();
|
|
17
|
+
const zodDomain = zod_1.default.string().describe('Bing domain (e.g., bing.com, bing.co.uk)').optional();
|
|
18
|
+
const zodPageFrom = zod_1.default.number().describe('Starting page number for pagination').optional();
|
|
20
19
|
class BingSearchTool extends tool_1.Tool {
|
|
21
20
|
constructor() {
|
|
22
21
|
super(...arguments);
|
|
@@ -29,6 +28,7 @@ class BingSearchTool extends tool_1.Tool {
|
|
|
29
28
|
};
|
|
30
29
|
this.register = ({ server, sapiClient, auth }) => {
|
|
31
30
|
server.registerTool('bing_search', {
|
|
31
|
+
title: 'Bing Search',
|
|
32
32
|
description: 'Scrape Bing Search results with automatic parsing',
|
|
33
33
|
inputSchema: {
|
|
34
34
|
query: zod_1.default.string().describe('Search query for Bing (e.g., "laptop")'),
|
|
@@ -36,15 +36,17 @@ class BingSearchTool extends tool_1.Tool {
|
|
|
36
36
|
locale: zod_types_1.zodLocale,
|
|
37
37
|
jsRender: zod_types_1.zodJsRender,
|
|
38
38
|
domain: zodDomain,
|
|
39
|
-
deviceType:
|
|
39
|
+
deviceType: zodDeviceType,
|
|
40
40
|
pageFrom: zodPageFrom,
|
|
41
41
|
},
|
|
42
42
|
annotations: {
|
|
43
|
+
title: 'Bing Search',
|
|
43
44
|
readOnlyHint: true,
|
|
45
|
+
destructiveHint: false,
|
|
44
46
|
openWorldHint: true,
|
|
45
47
|
},
|
|
46
48
|
}, async (scrapingParams, extra) => {
|
|
47
|
-
const params = Object.assign(Object.assign({}, scrapingParams), { target:
|
|
49
|
+
const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.BingSearch, parse: true });
|
|
48
50
|
const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
|
|
49
51
|
const { data: text } = this.transformResponse({ data });
|
|
50
52
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bing-search-tool.js","sourceRoot":"","sources":["../../../src/tools/bing-search/bing-search-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;
|
|
1
|
+
{"version":3,"file":"bing-search-tool.js","sourceRoot":"","sources":["../../../src/tools/bing-search/bing-search-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,uCAAuE;AACvE,mDAAqE;AACrE,kCAAqD;AAErD,MAAM,aAAa,GAAG,aAAC;KACpB,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KAC3B,QAAQ,CAAC,wCAAwC,CAAC;KAClD,QAAQ,EAAE,CAAC;AAEd,MAAM,SAAS,GAAG,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC,CAAC,QAAQ,EAAE,CAAC;AAE7F,MAAM,WAAW,GAAG,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAE1F,MAAa,cAAe,SAAQ,WAAI;IAAxC;;QACE,YAAO,GAAG,mBAAO,CAAC,MAAM,CAAC;QAIzB,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,KAAK,MAAM,aAAa,IAAI,cAAc,CAAC,2BAA2B,EAAE,CAAC;gBACvE,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,aAAa,EACb;gBACE,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,mDAAmD;gBAChE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;oBACpE,GAAG,EAAE,kBAAM;oBACX,MAAM,EAAE,qBAAS;oBACjB,QAAQ,EAAE,uBAAW;oBACrB,MAAM,EAAE,SAAS;oBACjB,UAAU,EAAE,aAAa;oBACzB,QAAQ,EAAE,WAAW;iBACtB;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,aAAa;oBACpB,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,UAAU,EACzB,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;;AAzDD,wCAyDC;AAtDgB,0CAA2B,GAAG,CAAC,KAAK,CAAC,AAAV,CAAW"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ChatGPTTool = 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,6 +18,7 @@ class ChatGPTTool extends tool_1.Tool {
|
|
|
17
18
|
};
|
|
18
19
|
this.register = ({ server, sapiClient, auth }) => {
|
|
19
20
|
server.registerTool('chatgpt', {
|
|
21
|
+
title: 'ChatGPT',
|
|
20
22
|
description: 'Search and interact with ChatGPT for AI-powered responses and conversations',
|
|
21
23
|
inputSchema: {
|
|
22
24
|
prompt: zod_1.default.string().describe('Prompt to send to ChatGPT'),
|
|
@@ -24,11 +26,13 @@ class ChatGPTTool extends tool_1.Tool {
|
|
|
24
26
|
geo: zod_types_1.zodGeo,
|
|
25
27
|
},
|
|
26
28
|
annotations: {
|
|
29
|
+
title: 'ChatGPT',
|
|
27
30
|
readOnlyHint: true,
|
|
31
|
+
destructiveHint: false,
|
|
28
32
|
openWorldHint: true,
|
|
29
33
|
},
|
|
30
34
|
}, async (scrapingParams, extra) => {
|
|
31
|
-
const params = Object.assign(Object.assign({}, scrapingParams), { target:
|
|
35
|
+
const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.Chatgpt, parse: true });
|
|
32
36
|
const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
|
|
33
37
|
const { data: text } = this.transformResponse({ data });
|
|
34
38
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatgpt-tool.js","sourceRoot":"","sources":["../../../src/tools/chatgpt/chatgpt-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;
|
|
1
|
+
{"version":3,"file":"chatgpt-tool.js","sourceRoot":"","sources":["../../../src/tools/chatgpt/chatgpt-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,mDAA6C;AAC7C,kCAAqD;AAGrD,MAAa,WAAY,SAAQ,WAAI;IAArC;;QACE,YAAO,GAAG,mBAAO,CAAC,EAAE,CAAC;QAErB,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QACjD,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,SAAS,EACT;gBACE,KAAK,EAAE,SAAS;gBAChB,WAAW,EAAE,6EAA6E;gBAC1F,WAAW,EAAE;oBACX,MAAM,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;oBACxD,MAAM,EAAE,aAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC,CAAC,QAAQ,EAAE;oBACvF,GAAG,EAAE,kBAAM;iBACZ;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,SAAS;oBAChB,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,OAAO,EACtB,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;CAAA;AA/CD,kCA+CC"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.GoogleAdsTool = 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");
|
|
@@ -25,6 +26,7 @@ class GoogleAdsTool extends tool_1.Tool {
|
|
|
25
26
|
};
|
|
26
27
|
this.register = ({ server, sapiClient, auth }) => {
|
|
27
28
|
server.registerTool('google_ads', {
|
|
29
|
+
title: 'Google Ads',
|
|
28
30
|
description: 'Scrape Google Ads search results with automatic parsing',
|
|
29
31
|
inputSchema: {
|
|
30
32
|
query: zod_1.default.string().describe('Search query for Google Ads (e.g., "laptop")'),
|
|
@@ -35,11 +37,13 @@ class GoogleAdsTool extends tool_1.Tool {
|
|
|
35
37
|
pageFrom: zodPageFrom,
|
|
36
38
|
},
|
|
37
39
|
annotations: {
|
|
40
|
+
title: 'Google Ads',
|
|
38
41
|
readOnlyHint: true,
|
|
42
|
+
destructiveHint: false,
|
|
39
43
|
openWorldHint: true,
|
|
40
44
|
},
|
|
41
45
|
}, async (scrapingParams, extra) => {
|
|
42
|
-
const params = Object.assign(Object.assign({}, scrapingParams), { target:
|
|
46
|
+
const params = Object.assign(Object.assign({}, scrapingParams), { target: sdk_ts_1.Target.GoogleAds, parse: true });
|
|
43
47
|
const { data } = await sapiClient.scrape({ auth, scrapingParams: params, extra });
|
|
44
48
|
const { data: text } = this.transformResponse({ data });
|
|
45
49
|
return {
|