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
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.
About
Use cases: web-search, web-scraping, browser-automation
Reviews
Write a reviewNo 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_templatecrawlextractidentity_statusprofilesreadread_templatesearchwatch_sitesweb_readweb_search
Write 5 · Create, change, send or run things.
doimagesimport_evidenceimport_image_evidencesite_modules
Not yet classified 7 · We could not tell from the name and description.
batchdiscover_site_modulemap_sitepaginaterepairrepair_site_moduletrace
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+…].
batchBounded batch retrieval with per-result receipts and named identity policy enforcement.
batch_templateRead 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.
crawlRead 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_moduleDraft 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.
doExecute 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.
extractExtract 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_statusInspect safe identity/executor health and authority metadata. Enrollment is operator CLI only.
imagesDownload and decode exact image URLs under public or named identity policy; return private evidence references.
import_evidenceImport actual supplied operator browser evidence. Does not verify automated access or live availability.
import_image_evidenceImport a caller-selected public browser image file. Source binding is operator-supplied, never identity attestation.
map_siteA 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.
paginateTraverse 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.
profilesList stored FrankenSurf profiles: names, sites, sharing level. Never sessions.
readRetrieve 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_templateRead 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
repairDiagnose 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_modulePropose 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.
searchDiscover 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_modulesSave 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…
traceThe full record of one earlier read: every tool tried, failures, timings, completeness steps and evidence references. Page content is not included.
watch_sitesNew 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_readRead a web page and return its title, final URL and text.
web_searchSearch 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
- Repository
- github.com/yail259/frankensurf
- Website
- frankensurf.dev
- 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)