MCP.Market

Fortress MCP server

by tiliondev·io.github.tiliondev/fortress·v0.1.3·788 stars

Stealth browser for AI agents: fetch pages behind Cloudflare/DataDome/CAPTCHA, extract clean data.

B82/100grade B
What users say
No reviews yet
Be the first
Safety scan
B82/100

full report

Adoption
Established

788 stars63 downloads/wk

Reviews

Write one

Nobody has reviewed Fortress yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Fortress tools (26, 3 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • click_button

    Click a BUTTON or link by its visible text on the current page (navigates to `url` first if given). Use to press buttons, submit, open menus, follow links. Returns the resulting {clicked, url, title}.

  • close_tab

    Close a tab by index (from list_tabs).

  • crawl_site

    Crawl a whole website (BFS, auto-handles SPA/JS + lazy-load) through the stealth browser and return every discovered page/document + a sitemap. Use to map or harvest a site that blocks conventional crawlers.

  • current_page

    Get the current working page's URL and title WITHOUT navigating — use to check where you landed after click_button / fill_field(submit=True). Returns {open, url, title}.

  • download_file

    Download a file (preserving the stealth browser's cookies/session) to a sandboxed path. Use for PDFs/CSVs/exports behind auth or bot detection. Returns {url, path, bytes}.

  • evaluate_jswrite action

    Run a JavaScript expression on the current (or a navigated) page and return its result. Use for custom scraping the high-level tools don't cover, e.g. `Array.from(document.querySelectorAll('.price')).map(e=>e.innerText)`.

  • extract_document

    Extract clean text/markdown + tables from a DOCUMENT — a PDF, DOCX, XLSX, CSV, or HTML file, given a local path OR a URL (even one behind bot detection). Use for reports, datasheets, filings, or any file the agent must read.

  • extract_page

    Extract clean, LLM-ready content from a page that may be behind bot detection — returns markdown + tables + metadata (or a schema-shaped record if `schema` is given). Use instead of raw HTML scraping when you want structured, readable content and the site blocks normal scrapers.

  • fetch_protected_page

    Fetch a web page that normal HTTP clients / headless browsers CAN'T get — pages behind Cloudflare, DataDome, PerimeterX, Akamai, or that return 403 / 'Access Denied' / 'Are you a robot' / CAPTCHA challenges.

  • fill_field

    Type `value` into a form FIELD (CSS selector, e.g. 'input[name=q]') on the current page (navigates to `url` first if given). Set submit=True to press Enter and submit — the reliable way to submit a search box. Pair with page_elements to find field selectors.

  • get_cookies

    Get the cookies on the current (or a navigated) page — inspect or export an authenticated session. Returns {cookies:[...]}.

  • get_page_html

    Get the RAW HTML of a page (behind bot detection or not). Use when you need the exact markup rather than cleaned markdown. Returns {url, html} (capped).

  • get_stealth_cdp_endpoint

    Return a Chrome DevTools Protocol (CDP) websocket URL for a running stealth browser you can connect your OWN automation stack to — browser-use, Playwright, Puppeteer, Crawl4AI, Stagehand all accept a `cdp_url`.

  • list_browser_tasks

    List the browser-automation flow names accepted by run_browser_task (login, paginate_collect, infinite_scroll_collect, extract_table, multi_step_checkout, download_file, navigate_spa, ...).

  • list_tabs

    List the open browser tabs (index + url + which is current).

  • load_profile

    Restore a saved session (cookies + localStorage) from a named profile — reuse a login without re-authenticating. Navigate to the site afterward.

  • page_elements

    Map a page's interactive STRUCTURE — its buttons, links, form fields, and headings (the layout/design overview). Use to discover what you can click or fill before calling click_button / fill_field. Returns {url, buttons[], links[], fields[], headings[]}.

  • press_key

    Press a key on the current page: Enter (submit a focused field), Tab, Escape (dismiss a dialog), ArrowDown, PageDown, etc. Returns the resulting {url}.

  • read_page

    Get clean, reader-mode MARKDOWN of ANY web page (protected or not) — the readable article/content as markdown plus any tables. Use to read a page's content without the HTML noise. Returns {url, title, markdown, tables}.

  • recon_site_apis

    Reverse-engineer a site's PRIVATE API: drive the page in a stealth browser and capture the XHR/fetch endpoints, auth flow, and JSON traffic behind it (secret-scrubbed). Use when you want to hit a site's real backend API directly instead of scraping HTML.

  • run_browser_taskwrite action

    Run a multi-step browser automation on a stealth browser that won't get flagged as a bot — logging in, paginating, infinite-scroll collection, table extraction, form fill, file download, multi-step checkout, SPA navigation.

  • save_page

    Save a page (behind bot detection or not) as pdf | html | text | screenshot to `path`. Use to archive/export a protected page as a PDF.

  • save_profile

    Save the current authenticated session (cookies + localStorage) to a named profile so you can restore the login later with load_profile — no need to log in again. Do this AFTER a successful login (e.g. via run_browser_task).

  • screenshot_page

    Screenshot a page (that may be behind bot detection) as PNG. Writes to `path` if given, else returns base64 (large images are saved to a temp file instead, to avoid flooding context). Use for visual verification/QA.

  • search_webwrite action

    Run a web search through a real stealth browser (not a paid SERP API) and return organic results. Useful when you need fresh search results and SERP APIs are unavailable or the search engine blocks scripted queries.

  • wait_for

    Wait for a CSS selector to appear (navigates to `url` first if given). Use before reading a page whose content loads late via JavaScript.

Public scan report

scanner v0.1.10 · 2026-11-08 · same rubric, same numbers if you re-run it

no findings
  • Code scan5 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 5 days ago15/15
  • Maintainer identityregistry namespace matches repository owner7/10
Overall 82/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Fortress compares

Against every graded Scraping and browsing MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
82/100
higher than 58% of 875 Scraping and browsing servers
Tools
26
the typical Scraping and browsing server has 7
Tools that change things
12%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
788
more than 95% of 595 Scraping and browsing servers
Downloads a week
63
more than 35% of 355 Scraping and browsing servers with a package

What its tools let an agent do: 20 read · 2 create · 2 change · 2 run or deploy

Install Fortress in Claude Code, Cursor or VS Code

claude mcp add fortress -- uvx tilion
Add to Cursor

What the publisher says

From the Fortress repository's README, as published. We do not edit it. Read it on GitHub

One browser engine to rule them all

Stealth Chromium engine

Fortress is a stealth Chromium engine that stops your scrapers and browser agents from getting blocked, with one line of code change. Bot detectors flag automation by reading the browser fingerprint; Fortress corrects that fingerprint inside Chromium's C++, so the browser presents as an ordinary Chrome install. Scrapers finish their runs, agents reach the pages they were sent to, and CreepJS, Sannysoft, BrowserScan, and live Cloudflare Turnstile all read it as human. Point your existing Playwright or Puppeteer at Fortress over CDP, and nothing else in your code changes.

Blink · V8 · BoringSSL patched in-tree · ANGLE / D3D11-backed WebGL · JA3/JA4-coherent TLS · monthly upstream rebase · reproducible, gauntlet-gated releases

34single-surfaceC++ patches 0%CreepJSheadless / stealth [native code]across everyrealm BSD-3open engine,rebuild it yourself

Unedited capture of the Fortress binary in a real window: it clears a live Cloudflare challenge, turns bot.sannysoft.com all green, then reads BrowserScan “Normal”. Reproduce with tools/gauntlet.py.

Native-code parity

Every spoofed getter is a C++ getter: toString returns [native code], realm-invariant across main frame, iframes, and Web Workers.

Drop-in CDP

nodriver-style raw CDP on :9222, with no Runtime.enable leak. Keep Playwright, Puppeteer, or any CDP client; swap the browser, keep your code.

Clears the gauntlet

0% headless on CreepJS; Sannysoft, BrowserScan, and live Cloudflare Turnstile cleared, all as a stock Chrome install.

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Fortress: common questions

Is Fortress MCP server safe?
Mostly: it is graded B (82/100). Read the Fortress safety report
How do I install Fortress?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Fortress need an API key?
Yes. The registry entry asks for TILION_API_KEY.
Is Fortress maintained?
The last commit was 12 days ago (2026-11-03). The latest release is v0.1.3.
What can I use instead of Fortress?
Servers from other publishers that do the same job: Browser Use MCP server, AIHawk MCP server and Unbrowse MCP server. Compare all Fortress alternatives.
How does Fortress compare with other Scraping and browsing MCP servers?
safety score 82/100 (higher than 58% of 875 Scraping and browsing servers); tools 26 (the typical Scraping and browsing server has 7); tools that change things 12% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Fortress

Same job from other publishers: the closest match first, then the best rated.

All Fortress alternatives →
  • Browser Use
    Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
    A
  • AIHawk
    AI browser agent: browses, clicks, types, and reads real web pages from plain-English instructions.
    A
  • Unbrowse
    Websites as APIs: read pages, run site tasks via learned APIs, cloud browser with saved logins.
    A
  • Skyvern
    AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
    A
  • Openbrowser AI
    AI browser automation. Write async Python to navigate, click, type, and extract data.
    B