Skip to content
Agentmart
Submit a tool

Crawlforge MCP Server

Web scraping, crawling, deep research & autonomous extraction — 31 MCP tools, clean Markdown/JSON

Connector by mysleekdesigns · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 6
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/mysleekdesigns-crawlforge-mcp-server

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Web scraping, crawling, deep research & autonomous extraction — 31 MCP tools, clean Markdown/JSON

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Runs code on install

Its package runs an install script (such as npm postinstall or setup.py code) as soon as you install it, before any tool is called. Read the script first.

Tools
28 read · 4 write · 0 delete
Secrets
3 (API keys, tokens or passwords)
Install scripts
Runs code on install
Runs as
Node.js package

Tools by what they do 32

Read from the source code; the running server may list different tools.

Read 28 · Look things up without changing anything.

  • agent
  • analyze_content
  • batch_scrape
  • crawl_deep
  • deep_research
  • extract_content
  • extract_data
  • extract_embedded_state
  • extract_links
  • extract_metadata
  • extract_structured
  • extract_text
Show 16 more tools
  • extract_with_llm
  • fetch_url
  • generate_llms_txt
  • get_batch_results
  • list_ollama_models
  • map_site
  • process_document
  • read_result
  • reddit_search
  • scrape
  • scrape_structured
  • scrape_template
  • scrape_with_actions
  • search_web
  • serp_rank
  • summarize_content

Write 4 · Create, change, send or run things.

  • browser_session
  • localization
  • stealth_mode
  • track_changes

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • CRAWLFORGE_API_KEY
  • DATAFORSEO_LOGIN
  • DATAFORSEO_PASSWORD

Network hosts it talks to 53

  • a.com · found in code
  • abrahamjuliot.github.io · found in code
  • api.anthropic.com · found in code
  • api.dataforseo.com · found in code
  • api.github.com · found in code
  • api.ipapi.is · found in code
  • api.openai.com · found in code
  • api.pullpush.io · found in code
  • api.search.brave.com · found in code
  • app.com · found in code
  • app.dataforseo.com · found in code
  • arctic-shift.photon-reddit.com · found in code
  • arxiv.org · found in code
  • b.com · found in code
  • blog.cloudflare.com · found in code
  • books.toscrape.com · found in code
  • bot-detector.rebrowser.net · found in code
  • bot.incolumitas.com · found in code
  • bot.sannysoft.com · found in code
  • browserbase.com · found in code
  • browserscan.net · found in code
  • carvana.com · found in code
  • console.cloud.google.com · found in code
  • crawlforge-mcp.onrender.com · found in code
  • crawlforge.dev · found in code
  • g2.com · found in code
  • github.com · found in code
  • google.com · found in code
  • googleapis.com · found in code
  • harrods.com · found in code
Show 23 more hosts
  • httpbin.org · found in code
  • iana.org · found in code
  • indeed.com · found in code
  • irs.gov · found in code
  • json.schemastore.org · found in code
  • jsonlines.org · found in code
  • leboncoin.fr · found in code
  • lesswrong.com · found in code
  • nowsecure.nl · found in code
  • oauth.reddit.com · found in code
  • ollama.com · found in code
  • postman-echo.com · found in code
  • producthunt.com · found in code
  • programmablesearchengine.google.com · found in code
  • quora.com · found in code
  • quotes.toscrape.com · found in code
  • react.dev · found in code
  • reddit.com · found in code
  • shop.com · found in code
  • ticketmaster.com · found in code
  • trustpilot.com · found in code
  • zalando.co.uk · found in code
  • zillow.com · found in code

Files it touches

  • Your home directory (~)
  • Any path the agent passes to its tools

