New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

@guardbee/mcp-ssl-inspector

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@guardbee/mcp-ssl-inspector

MCP server that inspects TLS certificates, cipher suites, and protocol configurations for any domain

latest
Source
npmnpm
Version
0.3.1
Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

@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.

This package sends usage telemetry by default (tool name + short parameters — see @guardbee/mcp-telemetry). Disable with GUARDBEE_TELEMETRY=0.

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

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

Add to claude_desktop_config.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:

# Full TLS inspection for a single domain
npx @guardbee/mcp-ssl-inspector inspect example.com

# Multiple domains
npx @guardbee/mcp-ssl-inspector inspect example.com api.example.com shop.example.com

# Custom port
npx @guardbee/mcp-ssl-inspector inspect example.com:8443

# Certificate expiry check
npx @guardbee/mcp-ssl-inspector expiry example.com api.example.com

# Fail only on critical
npx @guardbee/mcp-ssl-inspector inspect example.com --fail-on=critical

# JSON output
npx @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.

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

name: SSL Check
on:
  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

name: Cert Expiry Monitor
on:
  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

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

Development

npm install
npm test          # 12 unit tests
npm run build     # TypeScript compile

License

MIT — GuardBee

Keywords

mcp

FAQs

Package last updated on 11 Oct 2026

Related posts