Known URL Extract
extractFetch a known public URL and return clean article or PDF content. Choose metadata, abstract, or full depth for details, summary, or complete text.
Instructions
SECONDARY KNOWN-URL CONTENT EXTRACTION TOOL. Use only when the exact public URL is already known and no new web discovery is required. If sources still need to be found, use search or search_parallel with extract_mode instead. For semantic reading of a public PDF or GitHub repository, use this tool before local download or parsing. Local PDF tools are for local files, forms, OCR recovery, or visual layout inspection; general repository tools are for editing, building, testing, or full Git history. Fetch one public URL and return clean content. With research enabled, one local broker lets multiple MCP sessions query the same knowledge base concurrently and orders writes safely. For GitHub repository URLs, metadata reads the README; abstract and full use the same bounded download gate and differ only in indexed source depth. HTML via Mozilla Readability; academic PDFs (arxiv/biorxiv/Nature/OpenReview/NeurIPS/JMLR/PMLR/Springer/PubMed-via-PMC) auto-detected via Content-Type, %PDF magic, citation_pdf_url meta, and per-domain URL rules. Tiered depth: mode="metadata" returns document metadata without body text, mode="abstract" returns about 1500 chars for relevance checks, and mode="full" reads the full bounded source. response_content controls whether the response contains a 1500-character summary or up to 50000 characters. PDF and landing-page metadata are merged when available. With research enabled, abstract and full PDF reads are stored as searchable evidence with bibliographic metadata and provenance. Best-effort: failures return an errorInfo instead of throwing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) URL. Loopback/private IPs blocked unless SURF_ALLOW_PRIVATE=true. | |
| mode | No | Extraction depth. `full` = whole article body (default; uses Playwright if needed). `abstract` = cheap survey: PDF page 1 OR HTML meta description (~1500 chars); use to triage relevance before paying for full text. `metadata` = document metadata without body text: title, authors, publication details, dates, DOI, keywords, canonical URL, and PDF properties when available. Academic PDFs (arxiv/biorxiv/Nature/OpenReview/NeurIPS/JMLR/PMLR/Springer/PubMed-via-PMC) are auto-detected; abstract mode skips Playwright for them. | full |
| max_chars | No | Maximum returned characters when response_content=full. Defaults to 1500 for abstract and 50000 for full. | |
| project_id | No | Project memory id. | |
| session_id | No | Stable host task id. Reuses the same project session after restart. | |
| memory_handle | No | Reuse the handle returned by a prior project-aware call. | |
| session_intent | No | Current durable task intent. A changed value creates an immutable revision. | |
| response_content | No | Controls only the returned body. full returns up to max_chars; summary returns a 1500-character evidence excerpt. Research storage keeps the full captured text in deterministic chunks. | full |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| doi | No | ||
| url | No | ||
| meta | No | ||
| year | No | ||
| error | No | ||
| title | No | ||
| is_pdf | No | ||
| length | No | ||
| memory | No | ||
| authors | No | ||
| content | No | ||
| creator | No | ||
| excerpt | No | ||
| subject | No | ||
| keywords | No | ||
| language | No | ||
| producer | No | ||
| truncated | No | ||
| created_at | No | ||
| elapsed_ms | No | ||
| page_count | No | ||
| description | No | ||
| modified_at | No | ||
| publication | No | ||
| published_at | No | ||
| canonical_url | No | ||
| memory_handle | No | ||
| source_length | No | ||
| extraction_quality | No |