sectora

Threat intel + your scans/findings/Shield posture. CVE, EPSS, KEV, package vuln lookup, DAST.

Should I use this

Quality & Safety

A
Description quality
97%
Schema completeness
92%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,834Tokens (tool definitions)
~811 BTypical response size
Moderate attention impact (1.43% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "sectora": {
      "url": "https://mcp.sectora.io/mcp"
    }
  }
}

Remote endpoints

https://mcp.sectora.io/mcpstreamable-http

What it can do

Tool inventory

Tools (14)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢lookup_cve(cve_id)

Get full threat intelligence enrichment for a CVE including EPSS score, CISA KEV status, public exploits, Nuclei templates, risk level, and risk factors. Input must be a valid CVE ID.

Input Schema

{
  "type": "object",
  "properties": {
    "cve_id": {
      "type": "string",
      "description": "CVE identifier in format CVE-YYYY-NNNNN (e.g., CVE-2024-3400)",
      "pattern": "^CVE-\\d{4}-\\d{4,}$",
      "maxLength": 20
    }
  },
  "required": [
    "cve_id"
  ]
}
🟢assess_tech_risk(technologies)

Assess security risk for a list of technologies. Returns known CVEs affecting each technology with severity breakdown. Input: comma-separated technology names only.

Input Schema

{
  "type": "object",
  "properties": {
    "technologies": {
      "type": "string",
      "description": "Comma-separated list of technology names (e.g., \"Apache HTTP Server, OpenSSL, nginx\"). Max 50 technologies.",
      "pattern": "^[a-zA-Z0-9.,\\s\\-/()@]+$",
      "maxLength": 2000
    }
  },
  "required": [
    "technologies"
  ]
}
🟢search_cves(query, severity, is_kev, has_exploit)

Search for CVEs by keyword, severity, or other filters. Query must be alphanumeric text.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search keyword (CVE ID, technology name, or description)",
      "maxLength": 200
    },
    "severity": {
      "type": "string",
      "description": "Filter by severity",
      "enum": [
        "CRITICAL",
        "HIGH",
        "MEDIUM",
        "LOW"
      ]
    },
    "is_kev": {
      "type": "string",
      "description": "Only show CVEs in CISA KEV catalog",
      "enum": [
        "true",
        "false"
      ]
    },
    "has_exploit": {
      "type": "string",
      "description": "Only show CVEs with public exploits",
      "enum": [
        "true",
        "false"
      ]
    }
  },
  "required": [
    "query"
  ]
}
🟢get_kev_recent(days)

Get recently added entries to the CISA Known Exploited Vulnerabilities (KEV) catalog.

Input Schema

{
  "type": "object",
  "properties": {
    "days": {
      "type": "string",
      "description": "Number of days to look back (1-365, default: 30)",
      "pattern": "^\\d{1,3}$",
      "maxLength": 3
    }
  }
}
🟢get_trending_cves(limit)

Get currently trending CVEs based on recent KEV additions, high EPSS scores, and exploit availability.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "string",
      "description": "Maximum results to return (1-100, default: 20)",
      "pattern": "^\\d{1,3}$",
      "maxLength": 3
    }
  }
}
🟢get_weaponization_score(cve_id)

Get the weaponization score (0-100) for a CVE. Factors in EPSS, KEV status, exploit availability, Nuclei templates, and CVSS. Input must be a valid CVE ID.

Input Schema

{
  "type": "object",
  "properties": {
    "cve_id": {
      "type": "string",
      "description": "CVE identifier in format CVE-YYYY-NNNNN (e.g., CVE-2024-3400)",
      "pattern": "^CVE-\\d{4}-\\d{4,}$",
      "maxLength": 20
    }
  },
  "required": [
    "cve_id"
  ]
}
⚪lookup_ip_reputation(ip)

Look up community IP reputation from Sectora Shield WAF network. Shows if an IP has been reported for attacks. Accepts IPv4 or IPv6 (the Shield network sees both).

Input Schema

{
  "type": "object",
  "properties": {
    "ip": {
      "type": "string",
      "description": "IPv4 (e.g., 1.2.3.4) or IPv6 (e.g., 2606:4700::1) address to look up",
      "pattern": "^(\\d{1,3}(\\.\\d{1,3}){3}|[0-9A-Fa-f:]{2,45})$",
      "maxLength": 45
    }
  },
  "required": [
    "ip"
  ]
}
🟢get_threat_stats

