[Bug]: MCP scrape tools lack wait_until / SPA support that REST API and CLI provide
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 52/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Calme
- Stack technique
- python
- Domaine
- api, documentation
Piste de recherche
Start at the MCP scrape tool schemas and compare their exposed arguments with the existing crawler_config options used by POST /crawl and crwl -c. Verify the MCP tools on a JavaScript-heavy page, then confirm they accept wait_until and delay_before_return_html and that the documentation explains default wait behavior across MCP, REST, and CLI.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
crawl4ai version
0.8.6
Expected Behavior
MCP scrape tools (crawl4ai_md, crawl4ai_html, etc.) should accept the same wait_until, delay_before_return_html, and cache_mode parameters as the REST API (POST /crawl) and CLI (crwl -c). This would allow MCP-based agents to reliably scrape JavaScript-heavy pages by waiting for content to fully load.
Example desired usage:
{
"url": "https://example.com/dynamic-content",
"wait_until": "networkidle",
"delay_before_return_html": 2
}
Environment
| Component | Version |
|---|---|
| Crawl4AI | 0.8.6 |
| OS | Debian GNU/Linux 12 (bookworm) |
| Python | 3.12.13 |
| Image | unclecode/crawl4ai:latest |
Suggested Fix
- Expose
crawler_configparameters on MCP tool schemas — mapwait_until,delay_before_return_html,cache_mode, etc. to the existing REST/CLI options - Document MCP defaults vs REST/CLI behavior
Acceptance Criteria
- MCP scrape tools accept
wait_untilparameter (load,domcontentloaded,networkidle,commit) - MCP scrape tools accept
delay_before_return_htmlparameter - Documentation clarifies default wait behavior for each interface (MCP vs REST vs CLI)
Current Behavior
MCP tools return immediately after initial DOM load, without waiting for dynamic content. No parameters are exposed to control wait behavior.
- REST API with
crawler_config.wait_until: "networkidle"→ ✅ Complete rendered content - CLI with
-c 'wait_until=networkidle'→ ✅ Complete rendered content - MCP tools → ❌ Incomplete content (dynamic elements missing)
Current workaround: Bypass MCP entirely and use POST /crawl directly.
Is this reproducible?
Yes
Inputs Causing the Bug
Any JavaScript-heavy / AJAX-driven page where content loads after initial page load.
Steps to Reproduce
1. Start Crawl4AI with MCP enabled at `/mcp/sse`
2. Configure any MCP client (e.g., OpenCode) with the Crawl4AI MCP server
3. Call MCP scrape tool:
crawl4ai_md(url="https://example.com/dynamic-content")
4. Observe: Content is incomplete (dynamic elements not rendered)
5. Compare with working REST call:
curl -s http://localhost:11235/crawl \
-H 'Content-Type: application/json' \
-d '{
"urls": ["https://example.com/dynamic-content"],
"crawler_config": {
"wait_until": "networkidle",
"cache_mode": "bypass"
}
}'
6. Observe: REST returns complete rendered content
Code snippets
OS
Debian GNU/Linux 12 (bookworm)
Python version
3.12.13
Browser
No response
Browser version
No response
Error logs & Screenshots (if applicable)
No response
- Langage dominant
- Python
- Étoiles
- 84.5k
- Forks
- 8.7k
- Merge moyen
- 3 j 20 h
- PR mergées (30 j)
- 15
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de unclecode/crawl4ai
-
🐞 Bug 🩺 Needs Triage
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
unclecode/crawl4ai#2319 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: Reusing BFSDeepCrawlStrategy leaks the previous crawl's max_pages budget into a fresh runOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
unclecode/crawl4ai#2309 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 84/100
unclecode/crawl4ai#2147 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
unclecode/crawl4ai#2123 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
🐞 Bug 🩺 Needs Triage
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de unclecode/crawl4ai
Issues similaires
-
repo-audit
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
scverse/repo-health#20 ·
Les mainteneurs répondent en général sous 1 jour
-
/context/prime scope override double-prefixes an entity-ref project and drops its scoped memoriesOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
phasespace-labs/palinode#232 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
collective/icalendar#1858 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
lfx-mcp cannot supply global variables: LangflowClient drops X-LANGFLOW-GLOBAL-VAR-* from envOuvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
langflow-ai/langflow#15496 ·
Les mainteneurs répondent en général sous 1 jour