Crawl4AI MCP
The Crawl4AI MCP server enables AI assistants to crawl websites and extract structured Markdown content via the Model Context Protocol. Key capabilities include:
Basic Web Crawling: Crawl any URL with configurable depth (
max_depth) to control how many levels of links to follow.Content Extraction: Return scraped Markdown content directly in the MCP response (truncated to 50k chars) and/or save it to a file (auto-generated path or specified via
output_file).Dynamic Content & SPA Support: Wait for a CSS selector to appear (
wait_for_selector) or set an explicit delay (delay_before_return_html) before extracting content, ideal for JavaScript-heavy pages.Anti-Bot Bypass: Use Magic Mode (
magic: true) to simulate real browser behavior and bypass protections like Cloudflare.Targeted Extraction: Use CSS selectors (
css_selector) to extract only specific page elements instead of full content.Custom JavaScript Execution: Run custom JS code before extraction (e.g., clicks, scrolls, form fills) — requires
CRAWL4AI_MCP_ALLOW_JS=trueenvironment variable.Persistent Sessions: Maintain cookies and browser state across requests using a
session_id, enabling authenticated or stateful site crawling.Link Control: Optionally include or exclude external links (
include_external) in results.Verbose Logging: Enable detailed output (
verbose) for debugging and monitoring.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Crawl4AI MCPcrawl https://example.com and summarize the main content"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Web Crawler MCP
A powerful web crawling tool that integrates with AI assistants via the MCP (Model Context Protocol). This project allows AI assistants to crawl websites, extract dynamic content, navigate through links, and save structured Markdown files directly.
📋 Features
Native integration with AI assistants via MCP
Return scraped Markdown content directly to the AI
Extracts and surfaces internal/external links for AI navigation
Website crawling with configurable depth
Detailed crawl result statistics
Error and not found page handling
Advanced Scraping Capabilities:
Magic Mode: Bypass anti-bots (like Cloudflare) and simulate real browser behavior
Targeted Extraction: Fetch only what you need using CSS selectors
Custom JavaScript: Execute code before extraction (clicks, scrolls, form fills)
Persistent Sessions: Keep cookies and state across requests for authenticated sites
SPA Support: Wait for dynamic CSS selectors or set explicit pre-extraction delays
Related MCP server: cloudscraper-mcp
🚀 MCP Configuration
The simplest and recommended way to use this tool is via uvx, which automatically fetches and runs the latest published version from PyPI.
Prerequisites
uv installed on your system.
Setup for AI Assistants (e.g., Claude Desktop, Cline)
Add the following to your AI Assistant's MCP configuration file (e.g., cline_mcp_settings.json or claude_desktop_config.json):
Note for Windows Users: It is highly recommended to specify
--python 3.13to avoid compilation issues with certain dependencies.
From PyPI (recommended):
{
"mcpServers": {
"crawl": {
"command": "uvx",
"args": [
"--python",
"3.13",
"crawl4ai-mcp-llm"
],
"disabled": false,
"autoApprove": [],
"timeout": 600
}
}
}From GitHub (latest unreleased):
{
"mcpServers": {
"crawl": {
"command": "uvx",
"args": [
"--python",
"3.13",
"--from",
"git+https://github.com/laurentvv/crawl4ai-mcp-llm",
"crawl4ai-mcp-llm"
],
"disabled": false,
"autoApprove": [],
"timeout": 600
}
}
}Important: Browser Installation
The crawler uses Playwright to handle dynamic content. You must install the required browsers after setting up the tool:
uv run playwright install chromium🖥️ Usage
Once configured, you can use the crawler by asking your AI assistant to perform a crawl.
Usage Examples with Claude/Cline
Simple Crawl: "Can you crawl the site example.com and give me a summary?"
Crawl with Options: "Can you crawl https://example.com with a depth of 3 and include external links?"
Dynamic Content: "Crawl this React app and wait for the
.main-contentselector to load."Bypass Protections: "Crawl example.com but use 'magic mode' to bypass the anti-bot protection."
Targeted Extraction: "Crawl the docs site but only extract content matching the
h1, p.leadCSS selector."
🛠️ Available Parameters (MCP Tool)
The crawl tool accepts the following parameters:
Parameter | Type | Description | Default Value |
| string | URL to crawl (required) | - |
| integer | Maximum crawling depth | 2 |
| boolean | Include external links | false |
| boolean | Enable detailed output | true |
| string | CSS selector to wait for before extracting content. Useful for single-page applications. | None |
| boolean | Whether to return the extracted content directly in the MCP response (truncated to 50k chars if necessary). | true |
| string | Output file path | automatically generated |
| boolean | Enable magic mode to bypass anti-bots and simulate a real browser | false |
| string | Specific CSS selector to extract only targeted elements from the page | None |
| string | Custom JavaScript code to execute on the page before extraction | None |
| string | Persistent session identifier to keep cookies and browser state across requests | None |
| number | Delay in seconds to wait before extracting HTML (useful for heavy JS pages) | None |
👨💻 Development
If you want to modify the crawler or run it locally:
Clone this repository:
git clone https://github.com/laurentvv/crawl4ai-mcp-llm
cd crawl4ai-mcp-llmInstall dependencies using
uv:
uv syncTest the MCP server locally using the official MCP Inspector:
npx -y @modelcontextprotocol/inspector uv run crawl4ai-mcp-llmRun the automated test suite:
uv run pytest tests/Run the MCP server directly (for standard usage):
uv run crawl4ai-mcp-llm🤝 Contribution
Contributions are welcome! Feel free to open an issue or submit a pull request.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
Available Tools
1 toolcrawlB
Crawls a website and saves its content as structured markdown to a file
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to crawl | |
| max_depth | No | Maximum crawling depth | |
| include_external | No | Whether to include external links | |
| verbose | No | Enable verbose output | |
| output_file | No | Path to output file (generated if not provided) | |
| wait_for_selector | No | CSS selector to wait for before extracting content. Useful for single-page applications. | |
| return_content | No | Whether to return the extracted content directly in the MCP response | |
| magic | No | Enable magic mode to bypass anti-bots and simulate a real browser | |
| css_selector | No | Specific CSS selector to extract only targeted elements from the page | |
| js_code | No | Custom JavaScript code to execute on the page before extraction (Requires CRAWL4AI_MCP_ALLOW_JS=true environment variable) | |
| session_id | No | Persistent session identifier to keep cookies and browser state across requests | |
| delay_before_return_html | No | Delay in seconds to wait before extracting HTML (useful for heavy JS pages) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only mentions saving to file, ignoring the return_content parameter's behavior and other complex features like magic mode and JS execution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise but underspecified for the complexity; it does not front-load key behavioral details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 12 parameters and lack of output schema, the description fails to explain return values, side effects, or important behavioral nuances.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no additional parameter meaning beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (crawls) and the output (structured markdown to a file), leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives; no context about prerequisites or appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
v0.1.0- First observed
crawl
TDQS
Only one tool exists, so there is no possibility of confusion between tools. The purpose is clear and unique.
With a single tool, naming is trivially consistent. The verb 'crawl' appropriately describes the action.
A single tool feels thin for a crawling service, which typically offers multiple options (depth, output formats, etc.). However, for a minimal markdown-only crawler, it is borderline reasonable.
The tool covers the basic crawl-and-save workflow but lacks parameters like depth, page limits, or format selection, which are common gaps for such a service.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Scrape, crawl and search the web for AI agents via MCP.
Web scraping for AI agents. Converts URLs to clean, LLM-ready Markdown with anti-bot bypass.
One MCP for the Web. Easily search, crawl, navigate, and extract websites without getting blocked.…
Web search, URL content extraction to Markdown, site mapping, and recursive web crawler.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to fetch and analyze web content from URLs through MCP protocol. Supports batch processing, content extraction, summarization, and metadata extraction with intelligent filtering of ads and navigation elements.-
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to bypass Cloudflare protection and scrape web content, returning clean Markdown with smart chunking and file export.1-
- AlicenseAqualityBmaintenanceEnables AI agents to perform multi-engine web search, fetch web pages, and extract clean Markdown content via MCP, with no API keys required.36MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to fetch any web page (including those behind Cloudflare or CAPTCHAs), extract clean markdown, structured data, crawl sites, and map URLs via BypassAPI.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/laurentvv/crawl4ai-mcp-llm'
If you have feedback or need assistance with the MCP directory API, please join our Discord server