Web scraping & search for AI agents: extract, SearXNG search, rerank, robots compliance. No API key.
MCPpedia last refreshed this data
io.github.waiky-github/CrawlEyes is an MCP server that web scraping & search for AI agents: extract, SearXNG search, rerank, robots compliance. No API key. Its tool list has not been published yet over stdio, sse and http, requires no API key, and scores 85/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"io-github-waiky-github-crawleyes": {
"args": [
"crawleyes"
],
"command": "uvx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Web scraping & search for AI agents: extract, SearXNG search, rerank, robots compliance. No API key.
This server supports HTTP transport. Be the first to test it - help the community know if it works.
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked crawleyes against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in browser / search
Open-source web scraper for AI agents with scrape, crawl, and map tools
Extract data from any website with thousands of scrapers, crawlers, and automations on Apify Store ⚡
Search-first MCP server for JavaScript reverse engineering: 735 tools across 36 domains.
MCP server for advanced web search using Tavily
MCP Security Weekly
Get CVE alerts and security updates for io.github.waiky-github/CrawlEyes and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
English | 中文
CrawlEyes gives AI agents reliable full-text extraction (web_extract) and robust search (web_search) backends — the "eyes" that let agents see and read the web. Built and tested against Hermes Agent.
Also ships as a standard MCP server, so any MCP client (Claude Desktop, Cursor, other agents) can reuse the same search + extraction capabilities.

Most agent toolkits cover one slice of the pipeline. CrawlEyes is the rare all-in-one that you can actually run behind the Great Firewall without external accounts.
| Typical agent toolkit | CrawlEyes | |
|---|---|---|
| 🔍 Search | API key required, often blocked in CN | ✅ SearXNG (self-hosted) + Tavily keyless fallback — zero config, zero key |
| 📄 Extraction | Separate scraper, or Firecrawl SaaS | ✅ Built-in Crawl4AI full-text extract, ~89% noise removal |
| 🧠 Semantic rerank | Rarely included | ✅ Local fastembed rerank — no torch, ~50MB model |
| 🔌 MCP server | Often missing | ✅ Standard MCP tools (search + extract + deep_research + sitemap), any client |
| 🌐 China-friendly | Mostly English/GFW-blocked | ✅ Tested on a real mainland China server (baidu + yandex) |
Zero API keys. Zero external accounts. One command. CrawlEyes is the only toolkit in this space that combines search + extraction + semantic reranking + MCP in a single, China-friendly, self-hosted package.
| Capability | Where | Why it matters |
|---|---|---|
| Full-text extraction | scripts/crawl4ai_cli.py | Headless-browser scraping → clean Markdown; handles ~80% of JS/dynamic/UA-blocked pages |
| Content denoising (P1) | crawl4ai_cli.py --noise-filter | Prunes nav/ads/comments via Crawl4AI's PruningContentFilter — measured 24.6k→2.8k chars (~89% noise removed) on a typical article |
| Retry with backoff (P3) | crawl4ai_cli.py --retry N | Exponential backoff (1s/2s/4s) on transient failures |
| Browser session reuse (P4) | crawl4ai_cli.py --session NAME | Reuses the browser context across scrapes in one process — no cold-start per URL |
| Keyword-focused extraction | crawl4ai_cli.py --bm25 KEYWORD | Keeps only paragraphs relevant to a keyword (experimental — BM25 is English-centric; works best on English docs) |
| Search (primary) | SearXNG (self-hosted meta-search) | Privacy-friendly search aggregator |
| Search (fallback) | Tavily keyless API | Zero-config, no-key fallback when SearXNG is down/empty |
| Search orchestration | plugins/searxng-tavily/ | Hermes plugin provider: SearXNG first → auto-fallback to Tavily keyless; three-state circuit breaker (3 fails → 60s cooldown → half-open) + shared SQLite cache (TTL 3600s) |
| Semantic reranking (P2) | scripts/crawl_search_standalone.py | Local embedding rerank of search results with fastembed + BAAI/bge-small-zh-v1.5 (512-dim, no torch dependency, ~50MB, cached) — puts relevant results first. Measured: crawler-relevant items 0.817/0.732 float to top, irrelevant 0.302/0.139 sink |
| MCP server (P5) | `scripts/mcp_crawl_s |