# nab
> Token-optimized web fetcher + multilingual ASR + URL watcher. MCP 2025-11-25 compliant. Rust.
nab is a single Rust binary that fetches any URL as clean markdown (with real browser cookies and anti-bot evasion), transcribes audio/video with on-device multilingual ASR, and watches URLs for changes. Everything runs locally. No API keys required. Output is shaped for LLM context windows.
## Install
brew install MikkoParkkola/tap/nab
## MCP Server Setup (for AI assistants)
```bash
nab mcp install # Claude Desktop (default)
nab mcp install --client claude-code # Claude Code
nab mcp install --client cursor # Cursor
nab mcp install --client windsurf # Windsurf
nab mcp install --dry-run # preview changes
```
Manual: add `{"mcpServers":{"nab":{"command":"nab-mcp"}}}` to your client config.
Command: nab-mcp
Transport: stdio (default) or Streamable HTTP (--http HOST:PORT)
## MCP Tools (12)
- fetch(url, [cookies, focus, max_tokens, session, raw_html, diff, proxy, tor]) — Fetch URL as markdown
- fetch_batch(urls, [cookies, parallel]) — Parallel multi-URL fetch with task-augmented async
- submit(url, fields, [csrf_from, cookies]) — Submit form with CSRF + smart field extraction
- login(url, [use_1password, save_session, cookies]) — 1Password auto-login with TOTP
- auth_lookup(url) — Look up 1Password credentials for a URL
- fingerprint([count]) — Generate browser fingerprint profiles
- validate() — Run validation test suite
- benchmark(urls, [iterations]) — Time URL fetches with stats
- analyze(video, [audio_only, diarize, format, language, active_reading]) — Transcribe + diarize audio/video
- watch_create(url, [interval, selector, diff_kind]) — Create URL watch subscription
- watch_list() — List active watches
- watch_remove(id) — Remove a watch
## MCP Prompts
- fetch-and-extract(url, focus) — Guided URL extraction
- multi-page-research(urls) — Multi-page research workflow
- authenticated-fetch(url) — Auth-aware fetch with 1Password
## CLI (14 commands)
nab fetch https://example.com # fetch as markdown
nab fetch URL --cookies brave # use browser cookies
nab fetch URL --1password # auto-login via 1Password
nab fetch URL --focus "pricing" --max-tokens 2000 # query-focused extraction
nab fetch --batch urls.txt --parallel 8 # batch fetch
nab spa URL # extract SPA/JS data
nab analyze interview.mp4 --diarize # transcribe + speakers
nab watch add https://status.openai.com --interval 5m # monitor for changes
nab stream yle PROGRAM_ID # stream media
nab submit URL --field "name=value" # submit forms
nab context URL1 URL2 URL3 --max-tokens 8000 # combine URLs for LLM
nab mcp # start MCP server (stdio)
nab mcp install # auto-configure AI client
nab mcp install --client cursor --dry-run # preview config changes
## Site Providers (11)
Twitter/X, Reddit, Hacker News, GitHub, Google Workspace (Docs/Sheets/Slides), YouTube, Wikipedia, StackOverflow, Mastodon, LinkedIn, Instagram.
## Detailed docs
- Full README: https://github.com/MikkoParkkola/nab/blob/main/README.md
- Architecture: https://github.com/MikkoParkkola/nab/blob/main/docs/ARCHITECTURE.md
- Getting started: https://github.com/MikkoParkkola/nab/blob/main/docs/getting-started.md