io.github.tidybytetools/link-check-lite
The server exposes one tool, check_links, which checks a list of web links and reports whether each works and where redirects lead.
Accepts up to 200
http(s)URLs plus an optionaltimeoutin seconds (default 10).Follows redirects and returns the final URL and redirect chain as
"CODE url"hops.Returns one result per link:
{url, status, ok, final_url, redirects, error}.Marks
okas true for HTTP 200–399;statusis null when it cannot connect.Reports broken links such as 404, 500, timeouts, and bad hosts.
Returns
ok: falsewith an error for non-http(s) links.Does not crawl sites or read page content; it only checks the exact links provided.
Useful for cleaning up docs, READMEs, sitemap lists, and bookmarks.
Annotated as read-only, open-world, idempotent, and non-destructive.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@io.github.tidybytetools/link-check-lite check these links and tell me which are broken: https://example.com, https://example.com/old-page"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
link-check-lite
Free. No API key. Runs on your own computer. It only visits the links you give it.
A tool that checks a list of links. It tells you which ones work, which are broken, and where redirects end up. Need sitemaps, speed checks, sketchy-domain warnings or CSV reports? The paid version does that: link-check on Gumroad
MIT license. Python 3.10 or newer, on Windows, Mac and Linux. The checker itself uses only Python's built-in tools.
Install
pip install link-check-liteOr use pipx, which keeps it in its own space:
pipx install link-check-liteWant the newest code from GitHub instead?
pip install git+https://github.com/tidybytetools/link-check-liteRelated MCP server: MCP Web Tools
Use it
Put your links in a text file, one per line. Lines that start with # are skipped.
link-check-lite links.txt
link-check-lite links.txt -w 3 --timeout 20 # gentler and more patientExample run:
OK 200 https://example.com/
OK 200 https://httpbin.org/redirect/2 -> https://httpbin.org/get (2 redirects)
FAIL 404 https://example.com/old-page
FAIL --- https://no-such-site.example ([Errno -2] Name or service not known)
4 checked, 2 ok, 2 brokenExit code is 0 when every link works and 1 when any link is broken, so it works in a cron job or CI.
When you run it in a terminal it ends with one short line about the paid version. --quiet turns it off, and it never shows when output is piped.
Known limits
Some sites block bots. They may answer 403 or 429 even when the page opens fine in a browser.
No JavaScript. Redirects done with JavaScript are not followed.
Text file only. No CSV input, no sitemaps, and results print to the screen.
No robots.txt and no per-site rate limit. It checks 5 links at a time with a small pause. Don't point it at thousands of pages on one site.
Not a safety check. It does not tell you if a link is a scam.
Lite vs paid
lite (free) | ||
Status codes and broken links | yes | yes |
Redirect chain and final URL | yes | yes |
Text file input | yes | yes |
CSV input and sitemap URLs (with sitemap index) | no | yes |
Response time and slow-link flag | no | yes |
http vs https checks | no | yes |
Look-alike and sketchy domain warnings (local rules) | no | yes |
robots.txt and one-hit-per-second per site | no | yes |
CSV, JSON and Markdown reports | no | yes |
How it compares to other free tools
All of these are free. Pick what fits you.
link-check-lite | ||||
Checks a plain list of links | yes | yes | no, it crawls | no, it crawls |
Crawls a whole site | no | no | yes | yes |
Install | pip | binary / cargo | pip | binary / go |
Built-in MCP server for AI apps | yes | no | no | no |
Lots of options | no | yes | yes | yes |
If you need to crawl a big site or check links inside Markdown files, lychee and linkchecker are great.
Use it with your AI app (MCP)
There is a small free MCP server built in. It gives your AI app one tool, check_links. No API key or account is needed. It needs uv, which gives you the uvx command.
Run it by hand to check it starts (it waits quietly for an app to talk to it):
uvx --from link-check-lite link-check-lite-mcpShorter way to start the same server: uvx link-check-lite mcp.
Pick your app below and copy the block. Restart the app after you save.
Claude Desktop
Open Settings > Developer > Edit Config. That opens claude_desktop_config.json. Add this:
{
"mcpServers": {
"link-check-lite": {
"command": "uvx",
"args": ["--from", "link-check-lite", "link-check-lite-mcp"]
}
}
}If Claude says it can't find uvx, run which uvx (Mac/Linux) or where uvx (Windows) and put that full path in "command".
Cursor
Put the same block in ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):
{
"mcpServers": {
"link-check-lite": {
"command": "uvx",
"args": ["--from", "link-check-lite", "link-check-lite-mcp"]
}
}
}VS Code
VS Code uses servers, not mcpServers. Put this in .vscode/mcp.json in your project, or run MCP: Open User Configuration to use it everywhere:
{
"servers": {
"link-check-lite": {
"type": "stdio",
"command": "uvx",
"args": ["--from", "link-check-lite", "link-check-lite-mcp"]
}
}
}Or add it with one command:
code --add-mcp '{"name":"link-check-lite","type":"stdio","command":"uvx","args":["--from","link-check-lite","link-check-lite-mcp"]}'Cline
In the Cline panel, click the MCP Servers icon, open Configure, then click Configure MCP Servers. Add this inside mcpServers:
{
"mcpServers": {
"link-check-lite": {
"command": "uvx",
"args": ["--from", "link-check-lite", "link-check-lite-mcp"],
"disabled": false,
"autoApprove": []
}
}
}Codex
One command:
codex mcp add link-check-lite -- uvx --from link-check-lite link-check-lite-mcpOr add this to ~/.codex/config.toml:
[mcp_servers.link-check-lite]
command = "uvx"
args = ["--from", "link-check-lite", "link-check-lite-mcp"]Gemini CLI
This repo is also a Gemini CLI extension. Install it with:
gemini extensions install https://github.com/tidybytetools/link-check-liteTool: check_links(urls, timeout=10.0). Send up to 200 links. It returns one result per link.
Use it in GitHub Actions
Link Check Lite is on the GitHub Marketplace. Check your links every time you push. Put your links in a text file, one per line. Then add this step to a workflow:
- uses: actions/checkout@v7
- uses: tidybytetools/link-check-lite@v1
with:
file: links.txt # one link per line
# fail-on-broken: "false" # pass even if some links are broken@v1 always points to the newest 1.x release. To stay on one exact release, use a full tag like @v1.1.2.
The step fails if any link is broken. It also writes a short report to the run summary. It installs link-check-lite from PyPI. Your links are sent only to the sites they point to.
Inputs
Input | Default | What it does |
|
| Text file with one link per line. Lines that start with |
|
| How many links to check at the same time. |
|
| Seconds to wait for each link. |
|
| Set to |
| (empty) | link-check-lite version from PyPI. Empty gets the newest. |
|
| Python version to set up. |
Outputs
Output | What it is |
| How many links were checked. |
| How many links were OK. |
| How many links were broken. |
Use it from Python
from link_check_lite import check_link
print(check_link("https://example.com"))
# {'url': 'https://example.com', 'status': 200, 'ok': True, 'final_url': 'https://example.com', 'redirects': [], 'error': None}For AI agents
Use when: you need to know if web links work and where their redirects end up.
Don't use when: you need to know if a link is safe, need a whole site crawled, or need speed or https checks. Use the paid version for those.
Input: a list of http(s) URLs (max 200 per MCP call), plus an optional
timeoutin seconds.Output: a list of
{url, status, ok, final_url, redirects, error}.statusis null when the link could not connect.okis true for 200-399.redirectslists each hop as"CODE url".CLI exit code is 0 when all links work and 1 when any link is broken or on error. See also
llms.txt.
Tests
pip install "mcp>=1.10,<2"
python3 -m unittest discover testsThe tests use a tiny local web server, so they don't need the internet.
License
MIT. See LICENSE.
Available Tools
1 toolcheck_linksCheck linksARead-onlyIdempotent
Check web links and follow their redirects.
Use this when you have a list of URLs and need to know which ones work, which
are broken (404, 500, timeouts, bad hosts) and where redirects end up, for
example to clean up docs, a README, a sitemap list or bookmarks. It does not
crawl a site or read page content; pass the exact links you want checked.
Links that are not http or https come back with ok false and an error.
urls: up to 200 http(s) links.
timeout: seconds to wait for each link.
Returns one result per link: {url, status, ok, final_url, redirects, error}.
status is the HTTP code of the last hop (null if it could not connect).
ok is true for 200-399. redirects lists each hop as "CODE url".
Inputs: urls (required), timeout. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 1 tool
There is only one tool, so there is nothing to confuse it with. Its description clearly scopes it to checking a caller-supplied list of http(s) URLs for status and redirect chains, and explicitly excludes crawling.
The single name check_links follows a clean snake_case verb_noun pattern that matches its action. With one tool there is no possibility of convention drift.
One tool is thin, but the server's stated purpose (link checking only) is narrow enough that a single batch endpoint is defensible. It sits at the borderline of 'feels thin' rather than being an extreme mismatch.
The core lifecycle of a link check — input list, per-link status, ok flag, final_url, redirect hops, error — is fully covered, including parameterized timeout and a 200-link cap. Minor gaps remain (no retry/concurrency hints, no filtering or sitemap extraction), but agents can work around these.
Maintenance
Related MCP Connectors
Live web checks for AI agents: sitemaps, robots.txt, URL status, broken links, feeds, citations.
Check many URLs at once: HTTP status, redirect chains and loops, so you see which links break.
URL intelligence for AI agents and developers. 16 tools, 25 signal weights, 20 free checks.
MCP tools for AI agents: render URLs to image/PDF, check link health, convert HTML/CSV/JSON.
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables 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.2MIT
- AlicenseAqualityDmaintenanceEnables AI agents to extract structured content from URLs, search the web via DuckDuckGo, monitor site availability, and convert HTML to markdown without requiring API keys.551 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to validate AI infrastructure claims, check endpoint availability, solve CAPTCHA challenges, convert web pages to Markdown, search the web, extract structured JSON, and fetch bot-protected HTML through native tool calls.MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to capture screenshots and PDFs, read web pages as Markdown, preview links, look up DNS/SSL/WHOIS and email records, verify addresses, generate QR codes, barcodes and social images, convert images, and translate text.1943 npmMIT