关于 link-check-lite
link-check-lite 检查给定网页链接的状态码、失效情况和重定向目标,面向需要本地命令行或 MCP 检查、而非整站爬取的开发者和网站维护者。
主要功能
- 01检查 HTTP 状态码
- 02识别失效链接
- 03显示重定向链和最终 URL
- 04从文本文件读取链接
- 05提供命令行、Python API 和 MCP 服务
适用场景
- 01发布前验证链接
- 02在 CI 工作流中检查链接列表
- 03让 AI 应用检查指定 URL
MCP 相关
内置 MCP 服务提供 `check_links`,每次调用最多检查 200 个指定 URL。它为每个链接返回状态、最终 URL、重定向和错误信息。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 4 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| urls | array | 是 | |
| timeout | number | 否 |
详细介绍
link-check-lite
免费。无需 API 密钥。在你自己的计算机上运行。只访问你提供的链接。
用于检查链接列表的工具。它会告诉你哪些链接正常、哪些已失效,以及重定向最终到达的位置。 需要站点地图、速度检查、可疑域名警告或 CSV 报告?付费版可提供这些功能:在 Gumroad 上购买 link-check
采用 MIT 许可证。适用于 Windows、Mac 和 Linux,需要 Python 3.10 或更高版本。检查器本身仅使用 Python 内置工具。
安装
pip install link-check-lite
或者使用 pipx,它会将程序安装在独立空间中:
pipx install link-check-lite
想要直接使用 GitHub 上的最新代码?
pip install git+https://github.com/tidybytetools/link-check-lite
使用方法
将链接放入文本文件,每行一个。以 # 开头的行会被跳过。
link-check-lite links.txt
link-check-lite links.txt -w 3 --timeout 20 # gentler and more patient
运行示例:
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 broken
所有链接正常时,退出代码为 0;任意链接失效时,退出代码为 1,因此可用于 cron 作业或 CI。
在终端中运行时,程序会在结尾显示一行关于付费版的简短提示。使用 --quiet 可关闭此提示;将输出通过管道传递时则不会显示。
已知限制
- 有些网站会屏蔽机器人。 即使页面在浏览器中能正常打开,它们也可能返回 403 或 429。
- 不支持 JavaScript。 不会跟随由 JavaScript 执行的重定向。
- 仅支持文本文件。 不支持 CSV 输入和站点地图,结果会打印到屏幕上。
- 不检查 robots.txt,也没有针对各网站的速率限制。 它会同时检查 5 个链接,并稍作停顿。不要用它检查单个网站上的数千个页面。
- 不是安全检查工具。 它不会告诉你链接是否属于骗局。
Lite 版与付费版
| lite(免费) | link-check | |
|---|---|---|
| 状态码和失效链接 | 是 | 是 |
| 重定向链和最终 URL | 是 | 是 |
| 文本文件输入 | 是 | 是 |
| CSV 输入和站点地图 URL(含站点地图索引) | 否 | 是 |
| 响应时间和慢速链接标记 | 否 | 是 |
| http 与 https 检查 | 否 | 是 |
| 相似域名和可疑域名警告(本地规则) | 否 | 是 |
| robots.txt 和每个网站每秒一次请求 | 否 | 是 |
| CSV、JSON 和 Markdown 报告 | 否 | 是 |
与其他免费工具的比较
以下工具均免费。选择适合你的工具即可。
| link-check-lite | lychee | linkchecker | muffet | |
|---|---|---|---|---|
| 检查纯链接列表 | 是 | 是 | 否,会爬取网站 | 否,会爬取网站 |
| 爬取整个网站 | 否 | 否 | 是 | 是 |
| 安装方式 | pip | 二进制文件 / cargo | pip | 二进制文件 / go |
| 内置 AI 应用 MCP 服务 | 是 | 否 | 否 | 否 |
| 选项丰富 | 否 | 是 | 是 | 是 |
如果你需要爬取大型网站,或检查 Markdown 文件中的链接,lychee 和 linkchecker 都是很好的选择。
在 AI 应用中使用(MCP)
内置了一个小型免费 MCP 服务。它为你的 AI 应用提供一个工具:check_links。无需 API 密钥或账号。它需要 uv,安装后会提供 uvx 命令。
手动运行,检查它能否启动(它会安静地等待应用与其通信):
uvx --from link-check-lite link-check-lite-mcp
更简便的方式是启动同一个服务:uvx link-check-lite mcp。
选择下面的应用并复制对应代码块。保存后重启应用。
Claude Desktop
打开 设置 > 开发者 > 编辑配置。这会打开 claude_desktop_config.json。添加以下内容:
{
"mcpServers": {
"link-check-lite": {
"command": "uvx",
"args": ["--from", "link-check-lite", "link-check-lite-mcp"]
}
}
}
如果 Claude 提示找不到 uvx,运行 which uvx(Mac/Linux)或 where uvx(Windows),并将完整路径填入 "command"。
Cursor
将相同的代码块放入 ~/.cursor/mcp.json(所有项目)或 .cursor/mcp.json(单个项目):
{
"mcpServers": {
"link-check-lite": {
"command": "uvx",
"args": ["--from", "link-check-lite", "link-check-lite-mcp"]
}
}
}
VS Code
VS Code 使用 servers,而不是 mcpServers。将以下内容放入项目中的 .vscode/mcp.json,或运行 MCP: 打开用户配置,以便在所有项目中使用:
{
"servers": {
"link-check-lite": {
"type": "stdio",
"command": "uvx",
"args": ["--from", "link-check-lite", "link-check-lite-mcp"]
}
}
}
也可以通过一条命令添加:
code --add-mcp '{"name":"link-check-lite","type":"stdio","command":"uvx","args":["--from","link-check-lite","link-check-lite-mcp"]}'
Cline
在 Cline 面板中,点击 MCP Servers 图标,打开 配置,然后点击 配置 MCP Servers。在 mcpServers 中添加以下内容:
{
"mcpServers": {
"link-check-lite": {
"command": "uvx",
"args": ["--from", "link-check-lite", "link-check-lite-mcp"],
"disabled": false,
"autoApprove": []
}
}
}
Codex
一条命令:
codex mcp add link-check-lite -- uvx --from link-check-lite link-check-lite-mcp
或者将以下内容添加到 ~/.codex/config.toml:
[mcp_servers.link-check-lite]
command = "uvx"
args = ["--from", "link-check-lite", "link-check-lite-mcp"]
Gemini CLI
此仓库也是一个 Gemini CLI 扩展。使用以下命令安装:
gemini extensions install https://github.com/tidybytetools/link-check-lite
工具:check_links(urls, timeout=10.0)。最多发送 200 个链接。每个链接都会返回一条结果。
在 GitHub Actions 中使用
Link Check Lite 已上架 GitHub Marketplace。 每次推送时检查链接。将链接放入文本文件,每行一个。然后将此步骤添加到工作流中:
- 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 始终指向最新的 1.x 版本。若要固定到某个具体版本,请使用完整标签,例如 @v1.1.2。
只要有任何链接失效,该步骤就会失败。它还会在运行摘要中生成简短报告。它会从 PyPI 安装 link-check-lite。你的链接只会发送到它们所指向的网站。
输入
| 输入 | 默认值 | 作用 |
|---|---|---|
file | links.txt | 每行包含一个链接的文本文件。以 # 开头的行会被跳过。 |
workers | 5 | 同时检查的链接数量。 |
timeout | 10 | 每个链接的等待秒数。 |
fail-on-broken | true | 设为 false,即使部分链接失效,步骤也会通过。 |
version | (空) | PyPI 上的 link-check-lite 版本。留空则使用最新版本。 |
python-version | 3.12 | 要安装的 Python 版本。 |
输出
| 输出 | 含义 |
|---|---|
checked | 已检查的链接数量。 |
ok | 正常的链接数量。 |
broken | 失效的链接数量。 |
在 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}
面向 AI Agent
- 适用场景: 你需要确认网页链接是否有效,以及它们最终重定向到哪里。
- 不适用场景: 你需要判断链接是否安全、爬取整个网站,或检查速度或 https。上述需求请使用付费版本。
- 输入: 一个 http(s) URL 列表(每次 MCP 调用最多 200 个),以及可选的秒数参数
timeout。 - 输出: 一个
{url, status, ok, final_url, redirects, error}列表。链接无法连接时,status为 null。ok为 true 表示状态码在 200-399 之间。redirects会按跳转顺序列出每次跳转,格式为"CODE url"。 - 所有链接都正常时,CLI 退出代码为 0;任何链接失效或发生错误时,退出代码为 1。另请参阅
llms.txt。
测试
pip install "mcp>=1.10,<2"
python3 -m unittest discover tests
测试使用一个小型本地 Web 服务器,因此无需联网。
许可证
MIT。参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。