Wraps the linkinator library to let Claude scan websites and local files for broken links. Exposes a scan_page tool that crawls URLs recursively, validates anchor fragments, parses markdown and CSS for links, and returns detailed reports with status codes grouped by error type. Useful when you need to audit documentation sites, check a codebase's README links, or verify that a deployment didn't break any references. Supports the full linkinator CLI options including concurrency limits, custom user agents, retry logic for 429s and 5xx errors, and filtering patterns to skip specific domains. Install with npx or configure manually in your Claude client's config file.

A Model Context Protocol (MCP) server that provides link checking capabilities using linkinator. This allows AI assistants like Claude to scan webpages and local files for broken links.
The easiest way to get started is using the install-mcp tool, which automatically configures linkinator-mcp for Claude Desktop, Claude Code, Cursor, Cline, and other MCP clients:
npx install-mcp linkinator-mcp --client claude
This handles all configuration automatically. Restart your Claude client after installation.
If you prefer to configure the server manually, you can edit your MCP client's configuration file directly.
Edit ~/.config/claude-code/config.json:
{
"mcpServers": {
"linkinator": {
"command": "npx",
"args": ["linkinator-mcp"]
}
}
}
Edit %APPDATA%\claude-code\config.json:
{
"mcpServers": {
"linkinator": {
"command": "npx",
"args": ["linkinator-mcp"]
}
}
}
If you prefer to install the package globally first with npm install -g linkinator-mcp, you can simplify the configuration:
{
"mcpServers": {
"linkinator": {
"command": "linkinator-mcp"
}
}
}
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"linkinator": {
"command": "npx",
"args": ["linkinator-mcp"]
}
}
}
Edit %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"linkinator": {
"command": "npx",
"args": ["linkinator-mcp"]
}
}
}
After updating the configuration, restart your Claude client for the changes to take effect.
Once configured, you can ask Claude to check links on any webpage or local file. Here are some example prompts:
Check all the links on https://example.com
Scan https://example.com recursively and check all links on the same domain
Check the links in /path/to/my/documentation/index.html
Check https://example.com with the following options:
- Recurse through all pages
- Check CSS for URLs
- Validate anchor fragments
- Skip links to google.com and facebook.com
- Use a 10 second timeout
The scan_page tool supports all of linkinator's CLI options:
The tool returns a formatted report showing:
Linkinator Scan Results for: https://example.com
Summary:
Status: ✓ PASSED / ✗ FAILED
Total Links: 150
OK: 145
Broken: 5
Skipped: 0
Broken Links:
Status 404:
- https://example.com/missing-page
Found on: https://example.com/index.html
- https://example.com/old-blog-post
Found on: https://example.com/blog.html
Status 500:
- https://api.example.com/endpoint
Found on: https://example.com/docs.html
config.json is absolute, not relativels /path/to/linkinator-mcp/build/index.jsIf you get permission errors on macOS/Linux:
chmod +x /path/to/linkinator-mcp/build/index.js
If scanning local files and getting port errors, try specifying a port:
Check /path/to/files with port 9000
Contributions are welcome! Please see CONTRIBUTING.md for details on how to get started.
MIT
Justin Beckwith justin.beckwith@gmail.com
Built with the Model Context Protocol SDK.