Skip to main content
Glama
RapierCraft

alterlab-mcp-server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ALTERLAB_API_KEYYesYour API key. Get one free at https://app.alterlab.io/signin?redirect=/dashboard/keys&source=mcp
ALTERLAB_API_URLNoAPI base URL (for self-hosted or development)https://api.alterlab.io

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
alterlab_scrapeA

Get data from any website, bypass Cloudflare and anti-bot protection, scrape JavaScript-rendered pages, or fetch content from dynamic single-page apps. Turn any URL into clean, LLM-ready markdown — or get text, HTML, JSON, and structured sections. Automatically bypasses anti-bot protection (Cloudflare, Akamai, DataDome, PerimeterX, hCaptcha) with intelligent tier escalation — no manual configuration needed. Cost-efficient: tier 1 (curl) is $0.0002/page, tier 2 (http) $0.0003, tier 3 (stealth) $0.002, tier 3.5 (lightjs) $0.0025, tier 4 (browser) $0.004; you only pay for the tier that succeeds. Add-ons: screenshot +$0.0002, generate_pdf +$0.0004, ocr +$0.001, use_proxy +$0.0002, LLM extraction +$0.001, embeddings +$0.001; method='POST' costs 1.5x. Returns markdown by default — optimized for LLM context. Supports GET (default) and POST via the method parameter. Use method='POST' with body for GraphQL APIs, REST endpoints, and form submissions. Use content_type to set the POST body Content-Type (json, urlencoded, graphql, plain). Use headers to send custom HTTP headers to the target. Use render_js=true to scrape dynamic pages, JavaScript-heavy sites (React, Angular, Vue, SPAs). Use render_js='auto' for mixed sites to detect JS needs per-page (saves 30-60%). Use actions (click, fill, press, scroll, wait_for, evaluate, ...) to drive the page before extraction. Use use_proxy=true for geo-restricted or heavily protected sites; use_own_proxy for your own proxy integration. Use sticky_session to reuse cookies and exit IP across calls. Use skip_tls_verification only for sites with broken certificates. Use formats=['json_v2'] for a structured section tree (headings + content blocks). Use formats=['rag'] for chunked text optimized for RAG pipelines. Use formats=['raw'] for the raw response body without extraction. Use formats=['content'] for AI/KB pipelines — returns body_markdown, content_hash, images, links. Use extraction_schema to extract structured fields from the page using LLM. Use extraction_prompt for natural language extraction instructions. Use extraction_profile or extraction_template for pre-built templates (product, article, job_posting, etc.). Use evidence=true to include source passages alongside extracted fields. Use embeddings to chunk and embed the scraped text. Use cache=true and cache_ttl to enable response caching. Use cost_controls to cap spending, pin a tier, or set a time budget. Supports authenticated scraping via session_id, inline cookies or session_headers. Use scroll_to_load=true for infinite-scroll pages. Use location.country to scrape geo-targeted content from any region. Use prefer_cost=true to minimize credit spend (starts from cheapest tier). Use prefer_speed=true to skip to a fast reliable tier immediately. Use fail_fast=true to error instead of auto-escalating to expensive tiers. Use force_refresh=true to bypass cache and always fetch live content. Use promote_schema_org=true to prefer Schema.org JSON-LD over LLM extraction on structured pages. Use estimate_first=true to run a free cost estimate before scraping (prepended to the result). If a long-running scrape returns a job_id instead of content, the job continues server-side.

alterlab_extractA

Extract product data, scrape prices, get structured data from any page content, or pull specific fields like names, emails, and ratings from HTML. Runs AlterLab's extraction pipeline on raw HTML, text, or markdown you already have — does NOT scrape a URL. For scraping + extraction in one step, use alterlab_scrape with extraction_schema instead. Profiles: 'product' (price, title, reviews), 'article' (title, author, body), 'job_posting', 'faq', 'recipe', 'event', 'ecommerce_homepage', 'directory_listing'. Returns JSON data. Use extraction_prompt for natural language extraction (LLM-powered). Use cache='only' to retrieve a previously cached result without calling the LLM.

alterlab_screenshotA

Take a screenshot of any website, capture a webpage as an image, or snapshot a URL visually. Works on anti-bot protected sites (Cloudflare, DataDome, etc.) — uses the same bypass engine as alterlab_scrape. Returns a full-page PNG screenshot directly in the conversation — rendered with a real headless browser (tier 4 $0.004 + $0.0002 screenshot add-on). Use wait_for to wait for a specific element before capturing. Use wait_until to control page load timing (networkidle, domcontentloaded, load). Use session_id or cookies to capture pages behind a login. For the full set of scrape options (actions, sticky sessions, cost controls), call alterlab_scrape with screenshot=true.

alterlab_get_jobA

