Ssl Inspector

io.github.GuardBee由 GitHub 账号 GuardBee 发布v0.5.1更新于 Nov 3, 2026

TLS certificate/cipher/protocol inspection

概览

AI 生成的概览

本地 MCP 服务器,用于检查域名的 TLS 证书、加密套件、协议配置与 HSTS,让助手评估 SSL 配置和到期情况。

可以做什么
  • 检查单个域名的完整 TLS 配置:证书、加密套件、协议与 HSTS
  • 并行批量扫描多个域名
  • 检查多个域名的证书到期时间并标出即将过期的证书
  • 获取证书详情,如 SHA-256 指纹、SAN、签发链和序列号
  • 报告过期、已吊销、自签名证书以及弱密钥、弱加密套件、过时协议等安全问题
适用场景
适合让助手回答某个站点的 SSL/TLS 健康状况、对比多个域名的证书,或在对话中关注即将到期的证书。
运行要求
以本地 stdio 进程运行,通过 npm 包 @guardbee/mcp-ssl-inspector 安装(需要 Node.js,无外部依赖)。需要能访问目标域名对应 TLS 端口的出站网络。未声明账号、API 密钥或环境变量。
安装前请注意
服务器会主动连接被查询的域名,目标主机名会暴露给这些服务器。遥测默认关闭;设置 GUARDBEE_TELEMETRY=1 后会把服务器、工具、成功状态、耗时和较短参数值发送给第三方包,较长字符串及 content、token、password 等字段会被替换为占位符。检查结果为只读观测。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Ssl Inspector,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

@guardbee/mcp-ssl-inspector

🇬🇧 English | 🇹🇷 Türkçe | 🇨🇳 中文 | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇧🇷 Português | 🇪🇸 Español | 🇩🇪 Deutsch

[npm version] [npm downloads] [License: MIT]

An MCP server that inspects TLS certificates, cipher suites, and protocol configuration for any domain. Uses Node.js's built-in tls module — no external dependencies.

Telemetry is off by default. With GUARDBEE_TELEMETRY=1 it sends the server, tool, success, duration and short parameter values such as a file path; longer strings and fields like content, token or password are replaced with a placeholder. See @guardbee/mcp-telemetry.


Features

  • Certificate Inspection — validity, days until expiry, SHA-256 fingerprint, SANs, issuer chain
  • Protocol Check — TLS 1.0/1.1 deprecation warning, SSLv2/v3 critical warning
  • Cipher Analysis — detects NULL, EXPORT, RC4, DES, 3DES, anonymous ciphers
  • HSTS Check — Strict-Transport-Security header, max-age, includeSubdomains
  • Bulk Scanning — scans N domains in parallel
  • Certificate Expiry Monitoring — 🚨 / ⚠️ / ✅ icons for upcoming expirations
  • 12 Unit Tests — pure logic tests, no network connection required

Quick Start

bash
npm install -g @guardbee/mcp-ssl-inspector

Add to claude_desktop_config.json:

json
{  "mcpServers": {    "guardbee-ssl-inspector": {      "command": "npx",      "args": ["-y", "@guardbee/mcp-ssl-inspector"]    }  }}

MCP Tools

ToolDescription
inspect_sslFull TLS inspection for a single domain (cert + cipher + protocol + HSTS)
inspect_ssl_bulkInspects multiple domains in parallel
check_cert_expiryChecks certificate expiry dates for N domains
get_cert_infoDetailed certificate info for a domain (fingerprint, SAN, chain, serial number)

Example Usage

You can ask Claude:

"Is example.com's SSL certificate valid?"

"When do these domains' certificates expire: example.com, api.example.com, shop.example.com"

"Is example.com using a weak cipher suite?"

Example Output

┌─ example.com:443│  Protocol  : TLSv1.3│  Cipher    : TLS_AES_256_GCM_SHA384 (256 bit)│  Chain     : depth=2 valid=yes│  Cert CN   : example.com│  Validity  : Mar 15 2024 → Jun 13 2024 (expires in 45 days)│  SANs      : example.com, www.example.com│  Issuer    : Let's Encrypt│  SHA-256   : AA:BB:CC:DD:...│  HSTS      : enabled (max-age=31536000, includeSubdomains)│  ✅ No security issues found

Security Findings

