The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Kanto Labs listing page.
An MCP server that gives AI assistants (Claude, Cursor, VS Code Copilot and any other MCP client) 14 web, data and media tools, backed by Kanto Labs' actors on the Apify Store:
| Tool | What it does | Price |
|---|---|---|
detect_website_tech_stack | Detect the technologies a website runs on: CMS, ecommerce, frameworks, analytics, CDN, hosting (7,600+ fingerprints). | $0.003 per website |
convert_document_to_markdown | Convert PDF, DOCX, PPTX, XLSX, EPUB, HTML and more from a URL to Markdown, with page/word counts and optional RAG chunks. | $0.004 per document |
audit_website_seo | On-page SEO audit: 0-100 score and prioritized issues, robots.txt, sitemap, llms.txt and AI-crawler checks, optional broken links and crawl. | $0.004 per page |
extract_text_from_image | OCR text from images, screenshots, photos and scanned PDFs, in reading order with confidence and optional line boxes. | $0.003 per image or PDF page ($0.008 with quality "accurate") |
lookup_domain | Domain RDAP/WHOIS, DNS records, SSL certificate expiry and SPF/DKIM/DMARC email security grade. | $0.003 per domain |
extract_video_frames | Extract scene-change or evenly spaced frames from video files, with public image links, timestamps and a free contact sheet. | $0.002 per frame |
download_images | Download every image from web pages or image links, de-duplicated and filtered, with public download URLs. | $0.002 per image |
check_domain_authority | 0-100 domain authority from the open Common Crawl web graph (133M domains): web rank, PageRank rank, top-% percentile and monthly trend. | $0.001 per domain scored (unranked domains free) |
enrich_company (coming soon) | Company profile from a domain or name: logo, description, social profiles, app links and key pages, plus industry, HQ, founding year, employees, revenue and ticker from Wikidata. | $0.003 per company enriched |
upscale_image (coming soon) | Upscale images 2x or 4x with Real-ESRGAN (photo or anime model), transparency kept, with public download links. | $0.01 per image ($0.06 per large image with allowLargeImages) |
get_topic_trends (coming soon) | Interest over time for topics on a shared 0-100 scale (a Google Trends alternative) from official Wikipedia pageviews since 2015: peak, trend, spikes and interest by language. | $0.003 per topic |
get_trending_topics (coming soon) | The most-read topics of a day per country or Wikipedia language edition, with views and a one-line description. | $0.0005 per trending article |
check_website_traffic_rank (coming soon) | Website popularity from real Chrome user data (CrUX): global rank tier, tier in 40 countries, top countries and monthly trend, plus Majestic rank and referring subnets. | $0.002 per domain ranked (unranked domains free) |
search_free_images (coming soon) | Search freely licensed images on Wikimedia Commons, with license, author and a ready-to-paste attribution line; filter by license, size, orientation and format. | $0.001 per image |
Failed or unreachable inputs are not charged.
Coming soon:
enrich_company,upscale_image,get_topic_trends,get_trending_topics,check_website_traffic_rank,search_free_imagesare listed already, but their actors are not yet public on the Apify Store; until they are, calls to them return an "actor not yet public" error (nothing is charged).
The server is free and open source (MIT). Each tool call runs the matching actor on Apify with your own Apify API token, so the actor's pay-per-event price is billed to your Apify account (Apify's free plan includes monthly credit). There is no Kanto Labs account, key or subscription.
Every call carries a spending cap: maxTotalChargeUsd (default $1.00, change it with the KANTO_MAX_CHARGE_USD env var or per call). Apify stops the run once it has charged that much, so an assistant cannot run up a large bill by accident. Each result states what the call cost.
npx downloads and builds it from GitHub on first run).Edit claude_desktop_config.json (Settings -> Developer -> Edit Config):
Or install the one-click bundle kanto-labs-mcp.mcpb from the Releases page: double-click it and paste your token when asked.
~/.cursor/mcp.json (global) or .cursor/mcp.json (project):
.vscode/mcp.json - the token is asked for once and stored securely:
Any client that launches stdio servers works: command npx, args -y github:kanto-labs/kanto-labs-mcp, env APIFY_TOKEN.
Windows: if your client reports
spawn npx ENOENT, use"command": "cmd"with"args": ["/c", "npx", "-y", "github:kanto-labs/kanto-labs-mcp"].
All tools also accept:
| Parameter | Meaning |
|---|---|
maxTotalChargeUsd | Spending cap for this call in USD (default KANTO_MAX_CHARGE_USD, else 1.00). |
timeoutSecs | Give up after this many seconds (10-300, default 280). Apify's synchronous runs are limited to 300 s, so split big batches. |
detect_website_tech_stack: urls (required), minConfidence, includeDescriptions.
convert_document_to_markdown: documentUrls (required), chunkSize, chunkOverlap, includeMarkdown, maxFileSizeMb.
audit_website_seo: urls (required), maxPagesPerSite, checkBrokenLinks, maxLinksToCheckPerPage.
extract_text_from_image: sources (required), quality (fast/accurate), includeLines (default false here), minConfidence (0.3/0.4/0.5/0.6/0.7/0.8), pdfMode (auto/ocr), maxPdfPages, pdfDpi.
lookup_domain: domains (required), includeWhois, includeDns, includeSsl, includeEmailSecurity.
extract_video_frames: videoUrls (required), mode (auto/scenes/count/interval), frameCount, intervalSeconds, maxFramesPerVideo, sceneThreshold (0.15/0.2/0.3/0.4/0.5), imageFormat (jpg/png/webp), maxWidth, contactSheet.
download_images: urls (required), maxImagesPerPage, minWidth, minHeight, minFileSizeKb, allowedFormats, includeSvg, includeCssBackgrounds, includeIcons, convertTo (original/jpg/png/webp), maxDimension, dedupe.
check_domain_authority: domains (required).
enrich_company: companies (required), includeWebsite, includeWikidata, maxConcurrency.
upscale_image: imageUrls (required), scale (4/2), model (general/anime), outputFormat (jpeg/png/webp), quality, allowLargeImages.
get_topic_trends: keywords (required), language, timeRange (past7Days/past30Days/past90Days/past12Months/past5Years/all/custom), startDate, endDate, granularity (auto/daily/weekly/monthly), includeRedirects, includeLanguages, maxLanguages, platform (all-access/desktop/mobile-web/mobile-app).
get_trending_topics: trendingCountries, trendingProjects, trendingDate, maxTrending, platform (all-access/desktop/mobile-web/mobile-app).
check_website_traffic_rank: domains (required), includeCountries.
search_free_images: queries (required), maxResultsPerQuery, license (any/commercialNoShareAlike/noAttribution), minWidth, minHeight, orientation (any/landscape/portrait/square), fileTypes, thumbnailWidth, excludeRestricted, language.
Each call returns two text blocks: a short human-readable summary (results, failures, cost) and compact JSON with every result item (empty fields dropped, very long text truncated at KANTO_MAX_TEXT_CHARS).
| Variable | Default | Purpose |
|---|---|---|
APIFY_TOKEN | - (required) | Your Apify API token. APIFY_API_TOKEN is accepted too. |
KANTO_MAX_CHARGE_USD | 1.00 | Default spending cap per call. |
KANTO_TIMEOUT_SECS | 280 | Default timeout per call (max 300). |
KANTO_MAX_TEXT_CHARS | 100000 | Truncate any single text field (e.g. a long document's Markdown) beyond this. |
KANTO_ACTORS_CONFIG | bundled file | Path to an alternative actors.config.json. |
Tools are generated from actors.config.json: the Apify actor ID, the tool description, typed parameters, price (with optional per-result price rules and a per-result charge count for actors that bill several events per row), input defaults, and a one-line summary template. Adding an actor is a config entry, no code. comingSoon: true marks an actor that is not public on the Apify Store yet (the tool is listed with a notice and a 404 is explained); fixedInput pins actor input for a tool (one actor can back several tools). npm run build regenerates the tool table above and manifest.json from the config.
The server runs on your machine and talks only to api.apify.com. The URLs and domains you pass are processed by the actors on Apify; see each actor's page on the Apify Store. Your token is sent only to Apify and is never logged.
MIT - see LICENSE.