Skip to main content
Glama

Broken Link Checker MCP Server

by davinoishi

Broken Link Checker MCP Server

An MCP (Model Context Protocol) server that provides broken link checking capabilities using the broken-link-checker library.

Features

  • Check Single Page Links: Scan all links on a single HTML page for broken links

  • Check Entire Site: Recursively crawl and check all links across an entire website

  • Detailed reporting including HTTP status codes, broken reasons, and link metadata

  • Support for excluding external links and respecting robots.txt

Installation

npm install

Usage with Claude Desktop

Step 1: Configure Claude Desktop

Add this server to your Claude Desktop configuration file:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{ "mcpServers": { "broken-link-checker": { "command": "node", "args": ["/Users/davinoishi/Documents/Projects-AI/BLC/index.js"] } } }

Make sure to update the path to match your actual installation directory.

Step 2: Restart Claude Desktop

After updating the configuration, restart Claude Desktop for the changes to take effect.

Step 3: Use the Tools

The MCP server provides two main tools:

1. check_page_links

Check all links on a single HTML page.

Parameters:

  • url (required): The URL of the page to check

  • excludeExternalLinks (optional): If true, only check internal links (default: false)

  • honorRobotExclusions (optional): If true, respect robots.txt (default: true)

Example:

Can you check the links on https://example.com for any broken links?

2. check_site

Recursively crawl and check all links across an entire website.

Parameters:

  • url (required): The starting URL of the site to check

  • excludeExternalLinks (optional): If true, only check internal links (default: false)

  • honorRobotExclusions (optional): If true, respect robots.txt (default: true)

  • maxSocketsPerHost (optional): Maximum concurrent requests per host (default: 1)

Example:

Can you crawl https://example.com and check all pages for broken links?

Using with ngrok (Public URL)

If you need to expose this service publicly, you can use ngrok:

# Install ngrok if you haven't already npm install -g ngrok # Start the MCP server (it runs on stdio by default) # You may need to modify the server to support HTTP if you want to expose it via ngrok

Note: The current implementation uses stdio transport which is designed for local use with Claude Desktop. For public access via ngrok, you would need to modify the server to use HTTP/SSE transport instead.

Output Format

Both tools return JSON with the following structure:

{ "summary": { "totalLinks": 100, "brokenLinks": 5, "workingLinks": 95 }, "brokenLinks": [ { "url": "https://example.com/broken-page", "base": "https://example.com", "broken": true, "brokenReason": "HTTP_404", "http": { "statusCode": 404 } } ] }

Development

The main server code is in index.js. The server uses:

  • @modelcontextprotocol/sdk for MCP protocol implementation

  • broken-link-checker for link checking functionality

License

MIT

Deploy Server
-
security - not tested
F
license - not found
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

Enables checking for broken links on web pages and entire websites through natural language commands. Provides detailed reports including HTTP status codes and supports options like excluding external links and respecting robots.txt.

  1. Features
    1. Installation
      1. Usage with Claude Desktop
        1. Step 1: Configure Claude Desktop
        2. Step 2: Restart Claude Desktop
        3. Step 3: Use the Tools
      2. Using with ngrok (Public URL)
        1. Output Format
          1. Development
            1. License

              MCP directory API

              We provide all the information about MCP servers via our MCP API.

              curl -X GET 'https://glama.ai/api/mcp/v1/servers/davinoishi/broken-link-checker-mcp'

              If you have feedback or need assistance with the MCP directory API, please join our Discord server