Labsco
MCP SERVER

Linkinator

by JustinBeckwith

Run linkinator over a live URL or a local path, recursively if you want, with anchor fragments validated, a skip list you control and a retry policy that separates a flaky host from a dead link.

Automated Testing & QAVerified
Summary
A local path is as valid a target as a URL, so links get checked before the site exists in public.

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.

What it is

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.

What you get
  • 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.
Requirements

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.

Setup effort

One command — npx linkinator-mcp