Skip to main content
Glama

crawler-mcp

A web-crawler MCP server, built in the same style as weather-mcp (TypeScript + @modelcontextprotocol/sdk + Express + Zod).

It fetches pages with a fast axios + cheerio path and automatically falls back to a Playwright headless browser when a page needs JavaScript to render. Designed to be used as a Claude connector (local stdio or remote HTTP).

Tools

Tool

What it does

fetch_page

Fetch one URL and return its content as Markdown, text, or raw HTML.

extract_links

List all hyperlinks on a page (absolute URLs, optional same-domain filter).

crawl_site

Recursively crawl from a start URL up to a max depth/page count.

extract_by_selector

Pull specific data via a CSS selector (text or an attribute).

Each tool accepts a render option: auto (default — static first, browser if needed), static (never use a browser), or browser (always render with Playwright).

Related MCP server: turbowebfetch

Setup

cd crawler-mcp
npm install

# Optional — only needed for JavaScript-heavy / SPA sites:
npx playwright install chromium

cp .env.example .env   # then edit if you want

Run

# Local (stdio) — for Claude Desktop:
npm start

# Remote (HTTP) — for a custom/remote connector:
npm run start:http     # serves http://localhost:3001/mcp

Use it as a Claude connector

Claude Desktop (local, stdio)

Add to your claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "crawler": {
      "command": "npx",
      "args": ["tsx", "D:\\MCP\\crawler-mcp\\server.ts"]
    }
  }
}

Restart Claude Desktop. The four crawler tools appear under the connectors menu.

Remote HTTP connector (claude.ai / Desktop "Add custom connector")

  1. Start the server in HTTP mode and expose it over HTTPS (e.g. behind a reverse proxy or a tunnel such as cloudflared / ngrok):

    npm run start:http
  2. In Claude → Settings → Connectors → Add custom connector, enter the URL:

    https://your-host/mcp

Remote connectors on claude.ai generally require a public HTTPS URL. http://localhost:3001/mcp works for local testing tools but not for the hosted claude.ai web app.

Configuration (.env)

Variable

Default

Purpose

MCP_TRANSPORT

stdio

stdio or http.

MCP_HTTP_PORT

3001

Port for HTTP mode.

CRAWLER_USER_AGENT

crawler-mcp/1.0 …

User-Agent for all requests.

CRAWLER_TIMEOUT_MS

15000

Per-request timeout.

CRAWLER_MAX_CHARS

20000

Default cap on returned page content.

Notes

  • Fetched pages are cached in memory for 5 minutes to avoid refetching during a crawl.

  • crawl_site is bounded (max_depth ≤ 3, max_pages ≤ 50) and adds a politeness delay between requests.

  • Playwright is an optional dependency — if it isn't installed, render: auto still works for static sites and render: browser returns a clear error.

  • This server does not currently parse robots.txt; crawl responsibibly and only sites you are authorized to crawl.

Available Tools

4 tools
crawl_siteA

Recursively crawl a website starting from a URL, following links up to a maximum depth and page count. Returns a short content summary for each page visited. Stays on the same domain by default.

Inputs: start_url (required), max_depth, max_pages, same_domain, +4 more.

extract_by_selectorB

Extract specific data from a page using a CSS selector. Returns each matching element's text, or an attribute value when attribute is given (e.g. selector='a.product', attribute='href').

Inputs: url (required), selector (required), attribute, limit, +1 more.

fetch_pageA

Fetch a single web page and return its readable content as Markdown, plain text, or raw HTML. Automatically renders JavaScript-heavy pages with a headless browser when needed.

Inputs: url (required), format, render, max_chars.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: crawl_site handles multi-page crawling with summaries, fetch_page retrieves single-page content in various formats, extract_links focuses on hyperlinks, and extract_by_selector targets specific elements via CSS selectors. There is no overlap or ambiguity between them.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (e.g., crawl_site, extract_links). The naming is predictable and intuitive, making it easy for an agent to infer functionality from the name.

    Tool Count4/5

    With 4 tools, the server covers the core operations of web crawling and extraction without being overly large. The count is slightly on the lower side but still well-scoped for its purpose, and each tool earns its place.

    Completeness4/5

    The tool set covers the essential workflow: fetching pages, crawling sites, extracting links, and extracting specific elements. Minor gaps exist, such as the absence of tools for setting request headers or handling authentication, but the core functionality is solid.

    Maintenance

    ActivityInactive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      A lightweight web scraping server that allows Claude Desktop users to extract various types of data from websites, including text, links, images, tables, headlines, and metadata using CSS selectors.
      4
      -
    • A
      license
      A
      quality
      B
      maintenance
      MCP server that lets Claude Code fetch web content using real Chrome browsers. Renders JavaScript-heavy pages, handles bot mitigation, and runs up to 14 parallel browsers locally with zero API keys. Makes outbound HTTP requests only to URLs the user explicitly asks Claude to fetch.
      2
      14 npm
      91
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      An open-source web retrieval MCP server that fetches, crawls, and searches the web, returning clean markdown for AI agents. It integrates with Claude MCP, LangChain, and other frameworks for agentic web access.
      2
      MIT