alterlab-mcp-server 1.7.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/dist/auth.d.ts +30 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +423 -0
- package/dist/auth.js.map +1 -0
- package/dist/client.d.ts +22 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +56 -1
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +21 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +85 -8
- package/dist/config.js.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +6 -4
- package/dist/errors.js.map +1 -1
- package/dist/format.d.ts +16 -2
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +139 -9
- package/dist/format.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +63 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/balance.d.ts.map +1 -1
- package/dist/tools/balance.js +4 -2
- package/dist/tools/balance.js.map +1 -1
- package/dist/tools/batch.d.ts +8 -8
- package/dist/tools/batch.d.ts.map +1 -1
- package/dist/tools/batch.js +3 -2
- package/dist/tools/batch.js.map +1 -1
- package/dist/tools/crawl.d.ts +38 -0
- package/dist/tools/crawl.d.ts.map +1 -1
- package/dist/tools/crawl.js +70 -7
- package/dist/tools/crawl.js.map +1 -1
- package/dist/tools/estimate.d.ts +1 -1
- package/dist/tools/estimate.d.ts.map +1 -1
- package/dist/tools/estimate.js +6 -4
- package/dist/tools/estimate.js.map +1 -1
- package/dist/tools/extract.d.ts +5 -5
- package/dist/tools/extract.d.ts.map +1 -1
- package/dist/tools/extract.js +14 -12
- package/dist/tools/extract.js.map +1 -1
- package/dist/tools/map.d.ts +5 -2
- package/dist/tools/map.d.ts.map +1 -1
- package/dist/tools/map.js +12 -4
- package/dist/tools/map.js.map +1 -1
- package/dist/tools/scrape.d.ts +88 -9
- package/dist/tools/scrape.d.ts.map +1 -1
- package/dist/tools/scrape.js +195 -24
- package/dist/tools/scrape.js.map +1 -1
- package/dist/tools/screenshot.d.ts.map +1 -1
- package/dist/tools/screenshot.js +16 -7
- package/dist/tools/screenshot.js.map +1 -1
- package/dist/tools/search.d.ts +3 -0
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +12 -4
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/simple_batch.d.ts +28 -0
- package/dist/tools/simple_batch.d.ts.map +1 -0
- package/dist/tools/simple_batch.js +141 -0
- package/dist/tools/simple_batch.js.map +1 -0
- package/dist/tools/usage.d.ts +7 -0
- package/dist/tools/usage.d.ts.map +1 -0
- package/dist/tools/usage.js +51 -0
- package/dist/tools/usage.js.map +1 -0
- package/dist/types.d.ts +83 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/server.json +32 -0
package/dist/tools/scrape.js
CHANGED
|
@@ -5,41 +5,94 @@ exports.handleScrape = handleScrape;
|
|
|
5
5
|
const zod_1 = require("zod");
|
|
6
6
|
const errors_js_1 = require("../errors.js");
|
|
7
7
|
const format_js_1 = require("../format.js");
|
|
8
|
+
const tierEnum = zod_1.z.enum(["1", "2", "3", "3.5", "4"]);
|
|
9
|
+
const costControlsSchema = zod_1.z
|
|
10
|
+
.object({
|
|
11
|
+
force_tier: tierEnum
|
|
12
|
+
.optional()
|
|
13
|
+
.describe("Pin execution to this exact tier, bypassing escalation " +
|
|
14
|
+
"(1=curl $0.0002, 2=http $0.0003, 3=stealth $0.002, 3.5=lightjs $0.0025, 4=browser $0.004). " +
|
|
15
|
+
"Use to guarantee a specific engine is used regardless of site difficulty."),
|
|
16
|
+
max_tier: tierEnum
|
|
17
|
+
.optional()
|
|
18
|
+
.describe("Cap automatic escalation at this tier. Scrape will not escalate beyond it even if lower tiers fail. " +
|
|
19
|
+
"Cannot exceed force_tier when both are set."),
|
|
20
|
+
max_credits: zod_1.z
|
|
21
|
+
.number()
|
|
22
|
+
.positive()
|
|
23
|
+
.optional()
|
|
24
|
+
.describe("Hard spending cap for this request in credits. Request fails if cost would exceed this."),
|
|
25
|
+
prefer_cost: zod_1.z
|
|
26
|
+
.boolean()
|
|
27
|
+
.optional()
|
|
28
|
+
.describe("Optimize for cost — try cheaper tiers first, accept lower success probability."),
|
|
29
|
+
prefer_speed: zod_1.z
|
|
30
|
+
.boolean()
|
|
31
|
+
.optional()
|
|
32
|
+
.describe("Optimize for speed — skip to the most reliable tier for this domain."),
|
|
33
|
+
fail_fast: zod_1.z
|
|
34
|
+
.boolean()
|
|
35
|
+
.optional()
|
|
36
|
+
.describe("Return error instead of escalating to more expensive tiers on failure."),
|
|
37
|
+
time_budget: zod_1.z
|
|
38
|
+
.number()
|
|
39
|
+
.min(5)
|
|
40
|
+
.max(300)
|
|
41
|
+
.optional()
|
|
42
|
+
.describe("Total wall-clock budget in seconds for the entire tier escalation sequence (5–300s). " +
|
|
43
|
+
"Escalation stops when remaining budget is insufficient for the next tier attempt."),
|
|
44
|
+
})
|
|
45
|
+
.optional()
|
|
46
|
+
.describe("Fine-grained cost and tier controls. Use to cap spending, pin a tier, or trade off cost vs speed. " +
|
|
47
|
+
"Prefer these over the top-level prefer_cost/prefer_speed/fail_fast fields for full control.");
|
|
8
48
|
exports.scrapeSchema = zod_1.z.object({
|
|
9
49
|
url: zod_1.z.string().url().describe("URL to scrape"),
|
|
10
50
|
method: zod_1.z
|
|
11
|
-
.enum(["GET", "POST"
|
|
51
|
+
.enum(["GET", "POST"])
|
|
12
52
|
.default("GET")
|
|
13
53
|
.describe("HTTP method for the request. Default GET (standard page scraping). " +
|
|
14
|
-
"Use POST for GraphQL endpoints, form submissions, REST API calls. " +
|
|
15
|
-
"
|
|
16
|
-
"When using POST/PUT/PATCH, provide body with the request payload."),
|
|
54
|
+
"Use POST for GraphQL endpoints, form submissions, and REST API calls. " +
|
|
55
|
+
"When using POST, provide body with the request payload. POST costs 1.5x base tier price."),
|
|
17
56
|
body: zod_1.z
|
|
18
57
|
.string()
|
|
19
58
|
.optional()
|
|
20
|
-
.describe("Request body for POST
|
|
59
|
+
.describe("Request body for POST requests. " +
|
|
21
60
|
"For GraphQL: JSON string with 'query' and optional 'variables' fields " +
|
|
22
61
|
'(e.g., \'{"query": "{ user { id name } }"}\').' +
|
|
23
62
|
"For REST APIs: JSON-encoded payload string. " +
|
|
24
63
|
"For form submissions: URL-encoded key=value pairs (e.g., 'name=Alice&email=alice@example.com'). " +
|
|
25
|
-
"Omit for GET
|
|
64
|
+
"Omit for GET requests."),
|
|
65
|
+
content_type: zod_1.z
|
|
66
|
+
.enum([
|
|
67
|
+
"application/json",
|
|
68
|
+
"application/x-www-form-urlencoded",
|
|
69
|
+
"text/plain",
|
|
70
|
+
"application/graphql",
|
|
71
|
+
])
|
|
72
|
+
.optional()
|
|
73
|
+
.describe("Content-Type header for the request body. " +
|
|
74
|
+
"Defaults to 'application/json' when body is provided. " +
|
|
75
|
+
"Use 'application/graphql' for raw GraphQL queries. " +
|
|
76
|
+
"Use 'application/x-www-form-urlencoded' for HTML form submissions. " +
|
|
77
|
+
"Requires body to be set."),
|
|
26
78
|
mode: zod_1.z
|
|
27
79
|
.enum(["auto", "html", "js", "pdf", "ocr"])
|
|
28
80
|
.default("auto")
|
|
29
81
|
.describe("Scraping mode: auto (recommended), html, js (headless browser), pdf, or ocr"),
|
|
30
82
|
formats: zod_1.z
|
|
31
|
-
.array(zod_1.z.enum(["text", "json", "json_v2", "html", "markdown", "rag", "content"]))
|
|
83
|
+
.array(zod_1.z.enum(["text", "json", "json_v2", "html", "markdown", "rag", "raw", "content"]))
|
|
32
84
|
.default(["markdown"])
|
|
33
85
|
.describe("Output formats. 'markdown' is best for LLM consumption. " +
|
|
34
86
|
"'json_v2' returns a structured section tree (headings + content blocks). " +
|
|
35
87
|
"'rag' returns chunked text optimized for retrieval-augmented generation. " +
|
|
88
|
+
"'raw' returns the raw response body without extraction. " +
|
|
36
89
|
"'content' returns body_markdown + content_hash + images + links for AI/KB pipelines."),
|
|
37
90
|
extraction_schema: zod_1.z
|
|
38
91
|
.record(zod_1.z.unknown())
|
|
39
92
|
.optional()
|
|
40
93
|
.describe("JSON schema for structured extraction. " +
|
|
41
94
|
"The API extracts fields matching this schema from the scraped page using LLM. " +
|
|
42
|
-
"Result is returned in
|
|
95
|
+
"Result is returned in extraction_result. " +
|
|
43
96
|
'Example: { "title": "string", "price": "number", "in_stock": "boolean" }'),
|
|
44
97
|
extraction_model: zod_1.z
|
|
45
98
|
.string()
|
|
@@ -78,6 +131,36 @@ exports.scrapeSchema = zod_1.z.object({
|
|
|
78
131
|
"faq: FAQ entries. recipe: recipe ingredients and instructions. " +
|
|
79
132
|
"event: event details. ecommerce_homepage: homepage product listings. " +
|
|
80
133
|
"directory_listing: directory/listing page entries."),
|
|
134
|
+
template: zod_1.z
|
|
135
|
+
.string()
|
|
136
|
+
.optional()
|
|
137
|
+
.describe("Named extraction template to apply to the scrape result. " +
|
|
138
|
+
"Accepts standard template names (e.g. 'product', 'article', 'job_posting') " +
|
|
139
|
+
"or a custom template name registered in your account. " +
|
|
140
|
+
"When provided, routes the request through template-based extraction."),
|
|
141
|
+
evidence: zod_1.z
|
|
142
|
+
.boolean()
|
|
143
|
+
.optional()
|
|
144
|
+
.describe("Include provenance/evidence snippets alongside extracted fields. " +
|
|
145
|
+
"Each extracted value will include the source text passage it was derived from. " +
|
|
146
|
+
"Requires extraction_schema or extraction_prompt."),
|
|
147
|
+
filter_content: zod_1.z
|
|
148
|
+
.boolean()
|
|
149
|
+
.optional()
|
|
150
|
+
.describe("Apply quality filtering to extracted content. When false (default), returns all parsed content " +
|
|
151
|
+
"without quality thresholds (lossless mode). When true, filters low-quality boilerplate."),
|
|
152
|
+
cache: zod_1.z
|
|
153
|
+
.boolean()
|
|
154
|
+
.optional()
|
|
155
|
+
.describe("Enable caching for this request. When true, repeat requests with identical parameters may " +
|
|
156
|
+
"return cached results. Only use for idempotent requests (GET pages, read-only POSTs)."),
|
|
157
|
+
cache_ttl: zod_1.z
|
|
158
|
+
.number()
|
|
159
|
+
.min(60)
|
|
160
|
+
.max(86400)
|
|
161
|
+
.optional()
|
|
162
|
+
.describe("Cache TTL in seconds (60–86400). Defaults to 3600 (60 min) when cache=true. " +
|
|
163
|
+
"Requires cache=true."),
|
|
81
164
|
render_js: zod_1.z
|
|
82
165
|
.union([zod_1.z.boolean(), zod_1.z.literal("auto")])
|
|
83
166
|
.default(false)
|
|
@@ -171,32 +254,104 @@ exports.scrapeSchema = zod_1.z.object({
|
|
|
171
254
|
.optional()
|
|
172
255
|
.describe("Geo-targeting parameters for localized content scraping. " +
|
|
173
256
|
"Controls proxy country routing, Accept-Language header, and browser locale."),
|
|
257
|
+
prefer_cost: zod_1.z
|
|
258
|
+
.boolean()
|
|
259
|
+
.optional()
|
|
260
|
+
.describe("Optimize for lowest cost — try cheaper tiers first before escalating. " +
|
|
261
|
+
"Best for non-time-sensitive scrapes where minimizing credit spend matters. " +
|
|
262
|
+
"Mutually exclusive intent with prefer_speed."),
|
|
263
|
+
prefer_speed: zod_1.z
|
|
264
|
+
.boolean()
|
|
265
|
+
.optional()
|
|
266
|
+
.describe("Optimize for speed — skip to a reliable tier immediately instead of escalating from Tier 1. " +
|
|
267
|
+
"Best for time-sensitive scrapes where latency matters more than cost. " +
|
|
268
|
+
"Mutually exclusive intent with prefer_cost."),
|
|
269
|
+
fail_fast: zod_1.z
|
|
270
|
+
.boolean()
|
|
271
|
+
.optional()
|
|
272
|
+
.describe("Fail immediately if the page requires an expensive tier (browser/captcha) instead of auto-escalating. " +
|
|
273
|
+
"Use this to protect against unexpected credit spend on protected pages. " +
|
|
274
|
+
"Returns an error with the required tier instead of automatically upgrading."),
|
|
275
|
+
force_refresh: zod_1.z
|
|
276
|
+
.boolean()
|
|
277
|
+
.optional()
|
|
278
|
+
.describe("Bypass the cache and always fetch a fresh copy of the page. " +
|
|
279
|
+
"Use when you need real-time content and a cached result would be stale."),
|
|
280
|
+
promote_schema_org: zod_1.z
|
|
281
|
+
.boolean()
|
|
282
|
+
.optional()
|
|
283
|
+
.describe("Use Schema.org JSON-LD/Microdata as the primary structured-data source when present. " +
|
|
284
|
+
"Promotes machine-readable metadata embedded in the page over LLM extraction. " +
|
|
285
|
+
"Most effective on e-commerce, recipe, and news article pages."),
|
|
286
|
+
cost_controls: costControlsSchema,
|
|
287
|
+
estimate_first: zod_1.z
|
|
288
|
+
.boolean()
|
|
289
|
+
.default(false)
|
|
290
|
+
.describe("Run a cost estimate before scraping and include it in the response. " +
|
|
291
|
+
"Adds one lightweight API call (~50ms) with no credit charge. " +
|
|
292
|
+
"The estimated tier, cost, and confidence are prepended to the scrape result. " +
|
|
293
|
+
"Useful for unfamiliar or potentially expensive sites — see cost before committing."),
|
|
174
294
|
});
|
|
175
|
-
exports.scrapeDescription = "
|
|
176
|
-
"
|
|
295
|
+
exports.scrapeDescription = "Get data from any website, bypass Cloudflare and anti-bot protection, scrape JavaScript-rendered pages, " +
|
|
296
|
+
"or fetch content from dynamic single-page apps. " +
|
|
297
|
+
"Turn any URL into clean, LLM-ready markdown — or get text, HTML, JSON, and structured sections. " +
|
|
298
|
+
"Automatically bypasses anti-bot protection (Cloudflare, Akamai, DataDome, PerimeterX, hCaptcha) " +
|
|
299
|
+
"with intelligent 4-tier escalation — no manual configuration needed. " +
|
|
300
|
+
"Cost-efficient: starts at $0.0001/page for simple sites, auto-escalates only when protection is detected. " +
|
|
177
301
|
"Returns markdown by default — optimized for LLM context. " +
|
|
178
|
-
"Supports GET (default) and POST
|
|
302
|
+
"Supports GET (default) and POST via the method parameter. " +
|
|
179
303
|
"Use method='POST' with body for GraphQL APIs, REST endpoints, and form submissions. " +
|
|
180
|
-
"
|
|
181
|
-
"Use render_js=true
|
|
304
|
+
"Use content_type to set the POST body Content-Type (json, urlencoded, graphql, plain). " +
|
|
305
|
+
"Use render_js=true to scrape dynamic pages, JavaScript-heavy sites (React, Angular, Vue, SPAs). " +
|
|
182
306
|
"Use render_js='auto' for mixed sites to detect JS needs per-page (saves 30-60%). " +
|
|
183
307
|
"Use use_proxy=true for geo-restricted or heavily protected sites. " +
|
|
184
308
|
"Use formats=['json_v2'] for a structured section tree (headings + content blocks). " +
|
|
185
309
|
"Use formats=['rag'] for chunked text optimized for RAG pipelines. " +
|
|
310
|
+
"Use formats=['raw'] for the raw response body without extraction. " +
|
|
186
311
|
"Use formats=['content'] for AI/KB pipelines — returns body_markdown, content_hash, images, links. " +
|
|
187
|
-
"Use extraction_schema to extract structured fields from the page using LLM
|
|
188
|
-
"Use extraction_prompt for natural language extraction instructions
|
|
189
|
-
"Use extraction_profile
|
|
190
|
-
"Use
|
|
191
|
-
"
|
|
192
|
-
"Use
|
|
193
|
-
"
|
|
312
|
+
"Use extraction_schema to extract structured fields from the page using LLM. " +
|
|
313
|
+
"Use extraction_prompt for natural language extraction instructions. " +
|
|
314
|
+
"Use extraction_profile for pre-built templates (product, article, job_posting, etc.). " +
|
|
315
|
+
"Use evidence=true to include source passages alongside extracted fields. " +
|
|
316
|
+
"Use cache=true and cache_ttl to enable response caching. " +
|
|
317
|
+
"Use cost_controls to cap spending, pin a tier, or set a time budget. " +
|
|
318
|
+
"Supports authenticated scraping via session_id or inline cookies. " +
|
|
319
|
+
"Use scroll_to_load=true for infinite-scroll pages. " +
|
|
320
|
+
"Use location.country to scrape geo-targeted content from any region. " +
|
|
321
|
+
"Use prefer_cost=true to minimize credit spend (starts from cheapest tier). " +
|
|
322
|
+
"Use prefer_speed=true to skip to a fast reliable tier immediately. " +
|
|
323
|
+
"Use fail_fast=true to error instead of auto-escalating to expensive tiers. " +
|
|
324
|
+
"Use force_refresh=true to bypass cache and always fetch live content. " +
|
|
325
|
+
"Use promote_schema_org=true to prefer Schema.org JSON-LD over LLM extraction on structured pages. " +
|
|
326
|
+
"Use estimate_first=true to run a free cost estimate before scraping (prepended to the result).";
|
|
194
327
|
async function handleScrape(client, params) {
|
|
328
|
+
// Optional pre-flight cost estimate — runs before the scrape, no credits charged.
|
|
329
|
+
// On failure, degrade gracefully: prepend a warning and continue with the scrape.
|
|
330
|
+
let estimatePrefix = "";
|
|
331
|
+
if (params.estimate_first) {
|
|
332
|
+
try {
|
|
333
|
+
const estimate = await client.estimate({
|
|
334
|
+
url: params.url,
|
|
335
|
+
mode: params.mode,
|
|
336
|
+
formats: params.formats,
|
|
337
|
+
advanced: {
|
|
338
|
+
render_js: typeof params.render_js === "boolean" ? params.render_js : false,
|
|
339
|
+
use_proxy: params.use_proxy,
|
|
340
|
+
},
|
|
341
|
+
});
|
|
342
|
+
estimatePrefix = (0, format_js_1.formatEstimateInline)(estimate) + "\n";
|
|
343
|
+
}
|
|
344
|
+
catch {
|
|
345
|
+
estimatePrefix =
|
|
346
|
+
"> **Pre-flight estimate**: unavailable (estimate API call failed — proceeding with scrape).\n\n";
|
|
347
|
+
}
|
|
348
|
+
}
|
|
195
349
|
try {
|
|
196
350
|
const response = await client.scrape({
|
|
197
351
|
url: params.url,
|
|
198
352
|
method: params.method,
|
|
199
353
|
body: params.body,
|
|
354
|
+
content_type: params.content_type,
|
|
200
355
|
mode: params.mode,
|
|
201
356
|
formats: params.formats,
|
|
202
357
|
sync: true,
|
|
@@ -212,6 +367,17 @@ async function handleScrape(client, params) {
|
|
|
212
367
|
extraction_model: params.extraction_model ?? undefined,
|
|
213
368
|
extraction_provider: params.extraction_provider,
|
|
214
369
|
extraction_profile: params.extraction_profile,
|
|
370
|
+
template: params.template,
|
|
371
|
+
evidence: params.evidence,
|
|
372
|
+
filter_content: params.filter_content,
|
|
373
|
+
cache: params.cache,
|
|
374
|
+
cache_ttl: params.cache_ttl,
|
|
375
|
+
prefer_cost: params.prefer_cost,
|
|
376
|
+
prefer_speed: params.prefer_speed,
|
|
377
|
+
fail_fast: params.fail_fast,
|
|
378
|
+
force_refresh: params.force_refresh,
|
|
379
|
+
promote_schema_org: params.promote_schema_org,
|
|
380
|
+
cost_controls: params.cost_controls,
|
|
215
381
|
advanced: {
|
|
216
382
|
render_js: params.render_js,
|
|
217
383
|
use_proxy: params.use_proxy,
|
|
@@ -223,15 +389,20 @@ async function handleScrape(client, params) {
|
|
|
223
389
|
block_images: params.block_images,
|
|
224
390
|
},
|
|
225
391
|
});
|
|
392
|
+
const balanceWarningSuffix = (0, format_js_1.formatBalanceWarning)(client.getLastBalanceWarning());
|
|
226
393
|
return {
|
|
227
|
-
content: [{ type: "text", text: (0, format_js_1.formatScrapeResponse)(response) }],
|
|
394
|
+
content: [{ type: "text", text: estimatePrefix + (0, format_js_1.formatScrapeResponse)(response) + balanceWarningSuffix }],
|
|
228
395
|
};
|
|
229
396
|
}
|
|
230
397
|
catch (error) {
|
|
231
|
-
|
|
232
|
-
|
|
398
|
+
const balanceWarningSuffix = (0, format_js_1.formatBalanceWarning)(client.getLastBalanceWarning());
|
|
399
|
+
const result = isApiError(error)
|
|
400
|
+
? (0, errors_js_1.formatErrorResult)(error, { url: params.url })
|
|
401
|
+
: (0, errors_js_1.formatErrorResult)(error, { url: params.url });
|
|
402
|
+
if (balanceWarningSuffix && result.content[0]?.type === "text") {
|
|
403
|
+
result.content[0].text += balanceWarningSuffix;
|
|
233
404
|
}
|
|
234
|
-
return
|
|
405
|
+
return result;
|
|
235
406
|
}
|
|
236
407
|
}
|
|
237
408
|
function isApiError(error) {
|
package/dist/tools/scrape.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrape.js","sourceRoot":"","sources":["../../src/tools/scrape.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"scrape.js","sourceRoot":"","sources":["../../src/tools/scrape.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/tools/screenshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/tools/screenshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAKnD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAU3B,CAAC;AAEH,eAAO,MAAM,qBAAqB,QAKmD,CAAC;AAEtF,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,GACvC,OAAO,CAAC,cAAc,CAAC,CAoEzB"}
|
package/dist/tools/screenshot.js
CHANGED
|
@@ -5,6 +5,7 @@ exports.handleScreenshot = handleScreenshot;
|
|
|
5
5
|
const zod_1 = require("zod");
|
|
6
6
|
const errors_js_1 = require("../errors.js");
|
|
7
7
|
const types_js_1 = require("../types.js");
|
|
8
|
+
const format_js_1 = require("../format.js");
|
|
8
9
|
exports.screenshotSchema = zod_1.z.object({
|
|
9
10
|
url: zod_1.z.string().url().describe("URL to take a screenshot of"),
|
|
10
11
|
wait_for: zod_1.z
|
|
@@ -16,9 +17,11 @@ exports.screenshotSchema = zod_1.z.object({
|
|
|
16
17
|
.default("networkidle")
|
|
17
18
|
.describe("Page load event to wait for before screenshot"),
|
|
18
19
|
});
|
|
19
|
-
exports.screenshotDescription = "Take a
|
|
20
|
-
"
|
|
21
|
-
"
|
|
20
|
+
exports.screenshotDescription = "Take a screenshot of any website, capture a webpage as an image, or snapshot a URL visually. " +
|
|
21
|
+
"Works on anti-bot protected sites (Cloudflare, DataDome, etc.) — uses the same bypass engine as alterlab_scrape. " +
|
|
22
|
+
"Returns a full-page PNG screenshot directly in the conversation — rendered with a real headless browser. " +
|
|
23
|
+
"Use wait_for to wait for a specific element before capturing. " +
|
|
24
|
+
"Use wait_until to control page load timing (networkidle, domcontentloaded, load).";
|
|
22
25
|
async function handleScreenshot(client, params) {
|
|
23
26
|
try {
|
|
24
27
|
// Screenshot requires render_js=true and screenshot=true
|
|
@@ -53,6 +56,7 @@ async function handleScreenshot(client, params) {
|
|
|
53
56
|
const base64 = await client.fetchScreenshotAsBase64(response.screenshot_url);
|
|
54
57
|
const tier = response.billing.tier_used;
|
|
55
58
|
const tierName = types_js_1.TIER_NAMES[tier] || tier;
|
|
59
|
+
const balanceWarningSuffix = (0, format_js_1.formatBalanceWarning)(client.getLastBalanceWarning());
|
|
56
60
|
return {
|
|
57
61
|
content: [
|
|
58
62
|
{
|
|
@@ -63,16 +67,21 @@ async function handleScreenshot(client, params) {
|
|
|
63
67
|
{
|
|
64
68
|
type: "text",
|
|
65
69
|
text: `Screenshot of ${response.url}\n` +
|
|
66
|
-
`Tier: ${tierName} | Time: ${response.response_time_ms}ms
|
|
70
|
+
`Tier: ${tierName} | Time: ${response.response_time_ms}ms` +
|
|
71
|
+
balanceWarningSuffix,
|
|
67
72
|
},
|
|
68
73
|
],
|
|
69
74
|
};
|
|
70
75
|
}
|
|
71
76
|
catch (error) {
|
|
72
|
-
|
|
73
|
-
|
|
77
|
+
const balanceWarningSuffix = (0, format_js_1.formatBalanceWarning)(client.getLastBalanceWarning());
|
|
78
|
+
const result = isApiError(error)
|
|
79
|
+
? (0, errors_js_1.formatErrorResult)(error, { url: params.url })
|
|
80
|
+
: (0, errors_js_1.formatErrorResult)(error, { url: params.url });
|
|
81
|
+
if (balanceWarningSuffix && result.content[0]?.type === "text") {
|
|
82
|
+
result.content[0].text += balanceWarningSuffix;
|
|
74
83
|
}
|
|
75
|
-
return
|
|
84
|
+
return result;
|
|
76
85
|
}
|
|
77
86
|
}
|
|
78
87
|
function isApiError(error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/tools/screenshot.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/tools/screenshot.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/search.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export declare const searchSchema: z.ZodObject<{
|
|
|
12
12
|
scrape_results: z.ZodDefault<z.ZodBoolean>;
|
|
13
13
|
formats: z.ZodOptional<z.ZodArray<z.ZodEnum<["text", "json", "json_v2", "html", "markdown"]>, "many">>;
|
|
14
14
|
extraction_schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
15
|
+
safe_search: z.ZodOptional<z.ZodBoolean>;
|
|
15
16
|
}, "strip", z.ZodTypeAny, {
|
|
16
17
|
query: string;
|
|
17
18
|
num_results: number;
|
|
@@ -23,6 +24,7 @@ export declare const searchSchema: z.ZodObject<{
|
|
|
23
24
|
language?: string | undefined;
|
|
24
25
|
domain?: string | undefined;
|
|
25
26
|
time_range?: "hour" | "day" | "week" | "month" | "year" | undefined;
|
|
27
|
+
safe_search?: boolean | undefined;
|
|
26
28
|
}, {
|
|
27
29
|
query: string;
|
|
28
30
|
formats?: ("text" | "html" | "json" | "json_v2" | "markdown")[] | undefined;
|
|
@@ -34,6 +36,7 @@ export declare const searchSchema: z.ZodObject<{
|
|
|
34
36
|
domain?: string | undefined;
|
|
35
37
|
time_range?: "hour" | "day" | "week" | "month" | "year" | undefined;
|
|
36
38
|
scrape_results?: boolean | undefined;
|
|
39
|
+
safe_search?: boolean | undefined;
|
|
37
40
|
}>;
|
|
38
41
|
export declare const searchDescription: string;
|
|
39
42
|
export declare function handleSearch(client: AlterLabClient, params: z.infer<typeof searchSchema>): Promise<CallToolResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmEvB,CAAC;AAEH,eAAO,MAAM,iBAAiB,QASgC,CAAC;AAE/D,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,GACnC,OAAO,CAAC,cAAc,CAAC,CAwBzB"}
|
package/dist/tools/search.js
CHANGED
|
@@ -56,14 +56,21 @@ exports.searchSchema = zod_1.z.object({
|
|
|
56
56
|
.record(zod_1.z.unknown())
|
|
57
57
|
.optional()
|
|
58
58
|
.describe("JSON schema for structured extraction when scrape_results=true"),
|
|
59
|
+
safe_search: zod_1.z
|
|
60
|
+
.boolean()
|
|
61
|
+
.optional()
|
|
62
|
+
.describe("Enable safe search filtering to exclude adult content from results. " +
|
|
63
|
+
"Defaults to the search engine's own safe-search setting when omitted."),
|
|
59
64
|
});
|
|
60
|
-
exports.searchDescription = "
|
|
61
|
-
"
|
|
65
|
+
exports.searchDescription = "Search the web, find information online, look up any topic, or research a subject across the internet. " +
|
|
66
|
+
"Returns search results with URLs, titles, and snippets from multiple search engines. " +
|
|
67
|
+
"Uses AlterLab's SERP engine with Google/Bing/DuckDuckGo multi-engine failover for reliable results. " +
|
|
62
68
|
"Costs $0.001 per search query. " +
|
|
63
|
-
"Set scrape_results=true to also scrape each result page and get full content — " +
|
|
69
|
+
"Set scrape_results=true to also scrape each result page (with anti-bot bypass) and get full content — " +
|
|
64
70
|
"each page is billed at its normal scraping tier cost. " +
|
|
65
71
|
"Use domain to restrict results to a specific site (equivalent to site: operator). " +
|
|
66
|
-
"Use time_range to filter by recency (hour/day/week/month/year)."
|
|
72
|
+
"Use time_range to filter by recency (hour/day/week/month/year). " +
|
|
73
|
+
"Use safe_search=true to filter adult content from results.";
|
|
67
74
|
async function handleSearch(client, params) {
|
|
68
75
|
try {
|
|
69
76
|
const response = await client.search({
|
|
@@ -77,6 +84,7 @@ async function handleSearch(client, params) {
|
|
|
77
84
|
scrape_results: params.scrape_results,
|
|
78
85
|
formats: params.formats,
|
|
79
86
|
extraction_schema: params.extraction_schema,
|
|
87
|
+
safe_search: params.safe_search,
|
|
80
88
|
});
|
|
81
89
|
const text = formatSearchResponse(response, params.query);
|
|
82
90
|
return { content: [{ type: "text", text }] };
|
package/dist/tools/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
import type { AlterLabClient } from "../client.js";
|
|
4
|
+
export declare const simpleBatchSchema: z.ZodObject<{
|
|
5
|
+
urls: z.ZodArray<z.ZodString, "many">;
|
|
6
|
+
formats: z.ZodDefault<z.ZodArray<z.ZodEnum<["text", "json", "json_v2", "html", "markdown", "rag", "content"]>, "many">>;
|
|
7
|
+
render_js: z.ZodDefault<z.ZodBoolean>;
|
|
8
|
+
use_proxy: z.ZodDefault<z.ZodBoolean>;
|
|
9
|
+
timeout: z.ZodDefault<z.ZodNumber>;
|
|
10
|
+
max_concurrent: z.ZodDefault<z.ZodNumber>;
|
|
11
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
|
+
timeout: number;
|
|
13
|
+
formats: ("content" | "text" | "html" | "json" | "json_v2" | "markdown" | "rag")[];
|
|
14
|
+
render_js: boolean;
|
|
15
|
+
use_proxy: boolean;
|
|
16
|
+
urls: string[];
|
|
17
|
+
max_concurrent: number;
|
|
18
|
+
}, {
|
|
19
|
+
urls: string[];
|
|
20
|
+
timeout?: number | undefined;
|
|
21
|
+
formats?: ("content" | "text" | "html" | "json" | "json_v2" | "markdown" | "rag")[] | undefined;
|
|
22
|
+
render_js?: boolean | undefined;
|
|
23
|
+
use_proxy?: boolean | undefined;
|
|
24
|
+
max_concurrent?: number | undefined;
|
|
25
|
+
}>;
|
|
26
|
+
export declare const simpleBatchDescription: string;
|
|
27
|
+
export declare function handleSimpleBatch(client: AlterLabClient, params: z.infer<typeof simpleBatchSchema>): Promise<CallToolResult>;
|
|
28
|
+
//# sourceMappingURL=simple_batch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple_batch.d.ts","sourceRoot":"","sources":["../../src/tools/simple_batch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EA4C5B,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAMoE,CAAC;AAMxG,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,GACxC,OAAO,CAAC,cAAc,CAAC,CAwGzB"}
|