FindingSeverityDescription
CERT_EXPIRED🔴 CriticalCertificate has expired
CERT_EXPIRY_CRITICAL🔴 Critical< 7 days remaining
CERT_EXPIRY_SOON🟠 High< 21 days remaining (ACME clients renew at 30: renewal is failing)
CERT_EXPIRY_WARN🟡 Medium< 30 days remaining
HOSTNAME_MISMATCH🔴 CriticalThe certificate is not valid for the host
CERT_REVOKED🔴 CriticalThe certificate has been revoked
CERT_SELF_SIGNED🟠 HighSelf-signed certificate
CERT_CHAIN_INCOMPLETE🟠 HighThe server does not send its intermediate certificate
CERT_CHAIN_INVALID🟠 HighOther chain validation error
WEAK_KEY🟠 High / 🔴 CriticalRSA key under 2048 bits (critical under 1024), EC key under 256 bits
WEAK_SIGNATURE🟠 HighLeaf or intermediate signed with SHA-1 or MD5
CERT_NO_SAN🟡 MediumNo Subject Alternative Name
DEPRECATED_PROTOCOL🟠 HighThe server still accepts TLS 1.0 or 1.1 (probe)
OBSOLETE_PROTOCOL🔴 CriticalSSLv2 or SSLv3
WEAK_CIPHER🔴 Critical / 🟠 HighAccepts NULL/EXPORT/RC4 (critical) or 3DES (high) suites (probe)
WEAK_DH🟠 High / 🔴 CriticalDiffie-Hellman group under 2048 bits (critical under 1024) (probe)
NO_FORWARD_SECRECY🟡 MediumAccepts RSA key exchange ciphers (probe)
NO_HSTS🟡 MediumNo HSTS header found
HSTS_SHORT_MAX_AGE🔵 Lowmax-age < 15552000s
NO_TLS13🔵 LowTLS 1.3 not supported (probe)
NO_OCSP_STAPLING🔵 LowNo stapled OCSP response
NO_CAA🔵 LowNo CAA DNS record for the domain or a parent

Probes. One default handshake lands on the best protocol and cipher both sides share, so a server that also accepts TLS 1.0 or RSA key exchange looks fine. inspect_ssl and the CLI therefore make a few extra handshakes, each offering only the thing under test (TLS 1.0, TLS 1.1, TLS 1.3, RSA key exchange, DHE, weak cipher families). Weak families the runtime's own OpenSSL cannot offer (Node 22 builds have no 3DES/RC4/EXPORT) are listed as not tested rather than passed. --no-probes / probes: false skips them; inspect_ssl_bulk leaves them off unless asked.


CLI — CI/CD Integration

In addition to MCP server mode, this can also be used directly as a CLI:

bash
# Full TLS inspection for a single domainnpx @guardbee/mcp-ssl-inspector inspect example.com
# Multiple domainsnpx @guardbee/mcp-ssl-inspector inspect example.com api.example.com shop.example.com
# Custom portnpx @guardbee/mcp-ssl-inspector inspect example.com:8443
# Certificate expiry checknpx @guardbee/mcp-ssl-inspector expiry example.com api.example.com
# Fail only on criticalnpx @guardbee/mcp-ssl-inspector inspect example.com --fail-on=critical
# JSON outputnpx @guardbee/mcp-ssl-inspector inspect example.com --format=json

Exit codes: 0 = no issues · 1 = findings above threshold / expired cert · 2 = error

Configuration via guardbee.yml

Create a guardbee.yml at your project root to persist CLI flags. CLI flags always override file settings.

yaml
ssl-inspector:  fail-on: high          # critical | high | medium | low  port: 443  hosts:                 # used when no domain is given on the CLI    - example.com    - api.example.com    - shop.example.com

See guardbee.example.yml for a sample file.

GitHub Actions — Post-Deployment Check

yaml
name: SSL Checkon:  workflow_run:    workflows: ["Deploy"]    types: [completed]
jobs:  ssl-check:    runs-on: ubuntu-latest    steps:      - name: Inspect SSL certificate        run: npx @guardbee/mcp-ssl-inspector inspect ${{ vars.DOMAIN }} --fail-on=high
      - name: Check cert expiry (warn if < 30 days)        run: npx @guardbee/mcp-ssl-inspector expiry ${{ vars.DOMAIN }}

Scheduled Expiry Monitor

yaml
name: Cert Expiry Monitoron:  schedule:    - cron: "0 9 * * 1"  # Every Monday at 09:00
jobs:  expiry:    runs-on: ubuntu-latest    steps:      - name: Check certificate expiry dates        run: |          npx @guardbee/mcp-ssl-inspector expiry \            example.com \            api.example.com \            shop.example.com \            --format=json

GitLab CI

yaml
ssl-inspect:  image: node:20  script:    - npx @guardbee/mcp-ssl-inspector inspect $DOMAIN --fail-on=high  environment:    name: production  only:    - main

Development

bash
npm installnpm test          # 12 unit testsnpm run build     # TypeScript compile

License

MIT — GuardBee

Feedback

Questions, ideas, or a false positive? Start a thread in GitHub Discussions or open an issue. If GuardBee is useful to you, a ⭐ on the repository helps others find it.

来源:packages/ssl-inspector/README.md,提交 bc5997d

工具

4

inspect_ssl

Inspect TLS certificate, cipher suite, and protocol configuration for a single domain

输入参数host必填portprobescheckHsts

inspect_ssl_bulk

Inspect TLS configuration for multiple domains in parallel

输入参数porthosts必填probes

check_cert_expiry

Check certificate expiry for one or more domains and highlight certificates expiring soon

输入参数hosts必填warnDays

get_cert_info

Get detailed certificate information for a domain including fingerprint, SANs, and issuer chain

输入参数host必填port

版本历史

3
  1. v0.5.1最新Oct 30, 2026
  2. v0.4.2Oct 22, 2026
  3. v0.3.1Oct 13, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分