关于 Crtsh
Crtsh 是用于搜索 crt.sh 证书透明度记录的 MCP 服务,适合需要查询域名证书历史、发现主机名或查看特定证书详情的安全与基础设施工作。
主要功能
- 01按域名搜索证书
- 02从 SAN 枚举主机名
- 03排除已过期证书
- 04按 ID 或序列号获取证书 PEM
- 05去重并按时间排序结果
适用场景
- 01根据证书记录发现子域名
- 02检查域名已签发的 TLS 证书
- 03查看证书有效期和颁发者信息
- 04按 crt.sh ID 或序列号检索证书
MCP 相关
通过 Pipeworx 网关或本地 stdio 服务向 MCP 客户端提供 crt.sh 域名搜索和证书查询工具。网关还提供 Pipeworx 通用元工具;独立模式仅提供此组件的工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/crtsh/mcpclaude mcp add --transport http pipeworx-io-crtsh https://gateway.pipeworx.io/crtsh/mcp{"mcpServers":{"pipeworx-io-crtsh":{"type":"http","url":"https://gateway.pipeworx.io/crtsh/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-crtsh":{"type":"http","url":"https://gateway.pipeworx.io/crtsh/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-crtsh":{"type":"http","url":"https://gateway.pipeworx.io/crtsh/mcp"}}}{"mcpServers":{"pipeworx-io-crtsh":{"serverUrl":"https://gateway.pipeworx.io/crtsh/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
@pipeworx/crtsh
从 crt.sh 搜索证书透明度日志——查找为某个域名及其子域名签发的所有 TLS 证书,包括颁发者、有效期、序列号和完整的 SAN 列表。
属于 Pipeworx 项目——一个将 AI Agent 连接到 1875+ 个实时数据源的 MCP 网关。这是一个独立的非官方集成,与上游提供方无关联、未获其认可,也未由其发布。
工具
crtsh_search_domain(domain, include_subdomains?, exclude_expired?, limit?)— 查找某个域名的所有已记录证书,按证书 ID 去重并按最新优先排序,同时返回unique_names:所有证书中出现过的不同主机名。这正是大多数调用方真正需要的子域名枚举结果。crtsh_certificate(id?, serial?, include_pem?)— 按 crt.sh ID 或十六进制序列号查询一张证书。返回 PEM 正文;按serial查询时也会附带已记录的元数据,按id查询则只返回 PEM(参见“注意事项”)。
身份验证
无需密钥。
数据源
- https://crt.sh/?q=%25.example.com&output=json — 按标识(域名、SAN 或
%通配符)搜索证书。 - https://crt.sh/?serial=...&output=json — 按十六进制序列号搜索证书。
- <https://crt.sh/?d=> — 返回一张证书的 PEM 正文。
crt.sh 由 Sectigo 运营,是公共证书透明度日志 PostgreSQL 数据库的 JSON 视图。
注意事项
- crt.sh 响应较慢。 对大型域名的通配符查询通常需要 10-20 秒,而且服务端没有设置自己的查询超时。本工具包中的每次调用都设为 25 秒超时,而非采用工具包默认值。
- 只有标识类查询才会遵循
output=json——q=、serial=、Identity=。?id=<n>&output=json会返回字面字符串Unsupported output type: json,且状态码为 HTTP 200。如果解析时不检查,这会被静默地当作零条结果;crtJson()会拒绝任何不以[或{开头的正文。 ?d=<id>和?id=<id>是不同的参数。d返回 PEM;id会呈现 HTML 页面。因此,crtsh_certificate可以按 ID 返回 PEM,却无法返回其元数据——没有按 ID 查询 JSON 的接口,所以只有通过serial=查询才能获得元数据。name_value会将所有 SAN 打包到一个以换行符分隔的字段中。 拆分该字段,才能从报告 8 张证书变成报告调用方所需的 40 个主机名。- 同一张证书会显示为多行——crt.sh 对每个(证书、匹配标识)组合返回一行,因此含有六个匹配 SAN 的证书会显示为六行,且
id相同。应按id去重,否则所有计数都会虚高。 - 预证书和最终证书是两条 CT 记录,有不同的 crt.sh ID,但序列号相同,因此按 ID 计数大致会让实际签发的证书数量翻倍。
crtsh_search_domain会同时报告total_log_entries_found(不同的 crt.sh ID)和unique_certificates_found(不同的序列号)。回答“签发了多少张证书”时,应引用第二个数字。 - CT 仅涵盖公开受信任的 CA。 使用内部或私有 CA 的主机不会出现在此处;没有搜索结果并不能证明该主机不存在。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"crtsh": {
"url": "https://gateway.pipeworx.io/crtsh/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/crtsh/mcp 上的 tools/list 会返回上表中的工具,以及 Pipeworx 共享元工具——ask_pipeworx、discover_tools、search_within、remember/recall 和网关范围内的其他工具。因此,你看到的工具数量会多于表中的数量:目前,单个工具包端点会列出约 30 个共享工具,以及该工具包自身的工具。连接的 initialize 响应会说明确切范围,也是当天情况的权威答案。
这是有意为之,并非意外复用。元工具让范围受限的连接也能回答本工具包未覆盖的问题——通过 ask_pipeworx 跨整个目录进行路由——而无需添加第二个 MCP 服务。目前无法在不包含这些工具的情况下挂载工具包端点;如果额外的架构定义占用的上下文超过了路由带来的价值,请连接一次完整网关,而不是连接多个工具包端点。
或者,连接完整的 Pipeworx 网关,直接列出每个工具包的所有工具,而不只是当前工具包的工具:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
两个 URL 都连接到同一个网关和相同的 1875+ 个数据源。唯一的区别是直接列出哪个工具包的工具;通过 ask_pipeworx,无论连接哪一个,都能访问所有工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/crtsh_search_domain \
-H 'Content-Type: application/json' \
-d '{"domain":"pipeworx.io","exclude_expired":true,"limit":3}'
首次调用无需账户。检查任意工具:GET https://gateway.pipeworx.io/v1/tools/crtsh_search_domain。查找工具:使用 {"query":"..."} 向 POST https://gateway.pipeworx.io/v1/tools/search_packs 发送请求。
独立运行(无需网关账户)
此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需经过网关:
{
"mcpServers": {
"crtsh": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-crtsh"]
}
}
}
也可以直接运行,确认它能正常启动:
npx -y @pipeworx/mcp-crtsh
它通过 stdin/stdout 使用 MCP 协议,并响应 initialize/tools/list/tools/call,但仅提供此工具包的工具——不包含上述网关连接额外提供的任何共享元工具。相同的源代码和工具,但没有 ask_pipeworx 路由。
使用 ask_pipeworx
你可以用普通英语提问,而不是直接调用工具——无论是使用上文的工具包端点,还是完整网关,都可以这样做:
ask_pipeworx({ question: "your question about Crtsh data" })
网关会自动选择合适的工具并填写参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。