# Linkinator Mcp

> MCP server for link checking using linkinator

- **Type:** MCP server
- **Install:** `agentstack add mcp-justinbeckwith-linkinator-mcp`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [JustinBeckwith](https://agentstack.voostack.com/s/justinbeckwith)
- **Installs:** 0
- **Category:** [Integrations](https://agentstack.voostack.com/c/integrations)
- **Latest version:** 0.2.1
- **License:** MIT
- **Upstream author:** [JustinBeckwith](https://github.com/JustinBeckwith)
- **Source:** https://github.com/JustinBeckwith/linkinator-mcp

## Install

```sh
agentstack add mcp-justinbeckwith-linkinator-mcp
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Linkinator MCP Server

[](https://www.npmjs.com/package/linkinator-mcp)
[](https://github.com/JustinBeckwith/linkinator-mcp/actions/workflows/ci.yaml)
[](https://biomejs.dev/)
[](https://codecov.io/gh/JustinBeckwith/linkinator-mcp)

A Model Context Protocol (MCP) server that provides link checking capabilities using [linkinator](https://github.com/JustinBeckwith/linkinator). This allows AI assistants like Claude to scan webpages and local files for broken links.

## Features

- **Comprehensive Link Checking**: Scan websites and local files for broken links
- **Recursive Crawling**: Follow links within the same domain
- **Multiple Content Types**: Check links in HTML, CSS, and Markdown files
- **Fragment Validation**: Verify anchor links and URL fragments
- **Flexible Configuration**: Extensive options for timeouts, retries, SSL, and more
- **Detailed Reporting**: Get status codes, broken links grouped by error type, and parent page information

## Quick Setup (Automatic)

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:

```bash
npx install-mcp linkinator-mcp --client claude
```

This handles all configuration automatically. Restart your Claude client after installation.

## Manual Configuration

If you prefer to configure the server manually, you can edit your MCP client's configuration file directly.

### Claude Code

#### macOS/Linux

Edit `~/.config/claude-code/config.json`:

```json
{
  "mcpServers": {
    "linkinator": {
      "command": "npx",
      "args": ["linkinator-mcp"]
    }
  }
}
```

#### Windows

Edit `%APPDATA%\claude-code\config.json`:

```json
{
  "mcpServers": {
    "linkinator": {
      "command": "npx",
      "args": ["linkinator-mcp"]
    }
  }
}
```

#### Alternative: Global Installation

If you prefer to install the package globally first with `npm install -g linkinator-mcp`, you can simplify the configuration:

```json
{
  "mcpServers": {
    "linkinator": {
      "command": "linkinator-mcp"
    }
  }
}
```

### Claude Desktop

#### macOS/Linux

Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "linkinator": {
      "command": "npx",
      "args": ["linkinator-mcp"]
    }
  }
}
```

#### Windows

Edit `%APPDATA%\Claude\claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "linkinator": {
      "command": "npx",
      "args": ["linkinator-mcp"]
    }
  }
}
```

### Restart Your Client

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

## Usage Examples

Once configured, you can ask Claude to check links on any webpage or local file. Here are some example prompts:

### Basic Link Checking

```text
Check all the links on https://example.com
```

### Recursive Scanning

```text
Scan https://example.com recursively and check all links on the same domain
```

### Local File Checking

```text
Check the links in /path/to/my/documentation/index.html
```

### Advanced Options

```text
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
```

## Available Options

The `scan_page` tool supports all of linkinator's CLI options:

### Required

- **path** (string): URL or local file path to scan

### Connection Settings

- **concurrency** (number): Number of simultaneous connections (default: 100)
- **port** (number): Server port for local scanning (random port by default)
- **timeout** (number): Request timeout in milliseconds (0 = no timeout)

### Crawling Behavior

- **recurse** (boolean): Follow links recursively on the same domain
- **serverRoot** (string): Custom disk location where the server starts
- **directoryListing** (boolean): Auto-serve directory index files
- **cleanUrls** (boolean): Enable extensionless link resolution (e.g., /about → /about.html)

### Content Parsing

- **markdown** (boolean): Parse and scan markdown files
- **checkCss** (boolean): Extract and validate URLs in CSS properties
- **checkFragments** (boolean): Validate URL anchor identifiers

### Filtering & Customization

- **linksToSkip** (string[]): URL patterns to exclude (regex strings)
- **userAgent** (string): Custom user agent header

### Retry Logic

- **retry** (boolean): Retry HTTP 429 responses with retry-after header
- **retryErrors** (boolean): Retry 5xx errors
- **retryErrorsCount** (number): Retry attempt limit
- **retryErrorsJitter** (number): Random delay between retries in milliseconds

### SSL & Security

- **allowInsecureCerts** (boolean): Accept invalid SSL certificates

## Output Format

The tool returns a formatted report showing:

```text
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
```

## Troubleshooting

### Server Not Appearing in Claude Code

1. Check that the path in `config.json` is absolute, not relative
2. Verify the build directory exists: `ls /path/to/linkinator-mcp/build/index.js`
3. Check Claude Code logs for errors
4. Ensure Node.js is in your PATH

### Permission Errors

If you get permission errors on macOS/Linux:

```bash
chmod +x /path/to/linkinator-mcp/build/index.js
```

### Port Already in Use

If scanning local files and getting port errors, try specifying a port:

```text
Check /path/to/files with port 9000
```

## Contributing

Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to get started.

## License

MIT

## Related Projects

- [linkinator](https://github.com/JustinBeckwith/linkinator) - The underlying link checking library
- [MCP Servers](https://github.com/modelcontextprotocol/servers) - Collection of MCP server implementations
- [Claude Code](https://claude.ai/claude-code) - AI coding assistant that uses MCP

## Author

Justin Beckwith 

## Acknowledgments

Built with the [Model Context Protocol](https://modelcontextprotocol.io/) SDK.

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [JustinBeckwith](https://github.com/JustinBeckwith)
- **Source:** [JustinBeckwith/linkinator-mcp](https://github.com/JustinBeckwith/linkinator-mcp)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.2.1 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.2.1** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-justinbeckwith-linkinator-mcp
- Seller: https://agentstack.voostack.com/s/justinbeckwith
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