Fetch the status and result of an asynchronous scrape job by job_id. Use this when alterlab_scrape or alterlab_screenshot returns a job_id instead of content (a long-running scrape that outlived the synchronous wait window). Status values: queued, processing, succeeded, failed, rejected (rejected = not processed due to insufficient balance; stop polling and check the balance). Polling is free; do not re-run the scrape, which would be billed again.

alterlab_estimate_costA

Preview the cost of scraping a URL before committing — no credits charged. Returns the predicted anti-bot tier, estimated cost per request, and confidence level. Call this before scraping protected or unfamiliar sites to avoid surprises. Tier 1 (curl): $0.0002. Tier 2 (http): $0.0003. Tier 3 (stealth): $0.002. Tier 3.5 (lightjs): $0.0025. Tier 4 (full browser): $0.004. Tier 5 (captcha solver): $0.02. Use render_js, use_proxy, screenshot, generate_pdf, ocr and method to see how options affect cost.

alterlab_check_balanceA

Check your AlterLab account balance, status, and credit usage. Call this before expensive operations (batch scrapes, large crawls) to verify sufficient funds. Returns current balance in dollars, balance status (healthy/low/critical/exhausted), total deposited, and total spent. For a full spending breakdown by time window and top domains, use alterlab_get_usage instead. No parameters required — uses your API key for identification.

alterlab_get_usageA

Get account usage for the current billing period — balance, credits consumed this period, account tier and entitlement source. Use this to track spend against your plan; use alterlab_check_balance for deposit and spend totals. No parameters required — uses your API key for identification.

alterlab_crawlA

Crawl an entire website for RAG, index all pages on a site, or build a knowledge base from a domain. Automatically bypasses anti-bot protection on every page — works on Cloudflare-protected sites. Discovers URLs via sitemap parsing and link extraction, then scrapes each page asynchronously. Each page is billed at the tier that succeeds (tier 1 $0.0002 ... tier 4 $0.004). Returns content as clean markdown, text, or structured data. Returns a crawl_id immediately — use alterlab_crawl_status to poll results. Use include_patterns/exclude_patterns to scope the crawl to specific sections; budget to allocate pages per path. Use render_js='auto' for mixed sites to save 30-60% vs always rendering. Supports extraction_schema, extraction_profile or extraction='auto' to extract structured data from every page. Use cost_controls to cap total credits or pin the scraping tier for all pages. Use sitemap_path to specify a non-standard sitemap location. Use headers to inject custom HTTP headers (e.g., Authorization) into every page request. Use change_tracking to detect page changes between runs; webhook/webhook_url for completion events.

alterlab_crawl_statusA

Poll the status and results of an ongoing or completed crawl. Call this after alterlab_crawl to check progress and retrieve scraped pages. Status values: queued, running, completed, failed, cancelled. When completed, results contains the scraped page content.

alterlab_crawl_cancelA

Cancel an ongoing crawl and refund unused pre-debited credits. Already-scraped pages are kept and available via alterlab_crawl_status. Cancelled crawls cannot be resumed.

alterlab_searchA

Search the web, find information online, look up any topic, or research a subject across the internet. Returns search results with URLs, titles, and snippets from multiple search engines. Uses AlterLab's SERP engine with Google/Bing/DuckDuckGo multi-engine failover for reliable results. Costs $0.001 per search query on the default duckduckgo engine; engine='google' or 'bing' costs $0.004 per query. Set scrape_results=true to also scrape each result page (with anti-bot bypass) and get full content — each page is billed at its normal scraping tier cost. Use domain to restrict results to a specific site (equivalent to site: operator). Use time_range to filter by recency (hour/day/week/month/year). Safe search is on by default; pass safe_search=false to disable it.

alterlab_mapA

Discover all URLs on a website, get a sitemap, or find specific pages within a large site. Lightweight URL discovery via sitemap parsing and link extraction — no content scraping, no JS rendering. Costs just $0.001 per call regardless of how many URLs are found (up to 50,000). Use this before alterlab_crawl or alterlab_batch to identify which pages to scrape. Returns a flat list of URLs with source (sitemap/link) and depth. Use include_patterns/exclude_patterns to scope discovery to specific sections. Use search to rank URLs by relevance to a query. Use include_metadata=true to also fetch page titles and descriptions. Use sitemap_path to specify a non-standard sitemap location (e.g., '/sitemap_index.xml').

alterlab_batch_scrapeA

Scrape multiple URLs simultaneously and get all results back in one call — no polling required. Unlike alterlab_batch (async with batch_id polling), this returns all results inline when complete. Best for 2-20 URLs where you need results immediately. For 20+ URLs, use alterlab_batch instead. Uses concurrent scraping (controlled by max_concurrent) for speed. Shows per-URL status, content preview, and a total cost summary at the end. Handles partial failures gracefully — failed URLs show error details, successful ones show content.

alterlab_batchA

