Zahori MCP server
Find the media stream behind any web page: browser-driven HLS/DASH/MP4 with learnable site profiles
3 stars36 downloads/wk
Reviews
Write oneNobody has reviewed Zahori yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Zahori tools (6, 2 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
zahori_getResolve the media stream behind a page URL using saved profiles or the built-in generic flow. Returns the stream URL, kind, live/VOD, and replay headers.
zahori_list_profilesList the profiles saved on this machine and in the current project.
zahori_probeOpen a page and gather everything needed to author a profile: media requests seen, iframes, play/consent elements, and whether the generic flow already works. Use this before proposing a profile for a new site.
zahori_save_profilePersist a profile so later runs are instant and free. Saves to the project (.zahori/profiles, committable) by default so it travels to production and teammates.
zahori_test_profilewrite actionRun a candidate profile against a URL and grade the result with the oracle. ok=true only when a stream was captured AND the oracle confirms it is real media. Iterate on the profile until this passes.
zahori_validatewrite actionRun the oracle on a resolved stream (url + headers) to check it is real media (decodes, has real audio, plausible length).
Public scan report
scanner v0.1.9 · 2026-09-26 · same rubric, same numbers if you re-run it
- Code scan6 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 qualitylocal package, no credentials required12/15
- Maintenancelast push 24 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
What the publisher says
From the Zahori repository's README, as published. We do not edit it. Read it on GitHub
zahori
Find the media stream behind any web page.
A real browser opens the page, dismisses the overlays, presses play, and watches the network until the media request appears. You get the stream URL (HLS, DASH, MP4 or audio) plus the headers needed to replay it.
$ npx zahori get https://example.org/live
https://cdn.example.org/hls/live/master.m3u8No per-site configuration. No extractor to wait for. If a browser can play it, zahori can find it.
Table of contents
- Features
- Why zahori
- Install
- CLI
- Library
- Profiles: how zahori learns a site
- Teaching zahori a site
- The oracle
- Responsible use
- API
- Documentation
- Contributing
Features
- Works on any URL, out of the box. A built-in generic flow handles most pages with zero config.
- Real browser engine. Playwright drives a headless browser in the background; consent banners, play buttons and iframe players are handled automatically, in several languages.
- Replay headers included. Referer/Origin/UA/Cookie are captured from the real request, so ffmpeg and friends don't get 403'd.
- HLS-aware. Master vs media playlists, live vs VOD detection, and audio-rendition selection by language for multilingual streams.
- Learnable. Tricky sites become a small JSON profile, saved once, deterministic forever.
- Agent-native (MCP). Your coding agent can probe a site, author a profile, test it and save it.
- Self-healing. zahori heal repairs a profile when the site changes, using a BYO-key model, verified by an objective oracle before anything is saved.
- DRM-refusing by design. Protected content is detected and rejected, always.
Why zahori
The long tail of the web streams through embedded players that no downloader knows: local TV and radio stations, live event pages, small video portals. yt-dlp is superb for the big platforms it curates extractors for. But the long tail has no extractor, and hand-writing one per site doesn't scale.
They are complementary: use yt-dlp for YouTube, use zahori for the page nobody wrote an extractor for.
Install
npm install -g zahori # CLI
npm install zahori # libraryRequirements
pnpm users: pnpm blocks dependency build scripts by default, so Playwright won't auto-download a browser. Run the playwright install line above once, or your system Chrome is used as a fallback.
CLI
# Resolve the stream URL behind a page (URL to stdout, everything else to stderr)
zahori get https://tv.example.org/live
# Full result as JSON: url, kind, live/VOD, replay headers, all candidates
zahori get https://tv.example.org/live --jsonShortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Install directly
Runs npx -y zahori on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add zahori -- npx -y zahori
Zahori: common questions
- Is Zahori MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the Zahori safety report
- How do I install Zahori?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does Zahori need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Zahori maintained?
- The last commit was 24 days ago (2026-09-02). The latest release is v0.1.1.
- What can I use instead of Zahori?
- Servers from other publishers that do the same job: AIHawk MCP server, Anakin MCP server and unbrowser by Unchained MCP server. Compare all Zahori alternatives.
Alternatives to Zahori
Same job from other publishers: the closest match first, then the best rated.
- AIHawkAI browser agent: browses, clicks, types, and reads real web pages from plain-English instructions.not reviewedWidely usedA
AnakinWeb data for AI agents: scrape, crawl, search, deep research, site monitoring, browser automationnot reviewedGrowingB- unbrowser by UnchainedChrome-free MCP web access for agents with low-token page maps and browser escalation hints.not reviewedGrowingB
- SeleniumBase MCPStealthy browser automation, testing, and web-scraping via CDP Mode.not reviewedWidely usedA
- ScrapelessWeb search, browser automation, scraping, crawling and CAPTCHA solving for AI agents.not reviewedEstablishedA