serverRoot, port and directoryListing let a built output directory be served for the duration of the scan, which moves link checking from a post-deploy alarm to something that runs against the build. For a large site the parameters that decide the outcome are the ones governing runtime: concurrency, timeout, recurse and linksToSkip, plus a retry policy with its own error list, count and jitter, so a host that is slow does not come back looking broken.
A single-tool wrapper around linkinator: link checking on a webpage or a local file path, with recursive crawling and progress notifications for long runs.
- scan_page, which checks a webpage or a local file path for broken links using linkinator.
- Anchor validation through checkFragments, stylesheet checking through checkCss, and markdown handling.
- Crawl control: recurse, concurrency, linksToSkip, timeout, userAgent and cleanUrls, plus serverRoot, port and directoryListing for serving a local directory during the scan.
- A tunable retry policy — retry, retryErrors, retryErrorsCount and retryErrorsJitter — and allowInsecureCerts for hosts whose certificates would otherwise stop the scan.
- Progress notifications while a long scan runs.
Nothing to supply — no account, no key. A URL or a local file path to scan, and for a local directory the serverRoot and port linkinator should serve it from.
One command — npx linkinator-mcp