Scrape up to 100 URLs in parallel with a single request — much faster and more efficient than sequential alterlab_scrape calls. Each URL automatically gets anti-bot bypass protection (Cloudflare, DataDome, etc.) at its own tier level (tier 1 $0.0002 ... tier 4 $0.004 per URL). Returns a batch_id immediately — use alterlab_batch_status to poll results. Each URL can have its own mode, method/body, formats, extraction options, advanced options, location and cost_controls. Batch-level session_id, extraction_* and export apply to the whole batch. Credits are pre-debited based on estimated cost; unused credits are refunded on completion. Use this whenever you need to scrape more than 2-3 URLs.

alterlab_batch_statusA

Poll the status and results of a submitted batch. Call this after alterlab_batch to check progress and retrieve scraped content. Status values: processing, completed, failed, partially_failed. When completed, results contains the content for each URL.

alterlab_list_sessionsA

List all stored sessions for authenticated scraping. Sessions contain cookies for specific domains, allowing you to scrape content that requires login (e.g., Amazon order history, LinkedIn profiles). Use the returned session_id with alterlab_scrape to scrape authenticated pages.

alterlab_create_sessionA

Create a new stored session for authenticated scraping. Provide cookies from a logged-in browser session to enable scraping behind login walls. The session is stored securely and can be reused across multiple scrape requests via session_id. Requires consent=true (explicit GDPR consent to store the cookies); optional headers, expires_at, notes, auto_refresh/notification flags and organization sharing are supported.

alterlab_get_sessionA

Get detailed information about a specific stored session. Returns session status, cookie names, usage statistics (total requests, success rate), expiry info, and notes. Use this to inspect a session before deciding to validate, refresh, or delete it.

alterlab_update_sessionA

Update a stored session's properties. You can change the name, rotate cookies, update custom headers, set a new expiration, or add notes. When cookies are provided, they replace ALL existing cookies (not merged). Use this instead of delete+recreate when you need to rotate credentials.

alterlab_refresh_sessionA

Refresh a session by rotating its cookies and resetting failure counters. This is the preferred way to update cookies after re-authenticating in your browser. The session status is reset to active. If cookies are omitted, only the failure counters are reset.

alterlab_validate_sessionA

Validate whether a stored session is still active and its cookies are valid. Run this before scraping if you suspect a session may have expired. Returns the session status and a reason if invalid.

alterlab_delete_sessionA

Delete a stored session. This permanently removes the session and its cookies. Use this when a session is no longer needed or has been compromised.

alterlab_list_beta_featuresA

List all public beta and GA features available on AlterLab, with your current opt-in state for each. Beta features require opting in; GA features are available to all users. Use alterlab_enable_beta_feature to opt in to any beta feature that interests you.

alterlab_list_my_beta_featuresA

List all beta and GA features currently active on your account — a compact slug list for quick checks. Includes all GA features plus any beta features you have opted in to. Use this to verify which features are available before making API calls that require them.

alterlab_enable_beta_featureA

Opt in to a beta feature on your AlterLab account. Beta features are experimental capabilities available before general release. This operation is idempotent — calling it when already opted in returns success. Use alterlab_list_beta_features to discover available feature slugs.

alterlab_disable_beta_featureA

Opt out of a beta feature on your AlterLab account. This operation is idempotent — calling it when not opted in returns success. GA (generally available) features cannot be disabled.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 26 tools

Disambiguation4/5

Tools are grouped into distinct domains (scrape/extract, crawl, batch, sessions, account, beta) and descriptions explicitly cross-reference siblings to steer selection. However, a few pairs blur boundaries: alterlab_batch vs alterlab_batch_scrape (async vs inline), alterlab_update_session vs alterlab_refresh_session (both rotate cookies), and alterlab_get_usage vs alterlab_check_balance all require reading the descriptions to disambiguate. These overlaps are documented but still create mild misselection risk.

Naming Consistency5/5

Every tool uses the alterlab_ prefix with snake_case, and the vast majority follow a clear verb_noun pattern (create_session, delete_session, list_sessions, estimate_cost, enable_beta_feature). The few deviations (crawl_status, batch_status, bare verbs like search/map) are natural and remain fully predictable and readable.

Tool Count3/5

At 26 tools the surface is on the heavy side and pushes past the comfortable range. Several tools could be consolidated (batch vs batch_scrape, list_beta_features vs list_my_beta_features), though the breadth of the platform's features (scraping, crawling, batching, sessions, account, beta flags) partially justifies the count.

Completeness4/5

Coverage is strong: full session lifecycle (create/read/update/refresh/validate/delete), scrape/crawl/batch with status and cancel, async job polling, cost estimation, and balance/usage. Minor gaps remain, such as no dedicated tool for managing completion webhooks or exports, both of which are only exposed as parameters.

Maintenance

ActivityMaintained
ResponsivenessSlow