Scrape, extract, and understand the web — plus identify any company from a domain, email, name, or transaction string.
A Model Context Protocol (MCP) server that exposes Context.dev's API for web scraping, structured data extraction, and brand intelligence.
Overview
The mewcp-context-dev MCP Server provides:
Web scraping in multiple formats — raw HTML, clean Markdown, screenshots, images, sitemaps, and web search
Schema-driven structured data extraction, plus design-system extraction (styleguides and fonts)
Brand intelligence lookups by domain, email, company name, or raw bank transaction string
Perfect for:
Building AI agents that read, summarize, or monitor web content
Enriching CRM, KYC, or fintech pipelines with company and brand data from a domain, email, or transaction string
Extracting a competitor's design system (colors, typography, fonts) or structured product/pricing data at scale
Tools
Web Scraping
Scrape a URL and return its raw HTML content. Supports web pages, PDFs, XML, JSON, Markdown, CSV, and SVG files.
Inputs:
- `url` (string, required) — Full URL to scrape, including http:// or https://- `include_frames` (boolean, optional) — Render iframes inline in the returned HTML- `use_main_content_only` (boolean, optional) — Extract only the main content area, stripping navigation, ads, and footers- `include_selectors` (string, optional) — Comma-separated CSS selectors to keep (e.g. 'article,.main-content'). Max 50 selectors.- `exclude_selectors` (string, optional) — Comma-separated CSS selectors to remove (e.g. 'nav,footer,.ads'). Max 50 selectors.- `max_age_ms` (integer, optional) — Maximum cache age in milliseconds. 0 = always fetch fresh. Default: 86400000 (1 day).- `wait_for_ms` (integer, optional) — Milliseconds to wait after page load for JavaScript rendering (0–30000)- `timeout_ms` (integer, optional) — Request timeout in milliseconds (1000–300000)
Scrape a URL and return its content converted to clean, LLM-ready Markdown. Strips boilerplate and preserves headings, links, and structure.
Inputs:
- `url` (string, required) — Full URL to scrape, including http:// or https://- `include_links` (boolean, optional) — Preserve hyperlinks in the Markdown output (default: true)- `include_images` (boolean, optional) — Include image references in the Markdown output (default: false)- `use_main_content_only` (boolean, optional) — Extract only the main content area, stripping navigation, ads, and footers- `include_frames` (boolean, optional) — Render iframe contents into the Markdown- `include_selectors` (string, optional) — Comma-separated CSS selectors to keep (e.g. 'article,.main-content'). Max 50 selectors.- `exclude_selectors` (string, optional) — Comma-separated CSS selectors to remove (e.g. 'nav,footer,.ads'). Max 50 selectors.- `max_age_ms` (integer, optional) — Maximum cache age in milliseconds. 0 = always fetch fresh. Default: 86400000
Capture a visual screenshot of a website. Provide either 'domain' for the homepage or 'direct_url' for a specific page. Returns a URL to the screenshot image.
Inputs:
- `domain` (string, optional) — Domain name to screenshot (e.g. 'example.com'). Either domain or direct_url is required.- `direct_url` (string, optional) — Specific URL to screenshot directly (e.g. 'https://example.com/pricing'). Either domain or direct_url is required.- `full_screenshot` (boolean, optional) — Capture the full scrollable page instead of just the viewport- `handle_cookie_popup` (boolean, optional) — Automatically dismiss cookie consent popups before capturing- `viewport_width` (integer, optional) — Viewport width in pixels (240–7680, default: 1920)- `viewport_height` (integer, optional) — Viewport height in pixels (240–4320, default: 1080)- `page` (string, optional) — Named page to capture. One of: login, signup, blog, careers, pricing, terms, privacy, contact- `max_age_ms` (integer, optional) — Maximum cache age in milliseconds (default:
Collect all images from a URL: img tags, SVGs, CSS backgrounds, video posters, and meta images. Returns each image's src, element type, and optional metadata.
Inputs:
- `url` (string, required) — Full page URL to inspect, including http:// or https://- `max_age_ms` (integer, optional) — Maximum cache age in milliseconds (default: 86400000)- `wait_for_ms` (integer, optional) — Milliseconds to wait after page load for JavaScript rendering (0–30000)- `timeout_ms` (integer, optional) — Request timeout in milliseconds (1000–300000)
output data schema:
Discover all pages on a website by crawling its XML sitemaps. Returns a list of URLs up to maxLinks (default 10,000).
Inputs:
- `domain` (string, required) — Domain to build a sitemap for (e.g. 'example.com')- `max_links` (integer, optional) — Maximum number of URLs to return (1–100000, default: 10000)- `url_regex` (string, optional) — RE2-compatible regex to filter URLs (e.g. '/blog/'). Max 256 characters.- `timeout_ms` (integer, optional) — Request timeout in milliseconds (1000–300000)
output schema:
Search the web with a natural-language query. Optionally scrapes each result page to Markdown for deeper content. Returns ranked results with url, title, description, and relevance.
Inputs:
- `query` (string, required) — Natural-language search query (1–500 characters)- `include_domains` (string, optional) — Comma-separated domains to restrict results to (e.g. 'github.com,stackoverflow.com')- `exclude_domains` (string, optional) — Comma-separated domains to exclude from results- `freshness` (string, optional) — Limit results by age. One of: last_24_hours, last_week, last_month, last_year- `query_fanout` (boolean, optional) — Expand the query into parallel variants for broader coverage- `scrape_results` (boolean, optional) — Scrape each result page to Markdown and include it in the response- `timeout_ms` (integer, optional) — Request timeout in milliseconds (1000–300000)
Brand Intelligence
Retrieve rich brand data for a company domain: logos, colors, backdrops, description, social links, address, stock ticker, and industry classification.
Inputs:
- `domain` (string, required) — Domain to look up (e.g. 'stripe.com', 'apple.com')- `force_language` (string, optional) — ISO 639-1 language code to force for brand text (e.g. 'en', 'fr')- `max_speed` (boolean, optional) — Optimize for speed by skipping comprehensive data enrichment- `max_age_ms` (integer, optional) — Maximum cache age in milliseconds (default: 7776000000 = ~3 months)- `timeout_ms` (integer, optional) — Request timeout in milliseconds (1000–300000)
output schema:
Retrieve brand data for the company associated with an email address. Returns an error for free (Gmail, Outlook) or disposable email addresses.
Inputs:
- `email` (string, required) — Email address to look up (e.g. 'contact@stripe.com')- `force_language` (string, optional) — ISO 639-1 language code to force for brand text (e.g. 'en', 'fr')- `max_speed` (boolean, optional) — Optimize for speed by skipping comprehensive data enrichment- `max_age_ms` (integer, optional) — Maximum cache age in milliseconds (default: 86400000)- `timeout_ms` (integer, optional) — Request timeout in milliseconds (1000–300000)
output data schema:
Retrieve brand data for a company by its name. Useful when only the company name is known. Name must be 3–30 characters.
Inputs:
- `name` (string, required) — Company name to look up (e.g. 'Stripe', 'Apple Inc')- `country_gl` (string, optional) — ISO 3166-1 alpha-2 country code to improve matching (e.g. 'US', 'GB')- `force_language` (string, optional) — ISO 639-1 language code to force for brand text (e.g. 'en', 'fr')- `max_speed` (boolean, optional) — Optimize for speed by skipping comprehensive data enrichment- `max_age_ms` (integer, optional) — Maximum cache age in milliseconds (default: 86400000)- `timeout_ms` (integer, optional) — Request timeout in milliseconds (1000–300000)
Identify a company from a bank transaction description or merchant string (e.g. 'AMZN123456', 'UBER EATS', 'SQ *COFFEE SHOP'). Returns full brand data.
Inputs:
- `transaction_info` (string, required) — Raw transaction or merchant string to identify (e.g. 'AMZN*123456 SEATTLE WA')- `country_gl` (string, optional) — ISO 3166-1 alpha-2 country code for geographic context (e.g. 'US', 'GB')- `city` (string, optional) — City name from the transaction to improve matching- `mcc` (string, optional) — Merchant Category Code (MCC) to narrow the industry search- `high_confidence_only` (boolean, optional) — Run additional verification to return only high-confidence matches (default: false)- `force_language` (string, optional) — ISO 639-1 language code to force for brand text (e.g. 'en', 'fr')- `max_speed` (boolean, optional) — Optimize for speed by skipping comprehensive data enrichment- `timeout_ms` (integer, optional) — Request timeout in milliseconds (1000
Web Extraction
Crawl a website and extract structured data conforming to a JSON Schema. Ideal for scraping product info, pricing tables, contact details, team pages, or any structured content. Up to 50 pages per call.
Inputs:
- `url` (string, required) — Starting URL to crawl, including http:// or https://- `schema_json` (string, required) — JSON Schema (as a JSON string) defining the structure of data to extract. Example: '{"type":"object","properties":{"title":{"type":"string"},"price":{"type":"number"}}}'- `instructions` (string, optional) — Natural-language extraction instructions to guide the model (max 2000 characters)- `fact_check` (boolean, optional) — When true
Extract a website's design system: brand colors, typography (font families, sizes, weights), element spacing, shadows, button styles, and font CDN links.
Inputs:
- `domain` (string, optional) — Domain name to extract styleguide from (e.g. 'stripe.com'). Either domain or direct_url is required.- `direct_url` (string, optional) — Specific URL to extract styleguide from. Either domain or direct_url is required.- `max_age_ms` (integer, optional) — Maximum cache age in milliseconds (default: 7776000000 = ~3 months)- `timeout_ms` (integer, optional) — Request timeout in milliseconds (1000–300000)
output data schema:
Extract all font families used on a website along with usage statistics, CSS selectors, fallback fonts, and CDN asset links (Google Fonts or custom).
Inputs:
- `domain` (string, optional) — Domain name to extract fonts from (e.g. 'stripe.com'). Either domain or direct_url is required.- `direct_url` (string, optional) — Specific URL to extract fonts from. Either domain or direct_url is required.- `max_age_ms` (integer, optional) — Maximum cache age in milliseconds (default: 7776000000 = ~3 months)- `timeout_ms` (integer, optional) — Request timeout in milliseconds (1000–300000)
output data schema:
API Parameters Reference
Every tool returns the same top-level envelope. Only data varies per tool.
domain / direct_url — Site targeting used by scrape_screenshot, scrape_styleguide, and scrape_fonts. Exactly one of the two is required on each of those tools.
max_age_ms — Maximum cache age in milliseconds for the underlying scrape. 0 forces a fresh fetch; otherwise cached results younger than this may be returned. Default varies per tool (1 day for scraping tools, ~3 months for brand/styleguide/fonts/screenshot, 7 days for extraction).
wait_for_ms — Milliseconds to wait after page load before capturing content, to allow JavaScript-rendered content to settle (0–30000).
timeout_ms — Overall request timeout in milliseconds, shared across all 13 tools (1000–300000).
— Present on every successful payload; reports and for the API key used.