Get statistics about the Sectora threat intelligence database including counts of EPSS scores, KEV entries, Nuclei templates, and exploits. No input required.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢list_my_findings(severity, status, domain, limit)

List the API key owner's open security findings across all scans. Use this to answer "what's my current exposure?" Filter by severity, status, or domain. Returns finding summaries; call get_scan for full detail. Requires API key.

Input Schema

{
  "type": "object",
  "properties": {
    "severity": {
      "type": "string",
      "description": "Comma-separated severities to include: critical, high, medium, low, info",
      "maxLength": 50
    },
    "status": {
      "type": "string",
      "description": "Filter by confirmation status",
      "enum": [
        "open",
        "confirmed"
      ]
    },
    "domain": {
      "type": "string",
      "description": "Limit to a single domain (e.g., app.example.com)",
      "maxLength": 253
    },
    "limit": {
      "type": "string",
      "description": "Max findings (1-100, default: 25)",
      "pattern": "^\\d{1,3}$",
      "maxLength": 3
    }
  }
}
🟢list_my_scans(limit, status)

List the API key owner's recent scans with summary counts. Requires API key.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "string",
      "description": "Max scans (1-100, default: 25)",
      "pattern": "^\\d{1,3}$",
      "maxLength": 3
    },
    "status": {
      "type": "string",
      "description": "Filter by status (queued, running, completed, failed)",
      "maxLength": 20
    }
  }
}
🟢get_scan(scan_id)

Get a scan with all its findings (full detail: title, description, evidence, remediation, CVSS). Requires API key.

Input Schema

{
  "type": "object",
  "properties": {
    "scan_id": {
      "type": "string",
      "description": "Scan UUID",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
      "maxLength": 36
    }
  },
  "required": [
    "scan_id"
  ]
}
🟢scan_url(url, profile, confirm)

Kick off a DAST security scan against a public URL the API key owner controls. Two-step flow: first call returns a preview (target, profile, ETA, quota remaining); confirm by calling again with confirm:true to actually start the scan. Returns scan_id; poll status with get_scan. Domain must be verified in the Sectora account. Daily quota: 25 scans/24h per user. Requires API key.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Full URL to scan (must start with http:// or https://)",
      "maxLength": 2048
    },
    "profile": {
      "type": "string",
      "description": "Scan profile: quick (~2 min), standard (~10 min), deep (~30 min)",
      "enum": [
        "quick",
        "standard",
        "deep"
      ]
    },
    "confirm": {
      "type": "string",
      "description": "Set to \"true\" to actually execute the scan. Without this, the call returns a preview only.",
      "enum": [
        "true",
        "false"
      ]
    }
  },
  "required": [
    "url"
  ]
}
🟢get_my_posture(domain)

Get Shield WAF posture score and breakdown for a domain registered under this account. Returns 0-100 score, letter grade, per-component breakdown (origin lock, virtual patching, TLS, etc.), and edge_health (whether Shield is actually intercepting traffic). Requires API key.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "Domain registered under your Sectora account",
      "pattern": "^[a-z0-9.-]+$",
      "maxLength": 253
    }
  },
  "required": [
    "domain"
  ]
}
🟢assess_dependency(name, version, ecosystem)

Check a single package@version for known vulnerabilities via OSV.dev (npm, PyPI, Go, Maven, NuGet, RubyGems, Packagist, crates.io, etc.). Returns advisories with CVE IDs, severity, fixed versions, and references. Free tier eligible.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Package name (e.g., \"lodash\", \"django\", \"github.com/gorilla/mux\")",
      "maxLength": 200
    },
    "version": {
      "type": "string",
      "description": "Exact version (e.g., \"4.17.20\")",
      "maxLength": 50
    },
    "ecosystem": {
      "type": "string",
      "description": "Package ecosystem: npm, PyPI, Go, Maven, NuGet, RubyGems, Packagist, crates.io",
      "maxLength": 20
    }
  },
  "required": [
    "name",
    "version",
    "ecosystem"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded14 tools
verifiedversion not recorded14 tools