Skip to content
Agentmart
Submit a tool

FrankenSurf

Read any web page and search the web: 28 tools, cheapest first, every page checked.

Connector by yail259 · GitHub account verified by the MCP Registry

IndexedApache-2.0Local (stdio)★ 101
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/yail259-frankensurf

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Read any web page and search the web: 28 tools, cheapest first, every page checked.

Use cases: web-search, web-scraping, browser-automation

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
11 read · 5 write · 0 delete · 7 not yet classified
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Tools by what they do 23

Read from the source code; the running server may list different tools.

Read 11 · Look things up without changing anything.

  • batch_template
  • crawl
  • extract
  • identity_status
  • profiles
  • read
  • read_template
  • search
  • watch_sites
  • web_read
  • web_search

Write 5 · Create, change, send or run things.

  • do
  • images
  • import_evidence
  • import_image_evidence
  • site_modules

Not yet classified 7 · We could not tell from the name and description.

  • batch
  • discover_site_module
  • map_site
  • paginate
  • repair
  • repair_site_module
  • trace

Files it touches

  • Any path the agent passes to its tools

Tools (23)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • batch

    Bounded batch retrieval with per-result receipts and named identity policy enforcement.

  • batch_template

    Read one saved site module template for many parameter sets at once, e.g. its search template for ten queries. Reads are paced per site (the first goes alone, the rest follow its route). Returns, in order, each read's params, items, next_url and receipt status, without page text.

  • crawl

    Read a site breadth-first from url: its sitemap and the links it leads to, up to max_depth hops and limit pages, only under url's path unless entire_domain. include_paths / exclude_paths are regular expressions on the path. Each page comes back as markdown with its status and trace_id; robots.txt is honoured. Pages are paced per site, so a big crawl takes a while: keep limit small.

  • discover_site_module

    Draft a site module from a listing page's own JSON feed (JSON-LD, JSON in a script tag, or JSON the page fetched while rendering). Returns up to three validated drafts, each with the item count and sample rows it extracts from that page. save=True saves the best one, after which reads of matching URLs return items. Check the sample before saving. url can be a home page with query: the site's search (SearchAction or search form) is found and used, and the draft gets a search template for read_template and batch_template.

  • do

    Execute one contract-bound authenticated local action with a typed receipt. ``action_classes`` is an explicit operation-policy grant separate from the class declared by the intent and the enrolled identity grant. Raw browser control requires the full four-class mutation ceiling, explicitly named provider/contract/origins and an effective tool set exactly matching the intent; its semantic result stays unknown.

  • extract

    Extract requested evidence with identity checks and operator public routes. Direct null arguments mean omitted; acquisition_policy preserves explicit null, false and zero operational settings. Omitting the adapter uses HTML.

  • identity_status

    Inspect safe identity/executor health and authority metadata. Enrollment is operator CLI only.

  • images

    Download and decode exact image URLs under public or named identity policy; return private evidence references.

  • import_evidence

    Import actual supplied operator browser evidence. Does not verify automated access or live availability.

  • import_image_evidence

    Import a caller-selected public browser image file. Source binding is operator-supplied, never identity attestation.

  • map_site

    A site's URLs from its sitemaps and the start page's links, without reading them. search keeps the URLs that mention its words, best match first.

  • paginate

    Traverse pages with the requested leaf schemas and one aggregate receipt. Omitted settings permit version-bound bundled or operator routes. Direct null arguments mean omitted; acquisition_policy preserves explicit null, false and zero operational settings. Public read authority is unchanged.

  • profiles

    List stored FrankenSurf profiles: names, sites, sharing level. Never sessions.

  • read

    Retrieve evidence. Omitted settings use runtime defaults and operator public routes. Direct null arguments mean omitted; acquisition_policy preserves explicit null operational settings. Content does not certify live or sold state. allow_handoff=True lets a person clear a CAPTCHA, sign-in or 2FA wall in a visible browser when every automatic route fails; the call waits for them. lightning=True starts the read and two other tools at once and keeps the first complete page: faster first reads of slow or walled sites, at the cost of up to three requests to the site at once. allow_real_browser=True…

  • read_template

    Read a URL built from a saved site module's template, e.g. its search URL with params={"query": "desk lamp"}. The module shapes the read: the result has items, next_url when the module knows pagination, and receipt.module with its assertion results.

Show 8 more tools
  • repair

    Diagnose one retained public read failure and validate an inert proposal. The operation never uses named identity authority and never promotes its output. Owner promotion remains an explicit local operator API/CLI action.

  • repair_site_module

    Propose a fixed site module after a read reported receipt.module.status failed or invalid. module is the full next version (same id and origin, new version). FrankenSurf checks it with the old version's own assertions against the page that read kept and a fresh read. Activation is the owner's call (frankensurf repair-promote); this tool never changes the saved module.

  • search

    Discover indexed candidates through installed sources with exact attribution. Omit source to permit policy-bounded fallback. An explicit source is never substituted. Search source candidate, allow and preference fields can be set in acquisition_policy without exposing service credentials. site keeps one domain; exclude_domains (up to 200) never come back from any source; recency is day, week, month or year; region looks like en-AU. Each source applies them natively where it can and every list is filtered after (receipt.search_options says what was dropped). vertical picks the kind of source:…

  • site_modules

    Save and manage site modules: per-site knowledge as data, never code. action: list | get | put | enable | disable | delete. put takes module, a frankensurf.site-module/v1 object: id, version, match {origin, path_pattern}, and any of templates (URLs with {params}), readiness {selector, settle_ms}, sources (jsonld | embedded_json | captured_json | html), items {from, fields, join}, pagination, invalid markers, assertions (frankensurf.workload-assertions/v1 over {items, count, first, matching_query}) and operational policy_defaults. A module can never grant identity, providers, paid tools or oth…

  • trace

    The full record of one earlier read: every tool tried, failures, timings, completeness steps and evidence references. Page content is not included.

  • watch_sites

    New pages on many sites since the last poll, from the feeds and sitemaps each site publishes (found once, then polled with conditional requests, so an unchanged site costs almost nothing). The same story on two URLs is reported once. since (ISO date) bounds the first poll. read_new=True also reads the new pages' main text. Cheaper than searching or re-reading front pages to find what is new.

  • web_read

    Read a web page and return its title, final URL and text.

  • web_search

    Search the web and return ranked results with titles, URLs and snippets.

Compare and alternatives

    Featured in

    Signals

    Stars
    101
    Forks
    9
    Open issues
    2
    Contributors
    2
    Weekly downloads
    3,014
    Last commit
    Oct 23, 2026 (5 days ago)
    Last release
    Oct 23, 2026 (5 days ago)
    Last package publish
    Oct 23, 2026 (5 days ago)

    From GitHub (fetched Oct 24, 2026) and the package registry.

    Details

    Registry name
    io.github.yail259/frankensurf
    Version
    0.50.0
    Auth
    No auth
    Packages
    pypi frankensurf
    License
    Apache-2.0
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026
    Cite this page

    FrankenSurf MCP server. Agent Mart. https://agentmart.dev/connectors/yail259-frankensurf (last updated 2026-10-24)