Skip to main content
Glama

web_browser

Scrape a web page via Firecrawl. Runs on the backend MCP server, no sandbox needed.

External MCP web-browse rule: Firecrawl scraping and screenshot capture can use external provider quota. Screenshot results are remote URLs; download a selected screenshot into your own sandbox, then use import_media if it must become a project asset.

Pass formats to choose what comes back:

  • markdown (default): clean LLM-ready text

  • html / rawHtml: cleaned vs. unmodified

  • images: array of image URLs on the page

  • links: array of hyperlink URLs

  • branding: { logo, colors, typography, spacing } for brand kit extraction

  • summary: AI-generated page summary

  • screenshot: full-page (when fullPage=true) or viewport screenshot

Screenshot specifics:

  • When format=screenshot is requested, Firecrawl returns a screenshot URL. Download it into your local workspace first. Backend agents import that file through asset-import + push_asset; hosted external MCP uses import_media. The backend does not fetch or register screenshot bytes.

Structured extraction:

  • query: natural-language extraction prompt (Firecrawl picks the schema)

  • schema: explicit JSON schema for exact field names/types

Other useful options: waitFor (ms to wait for page load), fullPage, country (geo-proxy code), actions (raw Firecrawl actions JSON for scroll/click/wait flows), execJs (JS to run before extraction).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "url": "<url>"
    },
    "name": "web_browser"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYesPage URL to scrape
queryNoNatural-language structured-extraction prompt
execJsNoJavaScript to run before extraction
schemaNoJSON schema for structured extraction
actionsNoRaw Firecrawl actions JSON (scroll/click/wait/executeJavascript/screenshot)
countryNoGeo-proxy country code, e.g. 'US'
formatsNoFormats to return: markdown, html, rawHtml, images, links, branding, summary, screenshot. Default ['markdown'].
timeoutNo
waitForNoms to wait for page load before extraction
fullPageNoCapture the full scrollable page (screenshot format)
onlyMainContentNoStrip nav/footer/ads

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observed

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description adds real behavior: external provider quota consumption, remote screenshot URLs, and the fact that the backend does not fetch or register screenshot bytes. But it describes an operation that fetches arbitrary external web pages, which contradicts openWorldHint=false, and a purely read-type fetch, which sits awkwardly against readOnlyHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and the quota caveat, then organized into labeled sections with bullets, which suits an 11-parameter tool. It repeats the screenshot explanation twice (in the formats list and again under "Screenshot specifics"), which is minor waste but not noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter tool with no output schema, the description covers what comes back per format, the quota constraint, extraction modes, and the post-capture import path — enough to call it correctly. It leaves timeout behavior/defaults and error handling unstated, which are minor given the schema documents timeout's bounds.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 91%, so the baseline is 3; the description earns more by explaining distinctions the schema only labels — html vs rawHtml (cleaned vs unmodified), screenshot full-page vs viewport tied to fullPage, and query (Firecrawl picks the schema) vs schema (explicit field names/types). It omits the 'videos' enum value present in the schema and gives no defaults for timeout.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Scrape a web page via Firecrawl" names a specific verb (scrape), resource (web page) and execution locus (backend MCP server, no sandbox). It also routes downstream work to named siblings (import_media, asset-import + push_asset), so the agent can place the tool in the wider workflow without opening other schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The format list gives clear use-case guidance (markdown for LLM-ready text, branding for brand kits, screenshot for capture, query vs schema for structured extraction) and warns that Firecrawl consumes external provider quota. It never states a when-not-to-use case or a competing sibling for web content, so it stops short of explicit alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.