Harden fetch + dep updates + site‑rules routing
MikkoParkkola/nab
MCP Browser & AutomationUltra-fast web fetcher and MCP server with HTTP/3, JS rendering, anti-fingerprinting, browser cookie auth, and 1Password integration. Fetches any URL as clean Markdown for AI context.
Features
- Fetches any URL as clean Markdown with browser cookie injection and anti-bot evasion
- Performs on‑device multilingual ASR with speaker diarization using Apple Neural Engine or cross‑platform models
- Watches URLs for changes and pushes notifications via MCP resources
Recent releases
View all 22 releases →Fixed deserialization of `speakerId` emitted as a JSON string by FluidAudio v0.13+.
Full changelog
Patch release for the speakerId JSON deserialization fix found during the post-v0.7.0 live smoke test of the nab + hebb composition.
The bug
FluidAudio v0.13+ emits speakerId as a JSON string ("1") instead of an integer (1). This broke nab analyze --diarize on fresh FluidAudio installations.
The fix
Custom serde Visitor that accepts i64, u64, or str/String. Both forms deserialize to the same i32 speaker_id. Regression tests added.
Affected
All v0.7.0 users running FluidAudio v0.13+ (the current version installed by nab models fetch fluidaudio). Upgrade to v0.7.1.
Verification
nab analyze /tmp/test_30s.wav --audio-only --diarize --format json
# → 30s audio, 0.24s wall, 123x realtime, 2 speakers identified
Full smoke test of the nab + hebb composition passed after this fix.
- Cross‑platform backends (sherpa‑onnx + whisper‑rs) are available behind feature flags for Linux/Windows/Intel macOS
- nab models fetch fluidaudio now installs the FluidAudio Swift CLI persistently, surviving reboots
- nab analyze v2: FluidAudio (Parakeet TDT v3) on Apple Neural Engine delivering 131× realtime at 97.18% confidence across 25 EU languages plus opt‑in Qwen3‑ASR for zh/ja/ko/vi, with optional speaker diarization and word‑level timestamps
- URL watch: any URL can be subscribed as an MCP resource; background poller uses conditional GETs, semantic diff, adaptive backoff and emits notifications/resources/updated on change
- Active reading via MCP sampling: during transcription nab invokes the host LLM to identify references, recursively fetches them with nab fetch, and inlines citations as footnotes
Full changelog
Highlights
nab analyze v2 — multilingual SOTA ASR via FluidAudio (Parakeet TDT v3 on Apple Neural Engine). Live-tested at 131× realtime on a 2h 09m English interview with 97.18% confidence. Optional speaker diarization (PyAnnote community-1), word-level timestamps, and multilingual support across 25 EU languages + opt-in Qwen3-ASR for zh/ja/ko/vi.
URL watch — nab is now RSS for the entire web. Any URL can be a subscribable MCP resource. Background poller with conditional GETs, semantic diff, adaptive backoff. Clients receive `notifications/resources/updated` on change.
Active reading via MCP sampling — during transcription, nab asks the host LLM to identify references and recursively looks them up via `nab fetch`. Inlines citations as footnotes. Novel pattern — no other ASR pipeline does this.
Full MCP 2025-11-25 spec closure — Streamable HTTP transport, structured logging, argument completion, sampling helper, roots helper, `list_changed` notifications, elicitation form + URL mode. Top 1% of MCP servers in the wild.
Apple Vision OCR — 15 languages, ANE-accelerated, zero model download. Integrated into nab fetch (auto-OCRs images with thin/missing alt text, inlines `[Image: ]` annotations in the markdown output).
Cross-platform backends — sherpa-onnx + whisper-rs behind feature flags for Linux/Windows/Intel macOS.
nab + hebb composition — `nab analyze --diarize --include-embeddings` auto-matches speakers against hebb's voiceprint database. `nab fetch` auto-saves URLs to hebb's `kv:urls` namespace. Full sovereign multimodal stack.
nab models fetch fluidaudio — persistent install of the FluidAudio Swift CLI. Survives reboots (no more `/private/tmp` fragility).
Stats
- 13 commits in this release
- ~20,000 lines of Rust added
- 1187 tests passing, 0 errors, 0 deprecation warnings
- 0 commercial API dependencies in the default composition path
Full changelog
See CHANGELOG.md for the complete list.
Installation
```bash
cargo install nab --version 0.7.0
nab models fetch fluidaudio # one-time: clone + build FluidAudio Swift CLI
nab analyze my-video.mp4 --diarize
```
See docs/getting-started.md for full installation options.
Companion repo
Works standalone, but unlocks more when paired with hebb v0.4.0 (voiceprint DB + MCP-as-database) for named speakers and personal web memory.
- All 8 MCP tools advertise outputSchema and return structured_content
Full changelog
Changed
- All 8 MCP tools now advertise
outputSchema+ returnstructured_content - Extract truncation constants, consolidate schema helpers
- Benchmark tool reports error count per URL
- README: remove unlisted Windows binary, update test count to 907
Fixed
- Dockerfile: Rust 1.93 + proper build deps for Glama
- CHANGELOG: correct rust-mcp-sdk version reference
- MCP tools `submit`, `login`, `validate` return `structured_content` alongside text
- MCP `benchmark` tool reports error count per URL instead of silently dropping failures
Full changelog
Fixed
- Dockerfile: Rust 1.93 (was 1.87), add build-essential/cmake/clang for crypto deps
- Dockerfile:
--no-default-featuresto skip BoringSSL/QUIC for faster Docker builds
Changed
- MCP tools
submit,login,validatenow returnstructured_contentalongside text - MCP
benchmarktool reports error count per URL instead of silently dropping failures - CHANGELOG entries for 0.6.1–0.6.4
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.