{
  "markdown": "<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/mysleekdesigns/crawlforge-mcp/main/assets/banner.jpg\" alt=\"CrawlForge MCP Server\" width=\"640\">\n</p>\n\n<p align=\"center\">\n  <b>30 web scraping, crawling, deep-research &amp; autonomous-extraction tools for Claude, Cursor &amp; any MCP client.</b><br>\n  Clean Markdown &amp; structured JSON from any site. Get started with <b>1,000 free credits</b> — no credit card required.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" alt=\"License: MIT\"></a>\n  <a href=\"https://nodejs.org/\"><img src=\"https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen\" alt=\"Node.js Version\"></a>\n  <a href=\"https://modelcontextprotocol.io/\"><img src=\"https://img.shields.io/badge/MCP-Compatible-blue\" alt=\"MCP Protocol\"></a>\n  <a href=\"https://www.npmjs.com/package/crawlforge-mcp-server\"><img src=\"https://img.shields.io/npm/v/crawlforge-mcp-server.svg\" alt=\"npm version\"></a>\n  <a href=\"https://www.npmjs.com/package/crawlforge-mcp-server\"><img src=\"https://img.shields.io/npm/dm/crawlforge-mcp-server.svg\" alt=\"npm downloads\"></a>\n  <a href=\"https://github.com/mysleekdesigns/crawlforge-mcp/stargazers\"><img src=\"https://img.shields.io/github/stars/mysleekdesigns/crawlforge-mcp?style=social\" alt=\"GitHub stars\"></a>\n</p>\n\n<p align=\"center\">\n  ⭐ <b><a href=\"https://github.com/mysleekdesigns/crawlforge-mcp\">Star us on GitHub</a></b> to follow along — it genuinely helps others discover the project.\n</p>\n\n## Table of Contents\n\n- [Why CrawlForge?](#-why-crawlforge)\n- [CrawlForge vs. alternatives](#-crawlforge-vs-alternatives)\n- [Quick Start (2 Minutes)](#-quick-start-2-minutes)\n- [Available Tools](#-available-tools)\n- [Pricing](#-pricing)\n- [Advanced Configuration](#-advanced-configuration)\n- [Usage Examples](#-usage-examples)\n- [Security & Privacy](#-security--privacy)\n- [Support](#-support)\n- [Contributing](#-contributing)\n\n## 🎯 Why CrawlForge?\n\n- **30 MCP-native tools** — scraping, crawling, search, real Google SERP rank tracking, deep research, an autonomous `agent`, a unified multi-format `scrape`, document processing, stealth browsing, and more, callable directly from your AI assistant.\n- **Generous free tier** — 1,000 credits to start instantly, no credit card. The grant is one-time rather than monthly, and the credits never expire.\n- **Local-LLM by default** — `extract_with_llm` runs against a local **Ollama** model out of the box: no LLM API key, no per-token cost, and your data never leaves your machine. Cloud (OpenAI/Anthropic) is opt-in.\n- **LLM-ready output** — clean Markdown, structured JSON (schema-driven), screenshots, links, and metadata from a single fetch.\n- **Autonomous `agent`** — describe what you need in natural language; it plans, gathers, and shapes an answer under orchestrator-enforced hard stops (max steps/URLs/wall-clock) — no URLs required.\n- **Security-hardened** — SSRF protection on every request, a fail-closed backend allow-list, a vetted action allowlist for browser automation, and per-tool credit gating.\n- **Works everywhere MCP does** — Claude Desktop, Claude Code, Cursor, and any other MCP-enabled client, configured in one command.\n\n## 📊 CrawlForge vs. alternatives\n\n| | **CrawlForge MCP** | Firecrawl | Raw scraping API |\n|---|:---:|:---:|:---:|\n| Native MCP server | ✅ 30 tools | ✅ | ❌ |\n| Free tier | ✅ 1,000 credits, rollover | Limited | Varies |\n| Self-hosted / local LLM extraction (Ollama) | ✅ default, $0/token | ❌ | ❌ |\n| Autonomous agent (no URLs needed) | ✅ `agent` | ✅ | ❌ |\n| Deep research with source verification | ✅ `deep_research` | Partial | ❌ |\n| Browser automation / actions | ✅ `scrape_with_actions` | ✅ | Varies |\n| Stealth / anti-detection engines | ✅ Chromium + Camoufox | ✅ | Add-on |\n| Pre-built site templates | ✅ 10 sites | ❌ | ❌ |\n| License | MIT | AGPL-3.0 | Proprietary |\n\n> Comparison reflects publicly documented capabilities at time of writing. CrawlForge is MIT-licensed and MCP-first — built to plug straight into AI coding assistants.\n\n## 🚀 Quick Start (2 Minutes)\n\n### 1. Install from NPM\n\n```bash\nnpm install -g crawlforge-mcp-server\n```\n\n### 2. Setup Your API Key (required)\n\nEvery tool requires a CrawlForge API key — new accounts get 1,000 free trial credits to start. The recommended path signs you in through the browser, so the key is never pasted into a terminal (a coding agent can run this for you and relay the URL):\n\n```bash\ncrawlforge login\n```\n\nIt prints an approval URL; open it, approve, and the key is stored in `~/.crawlforge/config.json`. Then run `crawlforge init` to register the MCP server with your client. Or use the interactive wizard, which also configures your clients:\n\n```bash\nnpx crawlforge-setup\n```\n\nThis will:\n- Guide you through getting your free API key\n- Configure your credentials securely\n- **Auto-configure Claude Code and Cursor** (if installed)\n- Verify your setup is working\n\n**Don't have an API key?** Get one free at [https://www.crawlforge.dev/signup](https://www.crawlforge.dev/signup)\n\n> **One-step setup (v4.6.0+):** `crawlforge init` detects your API key, installs the agent skill, and idempotently merges the MCP config stanza into Claude Code, Claude Desktop, and Cursor. Use `crawlforge init --all --yes` to configure every detected client non-interactively.\n\n### 3. Configure Your IDE (if not auto-configured)\n\n<details>\n<summary>🤖 For Claude Desktop</summary>\n\nAdd to `claude_desktop_config.json`:\n```json\n{\n  \"mcpServers\": {\n    \"crawlforge\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"crawlforge-mcp-server\"]\n    }\n  }\n}\n```\n\n**Location:**\n- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`\n- Windows: `%APPDATA%/Claude/claude_desktop_config.json`\n- Linux: `~/.config/Claude/claude_desktop_config.json`\n\nRestart Claude Desktop to activate.\n</details>\n\n<details>\n<summary>🖥️ For Claude Code CLI (Auto-configured)</summary>\n\nThe setup wizard automatically configures Claude Code by adding to `~/.claude.json`:\n```json\n{\n  \"mcpServers\": {\n    \"crawlforge\": {\n      \"type\": \"stdio\",\n      \"command\": \"crawlforge-mcp\"\n    }\n  }\n}\n```\n\nAfter setup, restart Claude Code to activate.\n</details>\n\n<details>\n<summary>💻 For Cursor IDE (Auto-configured)</summary>\n\nThe setup wizard automatically configures Cursor by adding to `~/.cursor/mcp.json`:\n```json\n{\n  \"mcpServers\": {\n    \"crawlforge\": {\n      \"type\": \"stdio\",\n      \"command\": \"crawlforge-mcp\"\n    }\n  }\n}\n```\n\nRestart Cursor to activate.\n</details>\n\n<details>\n<summary>🔁 For n8n (workflow automation)</summary>\n\nn8n's built-in **MCP Client Tool** node connects over Streamable HTTP (works on n8n Cloud and self-hosted). Run the server in HTTP mode:\n\n```bash\nexport CRAWLFORGE_API_KEY=your_api_key\nnpm run start:http    # Streamable HTTP endpoint at http://localhost:10000/mcp\n```\n\nThen point the MCP Client Tool node at `http://<host>:10000/mcp` with transport **HTTP Streamable** and a **Bearer** credential set to the same API key. On self-hosted n8n you can instead use the community `n8n-nodes-mcp` node over STDIO (`npx -y crawlforge-mcp-server`).\n\nFull guide: [docs/n8n-integration.md](docs/n8n-integration.md)\n</details>\n\n> **Which launch command?** `npx -y crawlforge-mcp-server` needs no global install and always runs the published version (recommended for Claude Desktop). For a global install (`npm i -g crawlforge-mcp-server`), use the dedicated `crawlforge-mcp` bin — it resolves on your `PATH`, so it survives Node/nvm version switches. The bare `crawlforge` command still launches the server when an MCP client spawns it over stdio (backward compatibility for configs created before v4.2.5); interactively it's the CLI — run `crawlforge mcp` to start the server by hand.\n\n## 📊 Available Tools\n\nCrawlForge requires a CrawlForge API key — **every tool is metered and consumes credits**. New accounts get **1,000 free trial credits** to start. Get a key at [crawlforge.dev/signup](https://www.crawlforge.dev/signup).\n\n**All Tools** (API key required)\n\n| Tool | Credits | What it does |\n|------|---------|--------------|\n| `fetch_url` | 1 | Fetch content from any URL |\n| `extract_text` | 1 | Extract clean text from web pages |\n| `extract_links` | 1 | Get all links from a page |\n| `extract_metadata` | 1 | Extract page metadata (title, OG tags, schema.org) |\n| `scrape_template` | 1 | Structured data from well-known sites (Amazon, GitHub, LinkedIn, YouTube, Reddit, Hacker News, npm, and more) without writing selectors |\n| `list_ollama_models` | 1 | List the Ollama models installed locally (helps you pick a `model` for `extract_with_llm`) |\n| `get_batch_results` | 1 | Retrieve paginated results for a `batch_scrape` job by `batchId` |\n| `read_result` | 1 | Search, slice, read lines or a JSON path from a result a tool returned with `truncated: true` and a `result_handle` (kept 1 hour on your own machine) — never fetch the page again |\n| `scrape` | 2 | **Unified single-fetch, multi-format extraction.** Pass a `formats` array (markdown/html/rawHtml/text/links/metadata/screenshot/json-schema, plus `{type:\"highlights\",query}` and `{type:\"question\",question}` for only the matching sentences, table rows and code blocks, verbatim with offsets into the markdown: +1 credit once per call, `mode:\"model\"` +3) plus `onlyMainContent`; one fetch serves every requested format with per-format partial-success warnings. `escalate:true` retries a blocked plain fetch once in the stealth browser and returns the page instead of the block (+5 as the projected ceiling; the charge drops back to 2 when the plain fetch succeeded and no escalation ran) |\n| `scrape_structured` | 2 | Extract structured data with CSS selectors |\n| `extract_embedded_state` | 2 | Read a page's embedded JavaScript state — `__NEXT_DATA__`, React Server Component payloads, Nuxt, Apollo, Redux, `<script type=\"application/json\">` — with a `path` to scope the result. No LLM in the extraction path |\n| `extract_content` | 2 | Enhanced content extraction |\n| `map_site` | 2 | Discover and map website structure (optional `search=` ranks the discovered URLs) |\n| `process_document` | 2 | Multi-format document processing |\n| `localization` | 2 | Multi-language and geo-location management |\n| `track_changes` | 3 | Monitor content changes over time |\n| `analyze_content` | 3 | Comprehensive content analysis |\n| `extract_structured` | 3 | LLM-powered schema-driven extraction (your own LLM key or local Ollama) |\n| `extract_with_llm` | 3 | Natural-language extraction. Defaults to a local Ollama model; pass `provider: \"openai\" \\| \"anthropic\"` with the matching key for cloud models (external LLM billed by your provider) |\n| `summarize_content` | 4 | Generate intelligent summaries |\n| `crawl_deep` | 4 | Deep crawl entire websites |\n| `search_web` | 5 | Search the web using Google Search API |\n| `reddit_search` | 5 | Search Reddit posts/comments or read a full thread — reddit.com blocks direct scraping, so this reads the Arctic Shift community archive (free, no Reddit credentials). A Reddit-wide search spends a web search to discover posts, so it is priced with `search_web` |\n| `serp_rank` | 5 | Check where a domain ranks in Google's **real organic SERP** for a keyword (the position `search_web` can't give). Powered by DataForSEO (`DATAFORSEO_LOGIN`/`DATAFORSEO_PASSWORD`, billed to your own DataForSEO account). Returns `{ configured:false }` and charges **0** credits until configured |\n| `batch_scrape` | 5 | Process multiple URLs simultaneously |\n| `scrape_with_actions` | 5 | Browser automation chains |\n| `generate_llms_txt` | 5 | Generate AI interaction guidelines |\n| `stealth_mode` | 5 | Anti-detection browser management |\n| `agent` | 8 | **Autonomous research/extraction from a natural-language prompt — no URLs required.** Plans, gathers, and shapes an answer under hard safety stops (max steps/URLs/wall-clock enforced by the orchestrator, never the LLM) |\n| `deep_research` | 10 | Multi-stage research with source verification |\n\nTen tools (`scrape`, `fetch_url`, `extract_content`, `crawl_deep`, `batch_scrape`, `stealth_mode`, `scrape_with_actions`, `process_document`, `deep_research`, `extract_embedded_state`) accept `max_inline_chars` (default 40,000; env `CRAWLFORGE_MAX_INLINE_CHARS`): a result over it comes back as a `preview` plus a `result_handle` for `read_result`, with the full result kept for 1 hour under `~/.crawlforge/results/` on your own machine — nothing is uploaded.\n\nFor the full canonical capabilities reference (all tools, CLI commands, stealth engines, research workflow), see [SKILL.md](docs/SKILL.md).\n\n<p align=\"right\"><a href=\"#table-of-contents\">↑ Back to top</a></p>\n\n## 💳 Pricing\n\n**Every tool is metered and requires an API key.** New accounts get 1,000 free trial credits — no credit card required to start.\n\n| Plan | Credits | Best For |\n|------|---------|----------|\n| **Free** | 1,000 one-time | Testing & personal projects |\n| **Hobby** ($19) | 5,000 / month | Small projects & development |\n| **Professional** ($99) | 50,000 / month | Professional use & production |\n| **Business** ($399) | 250,000 / month | Large scale operations |\n\n**All plans include:**\n- Access to all 30 tools\n- Credits never expire; paid-plan credits roll over month to month\n- API access and webhook notifications\n\n[View full pricing](https://www.crawlforge.dev/pricing)\n\n## 🔧 Advanced Configuration\n\n### Environment Variables\n\n```bash\n# Optional: Set API key via environment\nexport CRAWLFORGE_API_KEY=\"cf_live_your_api_key_here\"\n\n# Optional: Custom API endpoint (for enterprise)\nexport CRAWLFORGE_API_URL=\"https://api.crawlforge.dev\"\n# As of v3.0.18, this variable is validated against an allow-list of CrawlForge backend hosts.\n\n# Optional: Local LLM (Ollama) overrides — extract_with_llm, extract_structured\n# and deep_research all use Ollama when no cloud key is set\nexport OLLAMA_BASE_URL=\"http://localhost:11434\"   # default; set https://ollama.com for Ollama Cloud\nexport OLLAMA_DEFAULT_MODEL=\"gemma3:4b\"            # optional; unset = pick the best installed model automatically\n                                                   # deep_research judges claims with gemma3:12b when it is installed (ollama pull gemma3:12b);\n                                                   # conflict detection is on only with that model, or a cloud provider\nexport OLLAMA_EMBEDDING_MODEL=\"nomic-embed-text\"   # default: OLLAMA_DEFAULT_MODEL; used for semantic ranking in deep_research\nexport OLLAMA_API_KEY=\"...\"                        # only for authenticated endpoints (required by Ollama Cloud; a local instance needs none)\nexport DISABLE_OLLAMA=\"true\"                       # skip Ollama entirely and use CSS/keyword fallbacks\n\n# Optional: Cloud LLM keys — only needed when you pass provider: \"openai\" or \"anthropic\"\nexport OPENAI_API_KEY=\"sk-...\"\nexport ANTHROPIC_API_KEY=\"sk-ant-...\"\n\n# Optional: limit which tools this client sees — by name, by group, or both (comma-separated)\nexport CRAWLFORGE_TOOLS=\"scrape,search_web,extract_content\"\nexport CRAWLFORGE_TOOL_GROUPS=\"basic,search,scrape\"   # unset = all tools; unknown names/groups are ignored with a warning\n\n# Optional: deep_research stealth extraction fallback (v4.6.6) — see below\nexport RESEARCH_STEALTH_ENGINE=\"auto\"      # auto (default) | camoufox | chromium\nexport RESEARCH_STEALTH_FALLBACK=\"true\"    # set to \"false\" to disable entirely\nexport RESEARCH_MAX_STEALTH_RETRIES=\"8\"    # cap on stealth retries per research run\n```\n\n### MCP Spec Features\n\nCrawlForge tracks the current MCP spec (2025-06-18) plus select experimental extensions:\n\n- **Structured output** — `scrape`, `map_site`, `serp_rank`, `reddit_search`, `search_web`, `extract_structured`, and `crawl_deep` return machine-parseable `structuredContent` alongside the usual text, validated against a published `outputSchema`; legacy clients keep working off the text.\n- **Self-correctable errors** — invalid tool input now comes back as an `isError: true` result the calling model can read and retry from, instead of a raw JSON-RPC protocol error.\n- **JSON Schema 2020-12** tool schemas, deterministic `tools/list` ordering (client prompt-cache friendly), and cacheable-result hints on read-only tools.\n- **Icons** on the server, its tools, and its prompts.\n- **Async tasks** (experimental) on the four long-running tools — `crawl_deep`, `batch_scrape`, `deep_research`, `agent` — for clients that support polling; synchronous results are still returned for clients that don't.\n\nSee [docs/mcp-spec-adoption.md](docs/mcp-spec-adoption.md) for wire-level examples and client-compatibility notes.\n\n### Local-LLM quickstart (`extract_with_llm` with Ollama)\n\n`extract_with_llm` defaults to a local Ollama model — no LLM-provider key, no per-token LLM costs, and no data leaving your machine (the CrawlForge credit cost still applies).\n\n```bash\n# 1. Install Ollama:  https://ollama.com\n# 2. Pull any model from https://ollama.com/library\nollama pull llama3.2\n\n# 3. Discover what's installed (from your MCP client)\n#    list_ollama_models()\n\n# 4. Extract — defaults to Ollama with the model from step 2\n#    extract_with_llm({ url: \"https://example.com\", prompt: \"…\", model: \"llama3.2\" })\n```\n\n### Stealth extraction for `deep_research` (Camoufox)\n\n`deep_research` automatically retries sources that block the normal fetch path (Reddit, Quora, forums, and Cloudflare/DataDome-protected pages return HTTP 403) through a **real fingerprinted browser**, then re-extracts from the rendered HTML. It's bounded (`RESEARCH_MAX_STEALTH_RETRIES`, default 8, plus a per-page timeout) and lazy — the browser stack only loads when a source is actually blocked.\n\nEngine selection (`RESEARCH_STEALTH_ENGINE`):\n\n- **`auto`** (default) — prefer **Camoufox** (Firefox anti-detect), fall back to Chromium stealth, then plain fetch.\n- **`camoufox`** — force Camoufox.\n- **`chromium`** — force the Chromium stealth engine.\n\nHeadless Chromium **cannot** clear modern challenges (Cloudflare Turnstile, DataDome) — **Camoufox can**. In testing it recovered Quora and Trustpilot pages that were otherwise fully blocked. To enable it, install the optional dependency and run its one-time binary fetch:\n\n```bash\n# Camoufox is declared as an optional dependency, so a normal install already pulls it.\n# If you installed with --no-optional, add it explicitly:\nnpm install camoufox\n\n# One-time download of the Camoufox Firefox binary (~130 MB):\nnpx camoufox fetch\n```\n\nWithout the Camoufox binary, `deep_research` silently falls back to Chromium stealth and then to plain fetch — no errors, just lower recovery on heavily-protected sites. Disable the whole fallback with `RESEARCH_STEALTH_FALLBACK=false`.\n\n> **Note:** Hard IP-reputation blocks (e.g. Reddit's edge `403`) resist headless stealth from any IP and require residential/mobile proxies, which CrawlForge does not provide. See [docs/stealth-engines.md](docs/stealth-engines.md) for details.\n\n### Manual Configuration\n\nYour configuration is stored at `~/.crawlforge/config.json`:\n\n```json\n{\n  \"apiKey\": \"cf_live_...\",\n  \"userId\": \"user_...\",\n  \"email\": \"you@example.com\"\n}\n```\n\n## 📖 Usage Examples\n\nOnce configured, use these tools in your AI assistant:\n\n```\n\"Search for the latest AI news\"\n\"Extract all links from example.com\"\n\"Crawl the documentation site and summarize it\"\n\"Monitor this page for changes\"\n\"Extract product prices from this e-commerce site\"\n```\n\n## 🔒 Security & Privacy\n\n- **Secure Authentication**: API keys required for all metered tools\n- **Local Storage**: API keys stored securely at `~/.crawlforge/config.json`\n- **HTTPS Only**: All connections use encrypted HTTPS\n- **No Data Retention**: We don't store scraped data, only usage logs\n- **Rate Limiting**: Built-in protection against abuse\n- **Compliance**: Respects robots.txt and GDPR requirements\n\n### Security & Approvals\n\n- **SSRF enforcement**: Every scraped URL is validated before the request is sent — http/https only; blocks loopback, RFC1918, IPv6 private/link-local ranges, cloud metadata endpoints (GCP, Azure), and dangerous ports (SSH, SMTP, DNS, MySQL, Postgres, Redis, MongoDB, etc.). Redirects are re-validated each hop, capped at 5.\n- **Backend endpoint guard** (v3.0.18): The server's own calls to CrawlForge.dev use a separate fail-closed allow-list (`{crawlforge.dev, www.crawlforge.dev, api.crawlforge.dev}`, HTTPS required). Setting `CRAWLFORGE_API_URL` to an arbitrary host is blocked at parse time.\n- **Action allowlist**: `scrape_with_actions` accepts only 7 action types (`wait`, `click`, `type`, `press`, `scroll`, `screenshot`, `executeJavaScript`). No download, file-write, or arbitrary cross-page navigation primitives exist.\n- **JavaScript gate**: The `executeJavaScript` action throws by default. Set `ALLOW_JAVASCRIPT_EXECUTION=true` at deploy time to enable (not recommended in production).\n- **MCP Elicitation** (v3.6.0): Four tools request user confirmation before executing expensive operations — `deep_research` (>50 URLs), `batch_scrape` (sync mode, >25 URLs), `crawl_deep` (projected >500 pages), `extract_structured` (schema has >3 required fields with no LLM configured). Credit-low situations also elicit. Confirmation is best-effort: if the MCP client does not support elicitation the tool proceeds (fail-open).\n- **Per-tool credit gating**: Every tool is wrapped with `withAuth()` and is metered — credits are checked and deducted before execution, and a valid API key is required for every tool (fail-closed since v3.0.18).\n\nSee [docs/sandboxing-and-approvals.md](docs/sandboxing-and-approvals.md) for the full reference.\n\n### Security Updates\n\n**v3.0.3 (2025-10-01)**: Removed authentication bypass vulnerability. All users must authenticate with valid API keys.\n\nFor the full security policy and how to report a vulnerability, see [SECURITY.md](docs/SECURITY.md).\n\n<p align=\"right\"><a href=\"#table-of-contents\">↑ Back to top</a></p>\n\n## 🆘 Support\n\n- **Documentation**: [https://www.crawlforge.dev/docs](https://www.crawlforge.dev/docs)\n- **Issues**: [GitHub Issues](https://github.com/mysleekdesigns/crawlforge-mcp/issues)\n- **Email**: support@crawlforge.dev\n- **Discord**: [Join our community](https://discord.gg/crawlforge)\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## 🤝 Contributing\n\nContributions are welcome! Please read our [Contributing Guide](docs/CONTRIBUTING.md) first.\n\n---\n\n**Built with ❤️ by the CrawlForge team**\n\n[Website](https://www.crawlforge.dev) | [Documentation](https://www.crawlforge.dev/docs) | [API Reference](https://www.crawlforge.dev/api-reference)",
  "bytes": 22590,
  "sha": "d857ef2b292c6b3f5bf68f2f450f7e7b44d9afb4187c7dfd16f5572d9e2c8732",
  "repo_slug": "mysleekdesigns/crawlforge-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_mysleekdesigns_crawlforge_mcp__cbe2e463/readme"
}