Login

grub ๐Ÿ•ท v1.0.0

Agentic web crawler with bot-bypass and mesh P2P.

Crawl any URL โ€” even Cloudflare, Incapsula, or DataDome.
Returns clean markdown. Ghost Protocol vision-fallback for hard-blocked pages.
Camoufox stealth ยท MCP tooling ยท Bounded LLM agent loop ยท Policy gates ยท Replayable traces.

Try it View API Quick Start Health GitHub
โ€”
Status
โ€”
Tools
Camoufox
Engine
MCP
Transport

Capabilities

Crawl

Playwright + Camoufox stealth. Cookie injection, residential proxy support, automatic Cloudflare/Incapsula challenge solver.

Ghost Protocol

When a page is blocked, screenshot it and extract content via vision LLM. Fallback survives most anti-bot detection.

Markdown

Rust-backed extraction (grub_md) returning clean markdown. Body/visible char counts, content-quality classification.

Agent (Mode B)

Bounded LLM loop: plan โ†’ tool call โ†’ observe. Anthropic, OpenAI, Ollama providers. Policy gates on every dispatch.

MCP Server

Streamable-HTTP MCP at /mcp/. Exposes grub_crawl, grub_screenshot, grub_diagnose to any MCP client.

Mesh P2P

Optional peer-to-peer mesh โ€” crawl jobs route to the healthiest peer. Zero-trust HMAC + replay-protected nonces.

API

MethodEndpointDescription
POST/api/crawlCrawl URL โ†’ HTML + markdown + screenshot
POST/api/markdownCrawl URL โ†’ markdown only (faster)
POST/api/batchCrawl multiple URLs in one request
POST/api/jobs/crawlAsync job โ€” queue and poll for result
POST/api/agent/runRun bounded LLM agent on a task
POST/api/agent/ghostGhost Protocol โ€” vision extract a blocked URL
GET/mcp/MCP streamable-http transport (tools)
GET/healthStatus, version, tool count

All /api/* endpoints require Authorization: Bearer <ahp_token>. Get a token from your dashboard.

Try it

POSTs to /api/markdown with your bearer token. Returns the first 1KB of markdown.

Quick start

# Crawl โ†’ markdown
curl -X POST https://grub.nuts.services/api/markdown \
  -H "Authorization: Bearer ahp_yourtoken" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}'

# With Camoufox warmup (for Cloudflare-protected sites)
curl -X POST https://grub.nuts.services/api/markdown \
  -H "Authorization: Bearer ahp_yourtoken" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://target.com", "options": {"warmup": true}}'

# Inject pre-solved cookies to bypass challenges
curl -X POST https://grub.nuts.services/api/markdown \
  -H "Authorization: Bearer ahp_yourtoken" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://target.com", "options": {"cookies": {"visid_incap_X": "..."}}}'

# Add as MCP server in Claude Code
claude mcp add grubcrawler \
  --transport http \
  --header "Authorization: Bearer ahp_yourtoken" \
  https://grub.nuts.services/mcp/