Skip to main content
Glama
enconvert

EnConvert MCP Server

Official

Perceive URLs in Batch

perceive_batch

Render up to 1000 URLs with shared options to extract markdown, PDFs, screenshots, and structured data in one batch. Returns a job ID for large batches; poll status to retrieve results.

Instructions

Render up to 1000 URLs with one shared options block. Small batches (about 10 or fewer) complete inline in the response; larger ones return status 'queued', so poll get_perceive_batch with the job_id.

Use when: the same outputs are needed from many known URLs (e.g. markdown of every doc page you just discovered with discover_urls).

Do NOT use when: one URL (use perceive_url); the goal is RAG-ready chunked output (use start_ingest); the URLs are unknown (use discover_urls or web_search first).

Returns: job_id, status (queued/processing/completed/failed/partial), per-URL counts, and one full perceive result per URL once processed. output_mode 'zip' bundles every artifact into one ZIP.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlsYesURLs to render with the shared options.
mobileNoEmulate a mobile device. Default false.
schemaNoJSON schema for LLM structured extraction (plan-gated). Combine with outputs including 'structured'.
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
extractNoHeuristic extraction targets. Implemented today: tables, metadata, main_content, headings, structured_data; others return a warning.
js_codeNoJavaScript executed after page load, before capture.
outputsNoArtifacts to produce. Default: ['markdown','structured'].
wait_forNoCSS selector (optionally 'css:...') or 'js:<expr>' to await after navigation.
cache_modeNoDefault 'enabled' (~1h cache). 'bypass' skips the cache; 'refresh' re-renders.
output_modeNo'manifest' (default) or 'zip' (bundle all artifacts once complete).
pdf_optionsNoOnly meaningful when outputs includes 'pdf'.
respect_robotsNoDefault false.
viewport_widthNoDefault 1920.
block_resourcesNoResource types the browser should not load (faster, cheaper renders).
viewport_heightNoDefault 1080.
wait_timeout_msNoDefault 30000.
only_main_contentNoServer default true: markdown and the main_content extract strip site chrome (nav, headers, footers, sidebars, cookie banners) behind a fidelity guard. false: full page, nothing stripped.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.5.1
    • addedInput schema / properties / only_main_content
      Added value: +{
      +  "description": "Server default true: markdown and the main_content extract strip site chrome (nav, headers, footers, sidebars, cookie banners) behind a fidelity guard. false: full page, nothing stripped.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / outputs / items / enum
      Previous value: -[
      -  "markdown",
      -  "markdown_fit",
      -  "html_cleaned",
      -  "html_raw",
      -  "screenshot",
      -  "screenshot_full_page",
      -  "pdf",
      -  "links",
      -  "images",
      -  "structured"
      -]New value: +[
      +  "markdown",
      +  "html_cleaned",
      +  "html_raw",
      +  "screenshot",
      +  "screenshot_full_page",
      +  "pdf",
      +  "links",
      +  "images",
      +  "structured"
      +]
  2. Changed3 schema fields changedv0.4.0
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / context
      Added value: +{
      +  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "urls"
      -]New value: +[
      +  "urls",
      +  "context"
      +]
  3. First observed

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly explains the inline vs queued behavior based on batch size, instructs to poll get_perceive_batch with the job_id, and details the return payload (job_id, status, per-URL counts, full perceive result). It also discloses that some extract targets are not implemented and return a warning, and that output_mode 'zip' bundles artifacts. This is thorough and beyond what the schema provides.

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

Conciseness5/5

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

The description is well-structured with clear sections for behavior, use cases, and exclusions. It is front-loaded with the core batch behavior, and every sentence adds value—no filler. The length is justified given the tool's complexity, and the structure aids quick comprehension.

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

Completeness5/5

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

Given the tool's complexity (17 parameters, nested objects, asynchronous behavior), the description covers all critical aspects: batch limits, polling mechanism, return structure, use-case selection, and exclusions. Combined with the 100% schema coverage, an agent has everything needed to decide when to use this tool and how to handle its async nature. No significant gaps remain.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds some context about the shared options block and the zip bundling behavior, but it does not deeply elaborate on individual parameters beyond what the schema already states. It appropriately relies on the schema for parameter details, so a 3 is warranted.

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?

The description states a clear verb and resource: 'Render up to 1000 URLs with one shared options block.' It immediately distinguishes itself from siblings by mentioning batch vs single URL and explicitly naming alternatives like perceive_url and start_ingest. The purpose is specific and unambiguous.

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

Usage Guidelines5/5

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

It explicitly provides both 'Use when' and 'Do NOT use when' conditions with named alternatives for each exclusion: perceive_url for single URLs, start_ingest for RAG-ready chunked output, and discover_urls/web_search for unknown URLs. This is exactly the guidance an agent needs to choose correctly.

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