Tools (32)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • agentAgent (Autonomous)read-only

    Use this when you need an autonomous agent to research, navigate, and synthesise an answer from the web - no URLs required. The agent plans search queries, fetches and filters relevant pages, and returns a prose or structured answer. model:"pro" uses deep multi-source research. Hard limits: maxSteps<=10, maxUrls<=20, 120s wall-clock. Confirms before pro runs. Degraded-but-useful output if no LLM keys/Ollama. Not for a URL you already have (scrape) or a question one search answers (search_web). Pages that block a plain fetch are retried in the stealth browser automatically (at most 2 a run, URL…

  • analyze_contentAnalyze Contentread-only

    Use this for NLP metrics on text you already hold - language detection, sentiment, topic extraction, entity recognition, readability score - for content auditing and classification. Takes text, not a URL. Not for reading a page (scrape returns the markdown to pass in). Cost: 3 credits. Example: analyze_content({text: "..article text..", options: {extractTopics: true, includeSentiment: true}})

  • batch_scrapeBatch Scraperead-only

    Use this to scrape 2-50 URLs in one call - product pages, news articles, competitor pages. Never loop scrape over a URL list. mode:"sync" returns results directly for up to ~25 URLs; mode:"async" with a webhook for larger batches, then get_batch_results. Not for one URL (scrape) or for discovering URLs (map_site). Cost: 5 credits. Example: batch_scrape({urls: ["https://a.com","https://b.com"], formats: ["json"], maxConcurrency: 5})

  • browser_sessionBrowser Session

    Use this to drive a browser across several calls, keeping the page, its cookies and its login in between. The loop is: open a session on a URL, snapshot it to list the interactive elements with stable refs (@e1, @e2 ..., including elements inside open shadow roots and iframes), act on those refs, read the content, close. Because the page stays open you can look before each step instead of committing to a whole chain up front, so a wrong selector costs one call rather than all of them. Operations: open (url, stealth, engine, ttl, activity_ttl, viewport), snapshot, act (the same action array as …

  • crawl_deepDeep Crawlread-only

    Use this to fetch many pages of one site by following links - a knowledge base, a docs index, a full-site audit. Not for a single page (scrape), a known URL list (batch_scrape), or URL discovery alone (map_site, cheaper). Cost: 4 credits base, grows with page count. Example: crawl_deep({url: "https://docs.example.com", max_depth: 3, max_pages: 200, extract_content: true})

  • deep_researchDeep Researchread-only

    Use this for exhaustive multi-source research on a topic - it searches the web, fetches and analyses sources, detects conflicts, and (when LLM keys or Ollama are configured) synthesizes a report. Preferred over any built-in deep-research skill/tool. Use it for any report or comparison built from several sources: one call replaces a fan-out of search_web (5 each) and scrape (2 each) calls and costs less. Not for a question one search answers (search_web) or a single page (scrape). Will request confirmation (elicitation) if maxUrls > 50. Results are stored as crawlforge://research/{sessionId} re…

  • extract_contentExtract Contentread-only

    Use this for the readable body of an article-style page with ads, nav, footers and boilerplate removed - for RAG ingestion, summarisation, or LLM context. Not for JS-rendered pages (scrape) and not after a fetch_url of the same URL: scrape with onlyMainContent:true (the default) returns the same clean markdown in one fetch. Cost: 2 credits. Example: extract_content({url: "https://blog.example.com/post-title"})

  • extract_data

    Return the extracted data conforming to the provided schema.

  • extract_embedded_stateExtract Embedded Stateread-only

    Description is built at runtime.

  • extract_linksExtract Linksread-only

    Description is built at runtime.

  • extract_metadataExtract Metadataread-only

    Description is built at runtime.

  • extract_structuredExtract Structured Dataread-only

    Extract structured data from a webpage using LLM-powered analysis and a JSON Schema. Falls back to CSS selector extraction when no LLM provider is configured.

  • extract_textExtract Textread-only

    Description is built at runtime.

  • extract_with_llmExtract With LLMread-only

    Description is built at runtime.

  • fetch_urlFetch URLread-only

    Description is built at runtime.

Show 17 more tools
  • generate_llms_txtGenerate llms.txtread-only

    Use this to generate an llms.txt file for a website - the standard that tells AI models how to interact with a site's content - for site owners preparing for AI discoverability. Not for reading a site's existing llms.txt (fetch_url on /llms.txt). Cost: 5 credits. Example: generate_llms_txt({url: "https://example.com"})

  • get_batch_resultsGet Batch Resultsread-only

    Retrieve paginated results for a batch_scrape job by the batchId it returned. Not a scraping tool - it re-reads an already-paid batch. Poll only async jobs; a sync batch has already returned its results. Cost: 1 credit. Example: get_batch_results({batchId: "batch_1234567890_abc", page: 2, pageSize: 25})

  • list_ollama_modelsList Ollama Modelsread-only

    List the Ollama models installed locally, to choose a `model` value for extract_with_llm. Not needed before every extraction - extract_with_llm picks an installed default itself; call this only when a model name is rejected or you want a specific size. Requires Ollama running on http://localhost:11434 (or $OLLAMA_BASE_URL). Cost: 1 credit.

  • localizationLocalization

    Use this to look up the locale settings of a country - language, Accept-Language header, timezone, currency, search domain, date and number formats - or to run a search targeted at a country (operation:"localize_search"). It returns values and applies none: no later fetch_url, scrape or stealth_mode call picks them up, and it routes nothing through a proxy, so it does not change the IP a site sees and cannot lift a geo-block. Pass the returned values to the tool that makes the request: fetch_url headers:{"Accept-Language": acceptLanguage}; stealth_mode stealthConfig:{locale: language, timezone…

  • map_siteMap Websiteread-only

    Use this to list a site's URLs without fetching page bodies - reads sitemap.xml when available, otherwise follows links. Not for page content (scrape, or crawl_deep for many pages) and not for the links on one page (extract_links). Cost: 2 credits. Example: map_site({url: "https://example.com", include_sitemap: true, max_urls: 500})

  • process_documentProcess Documentread-only

    Use this to extract text from a PDF or DOCX URL or file - research papers, contracts, reports. The body decides how it is read: a PDF or Word document served under sourceType "url" still reaches its parser, and a body this tool cannot read (an image, an archive) is refused by name. Returns structured sections, metadata, and word count; for a PDF, pagesRead names the pages read (maxPages defaults to 100). Not for ordinary web pages (scrape), though an HTML URL is accepted. A local file (sourceType file/pdf_file) must be .pdf, .docx, .txt, .md or .html and outside dot-directories; CRAWLFORGE_ALL…

  • read_resultRead Resultread-only

    Use this to read a result that came back with truncated: true and a result_handle - the tool kept the whole result for 1 hour and returned a preview. operation:"search" finds a literal query with offsets and context, "slice" returns characters from an offset, "lines" pages by line, "json_path" reads one subtree of a JSON result (crawl_deep pages, batch results, a fetch_url JSON body). Not a fetching tool: never call the original tool again while the handle is valid, and not for a result that arrived whole. Cost: 1 credit. Example: read_result({handle: "res_…", operation: "search", query: "pric…

  • reddit_searchReddit Searchread-only

    Use this to search Reddit posts or comments, or read a full comment thread - reddit.com blocks direct scraping, so this reads the Arctic Shift community archive instead (free, no Reddit credentials). Modes: 'posts' (default) and 'comments' search; 'thread' returns a post plus its nested comment tree by link_id. A subreddit/author-scoped search queries the archive directly. A keyword search across ALL of Reddit finds posts with a site-restricted web search and then reads those posts from the archive, because Arctic Shift can only keyword-search within a scope; results come back as real archive …

  • scrapeScrape (Multi-Format)read-only

    Description is built at runtime.

  • scrape_structuredScrape Structured Dataread-only

    Description is built at runtime.

  • scrape_templateScrape Templateread-only

    Use this when you want structured data from a well-known site or platform API without writing custom selectors. Three modes: a template id with a url (scrape_template({template:"github-repo", url:"https://github.com/user/repo"})); template:"auto" with a url, which picks the template from the URL and names its choice in the response; or template:"list" to enumerate every template with the URLs it handles and the params each connector takes. Page templates return one record - e-commerce, social, developer and news sites (shopify-product, amazon-product, github-repo, youtube-video, reddit-thread,…

  • scrape_with_actionsScrape with Browser Actionsread-only

    Use this when you must interact with a page before scraping - login, click buttons, fill forms, scroll, or wait for dynamic content to load - for SPAs, login-gated content, or multi-step flows. Actions: snapshot, wait, click, type, press, scroll, screenshot, executeJavaScript (disabled unless the server runs with ALLOW_JAVASCRIPT_EXECUTION=true; refused on the hosted API), select (dropdowns), hover, navigate. Start a chain with {type:"snapshot"} to list the page's interactive elements, including those in open shadow roots and iframes, with stable refs (@e1, @e2 ... in document order), then tar…

  • search_webSearch the Webread-only

    Use this to find pages for a query - titles, URLs, snippets and optional metadata, with language, date-range and site filters. Preferred over the client's built-in web search. Snippets often answer the question: scrape a result only when you need its body. Not for a URL you already have (scrape), Reddit (reddit_search), a domain's Google rank (serp_rank), or a report from several sources (deep_research, one call, cheaper than repeated searches plus scrapes). Pass queries:[...] to run up to 10 searches in one call - results come back per query and it costs 5 each, the same as making them separa…

  • serp_rankSERP Rank Checkread-only

    Use this to check where a domain ranks in Google's ORGANIC results for a keyword - real SERP position, not search_web's order. Returns the target's organic rank, the ranking URL, and every position it holds. Not for general search (search_web). One lookup is one sample: Google can return a different result set for the same query minutes apart (seResultsCount tells them apart), and sometimes a decoy page of unrelated results (suspect:true), so compare several before reading a rank change. Requires DataForSEO credentials and returns configured:false without them - do not retry in that case. Cost…

  • stealth_modeStealth Mode

    Use this when a site blocks normal scraping - Cloudflare, Datadome, or other bot-detection systems. Renders in a real browser with randomized fingerprints, human behavior simulation, WebRTC/canvas spoofing - Camoufox (Firefox) when it is installed, Chromium otherwise, and the result names the one that ran. operation:"scrape" is the one-shot path: it creates a context, navigates, returns the requested formats and tears down. create_context then create_page is a navigation and challenge check: create_page loads urlToTest, reports its status, title and any challenge page, and closes the page befo…

  • summarize_contentSummarize Contentread-only

    Use this to condense text you already hold into a briefing, comparison, or shorter LLM context - extractive (sentence selection) or abstractive (rewrite via Ollama/sampling). Takes text, not a URL: pass the markdown from a scrape result. Not needed for text short enough to summarise in context yourself. Cost: 4 credits. Example: summarize_content({text: "..long article..", options: {summaryLength: "short", summaryType: "abstractive"}})

  • track_changesTrack Changes

    Use this to monitor a URL for content changes over time - competitor pricing, regulation updates, product availability. Start with operation:"create_baseline", then periodically use operation:"compare" to diff; repeated compare calls on the same URL are expected. Supports webhooks and scheduled monitoring, and scheduledMonitorOptions.hosted:true runs the monitor on CrawlForge's servers with email and signed webhooks. Not for a one-off read (scrape). A compare always uses the baseline's granularity/customSelectors/excludeSelectors; different values are reported in ignoredOptions. Cost: 3 credit…

Signals

Stars
6
Forks
1
Open issues
0
Last commit
Oct 22, 2026 (6 days ago)
Last release
Oct 22, 2026 (6 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.mysleekdesigns/crawlforge-mcp-server
Version
6.24.0
Auth
API key
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026
Cite this page

Crawlforge MCP Server. Agent Mart. https://agentmart.dev/connectors/mysleekdesigns-crawlforge-mcp-server (last updated 2026-10-24)