ScanMalware.com URL Scanner
Server Details
MCP server for ScanMalware.com URL scanning, malware detection, and analysis.
- Status
- Healthy
- Uptime
- 99.7% over 58 days
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
- Repository
- scanmalware/mcp-server
- GitHub Stars
- 0
- Server Listing
- scanmalware-mcp
TDQS
Scored across 128 tools
The tool set contains multiple duplicate pairs, such as search_js_fingerprint_by_bundler and search_jsfingerprints_by_bundler, which appear to do the same thing. Many other tools have overlapping purposes (e.g., numerous get_*_stats tools), making selection ambiguous for an agent.
Names are predominantly snake_case with consistent verb prefixes (get_, search_, submit_, run_, wait_), but tokenization of 'JS fingerprint' is inconsistent (js_fingerprint vs jsfingerprints, jsfingerprint vs js_fingerprinter2). This mixed convention reduces readability.
128 tools is far beyond the 25-tool threshold for 'too many', and the surface includes many redundant statistics and duplicate search endpoints. The count is extreme for a URL scanning service.
The surface covers scan submission, retrieval, search, reporting, and extensive analyzer results, stats, and CT/JS/TLS details. Minor gaps like a direct screenshot retrieval tool exist, but core workflows are well covered.
Available Tools
128 toolsfind_js_fingerprint_similar_by_hashFind JS Fingerprint Similar By HashRead-onlyIdempotentInspect
Find JavaScript files similar to the file with this content SHA-256, above threshold (default 0.7), up to limit results; exclude_exact_matches drops identical copies. Useful for finding modified versions of a known script.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| threshold | No | ||
| content_sha256 | Yes | ||
| exclude_exact_matches | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_ai_analysisGet AI AnalysisRead-onlyIdempotentInspect
Get the AI analysis of one scan: classification (LEGITIMATE to CONFIRMED_SCAM), scam type, risk score, confidence, impersonated brand and the key evidence behind it. The analysis is produced a few minutes after the scan completes and returns not found until then. It can disagree with the scanner's own security verdict. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_analyzer_resultsGet Analyzer ResultsRead-onlyIdempotentInspect
List which analysis modules ran for one scan (for example JavaScript fingerprinting and AI analysis), with each module's status, success flag and timing. Useful for checking why a result is missing. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_analyzer_statsGet Analyzer StatsRead-onlyIdempotentInspect
Get platform-wide statistics for the scan analysis modules: the modules and their run counts. Describes the service, not a particular scan.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_api_rootGet API RootRead-onlyIdempotentInspect
Get the ScanMalware API's name, version, status, main endpoints and feature list.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_bot_protectionGet Bot ProtectionRead-onlyIdempotentInspect
Get the bot-protection and CAPTCHA services detected on a scanned page (for example Cloudflare Turnstile), with a detected flag. Phishing kits often use these to hide from scanners. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_capabilities_by_dateGet Capabilities By DateRead-onlyIdempotentInspect
Get the size of ScanMalware's detection content (indicators, detection rules, ClamAV signatures) on a given date (scan_date, YYYY-MM-DD).
| Name | Required | Description | Default |
|---|---|---|---|
| scan_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_clipboard_eventsGet Clipboard EventsRead-onlyIdempotentInspect
Get the clipboard writes the page attempted while it was scanned, with the event count and whether collection ran. Empty with an explanatory note when the page wrote nothing. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_clipboard_statsGet Clipboard StatsRead-onlyIdempotentInspect
Get clipboard and pastejacking statistics across the archive: event totals, detections and daily activity.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_cpe_by_scanGet CPE By ScanRead-onlyIdempotentInspect
List the CPE identifiers (product and version names in the NVD format) derived from the technologies detected on a scanned page, with their source. Useful for matching against vulnerability data. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_cpe_statsGet CPE StatsRead-onlyIdempotentInspect
Get CPE statistics across the archive: scans with CPEs, unique CPEs, total detections, top vendors and products.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_ct_certificatesGet CT CertificatesRead-onlyIdempotentInspect
Get the certificates issued for a domain according to Certificate Transparency logs, with a found flag.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_ct_dns_recordsGet CT DNS RecordsRead-onlyIdempotentInspect
List subdomains of a domain found through Certificate Transparency, with their DNS records (type, IP addresses, TTL) and when they were seen. Useful for finding the other hosts of a domain.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_ct_domains_by_ipGet CT Domains By IPRead-onlyIdempotentInspect
List domains that Certificate Transparency and DNS data associate with an IP address, with record counts and the total.
| Name | Required | Description | Default |
|---|---|---|---|
| ip_address | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_ct_similar_domainsGet CT Similar DomainsRead-onlyIdempotentInspect
Find domains with names similar to a domain in Certificate Transparency data (for example lookalikes and typosquats), each with a certificate count and the kind of similarity.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_ct_timelineGet CT TimelineRead-onlyIdempotentInspect
Get the certificate history of a domain from Certificate Transparency: when certificates were issued and when the certificate changed.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_domain_historyGet Domain HistoryRead-onlyIdempotentInspect
Get the scan history of a domain with the total count and the scans, paginated with page and limit.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| domain | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_domain_scansGet Domain ScansRead-onlyIdempotentInspect
List the recent scans of a domain and its subdomains, newest first, up to limit; status filters by scan status. Each row has matched_on: 'url' when the scan was submitted for a host under this domain, and only 'final_url' when another site redirected there. A verdict on a final_url-only row belongs to the submitted host, not to this domain.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| domain | Yes | ||
| status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_domain_statsGet Domain StatsRead-onlyIdempotentInspect
Get scan counts for a domain: total, unique, completed and failed scans, first and latest scan, and scans in the last 24 hours, 7 days and 30 days.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_faviconGet FaviconARead-onlyIdempotentInspect
Get the favicon recorded for a scan_id: its size, MD5 and SHA-256 hashes, and the image base64-encoded. found is false when no favicon is stored for the scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: the exact payload shape and the 'found is false when no favicon is stored' missing-data signal, which tells the agent how to interpret an empty result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action and resource, then the return contents, then the empty-result caveat. Every clause earns its place with no padding, though a semicolon-heavy single sentence is slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description needn't document return values in full, yet it still enumerates them, and it covers the empty-result case explicitly. An agent has enough to invoke correctly; only alternative-tool routing is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter is scan_id and the schema has 0% description coverage, so the schema itself says nothing. The description names the parameter and ties it to the scan scope, but adds no format, source, or validity details (e.g., where scan_id comes from, whether it must be an existing scan). Adequate but thin.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the favicon recorded for a scan_id') and enumerates the returned fields (size, MD5, SHA-256, base64 image), so the agent knows exactly what comes back. It does not explicitly distinguish itself from near-siblings like get_favicon_stats or search_by_favicon/search_favicon_mmh3, though 'recorded for a scan_id' implies per-scan retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given. The description never says to use this rather than get_favicon_stats (aggregates) or search_by_favicon / search_favicon_mmh3 (reverse lookup by hash), which are the obvious alternatives in this large sibling set. The scan-scoped nature is only implied by the parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_favicon_statsGet Favicon StatsRead-onlyIdempotentInspect
Get favicon statistics across the archive: total favicons, those seen in the last 24 hours and the most common hashes with sample URLs. This aggregate query can take up to 90 seconds by default.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_healthGet HealthRead-onlyIdempotentInspect
Check whether the ScanMalware API is up. Returns the service status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_ids_alertsGet IDS AlertsRead-onlyIdempotentInspect
Get intrusion detection (IDS) alerts raised on the network traffic recorded during one scan, with a severity breakdown and total count. Empty when no rule fired. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_ip_statsGet IP StatsRead-onlyIdempotentInspect
Get statistics for an IP address across the archive: total scans, unique URLs, first and last seen, geolocation, ASN and organisation, BGP and DNS data; paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| ip_address | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_jarm_signaturesGet JARM SignaturesRead-onlyIdempotentInspect
Get the JARM TLS server fingerprints measured for the hosts in one scan, with whether each matches a known signature. A shared JARM often points to the same server software or hosting platform, so it is a weak pivot on its own. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_jarm_statsGet JARM StatsRead-onlyIdempotentInspect
Get JARM statistics across the archive, including the most common signatures. Common signatures usually belong to large hosting platforms.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_jsfingerprintGet JS FingerprintRead-onlyIdempotentInspect
Get one JavaScript fingerprint record by its numeric fingerprint_id: the script URL, scan, hashes, metrics and ML vector information; include_functions and include_http_headers add more detail.
| Name | Required | Description | Default |
|---|---|---|---|
| fingerprint_id | Yes | ||
| include_functions | No | ||
| include_http_headers | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_jsfingerprint_bundle_statsGet JS Fingerprint Bundle StatsRead-onlyIdempotentInspect
Get statistics on bundled JavaScript across the archive for a date range: share of bundled files and the breakdown by bundler (webpack, vite, rollup and so on) and module format.
| Name | Required | Description | Default |
|---|---|---|---|
| to_date | No | ||
| from_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_jsfingerprint_hash_prevalenceGet JS Fingerprint Hash PrevalenceRead-onlyIdempotentInspect
For each script in one scan, report how common its hash is across the archive, which separates widely used library files from rare, page-specific code. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_jsfingerprint_library_statsGet JS Fingerprint Library StatsRead-onlyIdempotentInspect
Get statistics on JavaScript library detection across the archive for a date range: total fingerprints, detection rate and the most common libraries.
| Name | Required | Description | Default |
|---|---|---|---|
| to_date | No | ||
| from_date | No | ||
| min_count | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_js_fingerprintsGet JS FingerprintsRead-onlyIdempotentInspect
List the JavaScript files a scanned page loaded, each with its fingerprint: hashes (SHA-256, SHA-1, MD5, normalized and fuzzy), size metrics, detected library and bundler. The include_* options add function lists, HTTP headers or ML vector details. Useful for collecting script hashes to search for elsewhere. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes | ||
| include_functions | No | ||
| include_http_headers | No | ||
| include_vectors_info | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_jsfingerprint_similarGet JS Fingerprint SimilarRead-onlyIdempotentInspect
Find JavaScript files whose fingerprint is similar to the one with this fingerprint_id, above threshold (0 to 1), paginated with limit and offset. exclude_same_scan drops matches from the same scan. Useful for finding variants of one script.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| threshold | No | ||
| fingerprint_id | Yes | ||
| exclude_same_scan | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_jsfingerprint_similarity_countsGet JS Fingerprint Similarity CountsRead-onlyIdempotentInspect
Count how many archived JavaScript files are similar to the one with this fingerprint_id, per similarity model (composite, CodeBERT, GraphCodeBERT, AST and handcrafted features), capped at max_count. This query can take up to 90 seconds by default.
| Name | Required | Description | Default |
|---|---|---|---|
| max_count | No | ||
| threshold | No | ||
| fingerprint_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_jsfingerprint_sourceGet JS Fingerprint SourceRead-onlyIdempotentInspect
Get the stored source code of one JavaScript file by its numeric fingerprint_id, with its SHA-256, URL and length. Source can be long.
| Name | Required | Description | Default |
|---|---|---|---|
| fingerprint_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_js_library_inventoryGet JS Library InventoryRead-onlyIdempotentInspect
List the JavaScript libraries and versions detected across the archive, with how many scans used each; library filters to one library and min_count drops rare versions. Identifiers are lowercase names such as 'react', 'jquery' or 'nextjs'.
| Name | Required | Description | Default |
|---|---|---|---|
| library | No | ||
| min_count | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_js_runtime_behaviourGet Runtime JS BehaviourRead-onlyIdempotentInspect
Get the runtime JavaScript behaviour recorded for one scan: overall risk, risk scores, number of scripts, eval and Function-constructor calls and high-risk events, with a behavioural signature and composite hash. include_detailed_events adds the individual events. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes | ||
| include_detailed_events | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_js_runtime_coverageGet Runtime JS Analysis CoverageRead-onlyIdempotentInspect
Get how many scans have runtime JavaScript fingerprints: coverage percentage and the number of unique composite hashes and signatures. Describes the service, not a scan.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_js_runtime_healthCheck Runtime JS Analysis HealthRead-onlyIdempotentInspect
Check whether the runtime JavaScript analysis service is up, with its version.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_js_runtime_statsGet Runtime JS Behaviour StatsRead-onlyIdempotentInspect
Get platform-wide statistics for runtime JavaScript analysis: risk distribution, averages and totals of eval calls and high-risk events. Describes the service, not a scan.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_js_segments_by_scanGet JS Segments By ScanRead-onlyIdempotentInspect
List the code segments (functions and blocks) extracted from one scan's JavaScript, each with location, length, snippet and hashes; script_url narrows to one file, paginated with limit and offset. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| scan_id | Yes | ||
| script_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_js_segments_suspiciousGet JS Segments SuspiciousRead-onlyIdempotentInspect
List the JavaScript code segments from one scan scored as suspicious, above min_risk_score, with location, snippet and risk details; paginated with limit and offset. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| scan_id | Yes | ||
| min_risk_score | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_js_segments_unknownGet JS Segments UnknownRead-onlyIdempotentInspect
List the JavaScript code segments from one scan that match no known library, at least min_code_length long; these are usually the page's own or a kit's code. Paginated with limit and offset. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| scan_id | Yes | ||
| min_code_length | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_latest_capabilitiesGet Latest CapabilitiesRead-onlyIdempotentInspect
Get the current size of ScanMalware's detection content: indicator count, malware detection rules and ClamAV signatures.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_malware_by_scanGet Malware By ScanRead-onlyIdempotentInspect
Get the malware detections for files the scanned page delivered, with threat names, detection counts and the detection source. Empty when nothing was detected. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_malware_statsGet Malware StatsRead-onlyIdempotentInspect
Get malware detection statistics across the archive: overall and last-24-hour counts, top threats and hourly trend.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_netlogGet Network Log InfoRead-onlyIdempotentInspect
Describe the network log (Chrome NetLog) for a scan_id: whether one exists, its size, and its encoding. The log itself is not returned - these are routinely tens of megabytes gzipped.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_ocr_by_scanGet OCR By ScanRead-onlyIdempotentInspect
Get the text read by OCR from the scan's screenshot, with language, confidence, word and character counts and any regions flagged as suspicious. Useful when page text is drawn as images. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_ocr_statsGet OCR StatsRead-onlyIdempotentInspect
Get OCR statistics across the archive: scans with OCR text, average confidence and length, language distribution and daily counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_open_graphGet Open GraphRead-onlyIdempotentInspect
Get the Open Graph and Twitter card metadata the scanned page declared (title, description, image, site name). Phishing pages often copy a brand's metadata. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_pastejackingGet PastejackingRead-onlyIdempotentInspect
Get pastejacking findings for one scan: attempts by the page to replace what a visitor copies, a common trick for making victims paste malicious commands. Includes a detected flag and a note. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_pcap_metadataGet PCAP MetadataRead-onlyIdempotentInspect
Describe the packet capture (PCAP) recorded during one scan: whether it exists, its size, compression and content type. The capture itself is not returned. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_platform_statsGet Platform StatsRead-onlyIdempotentInspect
Get the current scan queue length, running scans and scans completed in the last 24 hours by visibility.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_popular_technologiesGet Popular TechnologiesRead-onlyIdempotentInspect
List the most frequently detected web technologies over the last days (paginated).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| page | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_rdapGet RDAPRead-onlyIdempotentInspect
Get registration data (RDAP) for the scanned domain and its IP addresses: registrar, registration and expiry dates, domain age, nameservers and status. A very young domain is a common phishing signal. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_recent_scansGet Recent ScansRead-onlyIdempotentInspect
List the most recent public scans, newest first (paginated with page and limit). Each row has the scan ID, URL, status, visibility and submission time. Unlisted and private scans are never included.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_recent_threatsGet Recent ThreatsRead-onlyIdempotentInspect
List malware threats detected in scans during the last hours (default window set by the API), with totals and grouping by threat.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_recent_yara_threatsGet Recent YARA ThreatsRead-onlyIdempotentInspect
List YARA rule matches from scans in the last hours, each with the scan, URL, rule, category, severity and confidence.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_safe_browsingGet Safe BrowsingRead-onlyIdempotentInspect
Get Google Safe Browsing threats found for the URLs in one scan, with a has_threats flag. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_safe_browsing_statsGet Safe Browsing StatsRead-onlyIdempotentInspect
Get Google Safe Browsing statistics across the archive: total threats, threats in the last 7 days, scans with threats and threat types.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_scan_iocGet Scan IOCRead-onlyIdempotentInspect
Check one scan against threat-intelligence indicator feeds: matching IP addresses and domains the page contacted, the threat types, and a summary of total and unique matches. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_scan_progressGet Scan ProgressRead-onlyIdempotentInspect
Get the progress of a running scan: current step, total steps, step name, percentage and status. Useful for checking whether a scan has finished before reading its results. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_scan_reportsGet Scan ReportsRead-onlyIdempotentInspect
List the user reports and votes filed about one scan (for example marked safe or malicious), with the total count; report_type filters by kind. Empty when nobody has reported the scan. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes | ||
| report_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_scan_resultGet Scan ResultRead-onlyIdempotentInspect
Get the full result document of one scan: URLs and redirects, page title, load times, links, network requests, IP addresses, JavaScript files, TLS, fuzzy hashes, screenshot hashes, favicon and the security verdict. The response is large; the compact summary is enough for a verdict. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_scan_summaryGet Scan SummaryRead-onlyIdempotentInspect
Get a compact summary of one scan: submitted URL, final URL after redirects, status, completion time and the security verdict (verdict text, risk level, confidence and risk factors). Useful as the first look at a scan; the verdict is empty for a few seconds after a scan completes. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_screenshot_statsGet Screenshot StatsRead-onlyIdempotentInspect
Get screenshot statistics across the archive: total screenshots, hash coverage and the distribution of perceptual hash types.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_technologies_by_scanGet Technologies By ScanRead-onlyIdempotentInspect
List the web technologies detected on a scanned page (frameworks, CMS, CDN, analytics and so on), with versions where known. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_technology_combinationsGet Technology CombinationsRead-onlyIdempotentInspect
List the technologies most often detected together with a given technology, with counts; min_occurrences drops rare pairs; paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| tech_name | Yes | ||
| min_occurrences | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_technology_statsGet Technology StatsRead-onlyIdempotentInspect
Get technology detection statistics across the archive: unique technologies, total detections and counts per category. This aggregate query can take up to 90 seconds by default.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_tls_asn1Get TLS ASN1Read-onlyIdempotentInspect
Get the raw ASN.1 structure of the TLS certificate from one scan, for detailed certificate inspection. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_tls_detailsGet TLS DetailsRead-onlyIdempotentInspect
Get the TLS certificate the scanned site presented: subject, issuer, validity dates, whether it was valid or expired, and related details. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_top_tracking_keysGet Top Tracking KeysRead-onlyIdempotentInspect
List the tracking and site keys seen on the most sites (analytics IDs, CAPTCHA keys and so on), with the tracker name, category and site count; tracker_type filters by kind.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| tracker_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_yara_by_scanGet YARA By ScanRead-onlyIdempotentInspect
Get YARA rule matches for one scan, with a summary by severity (critical, high, medium, low) and category. Empty when no rule matched. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_yara_matchesGet YARA MatchesRead-onlyIdempotentInspect
Get the YARA rule matches recorded for one scan, with the matching rules and a summary by severity and category. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_yara_statsGet YARA StatsRead-onlyIdempotentInspect
Get YARA statistics across the archive: overall and last-24-hour matches, severity and category distribution and top threats.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
run_js_differential_analysisRun JS Differential AnalysisRead-onlyIdempotentInspect
Compare the JavaScript of one scan against known libraries and report which code segments match a library, which are unknown and which look suspicious, with a per-library breakdown. Matches below min_confidence (default 0.8) are not counted; known library code is excluded unless include_known_libraries is true. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes | ||
| min_confidence | No | ||
| include_known_libraries | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_ai_classificationSearch AI ClassificationRead-onlyIdempotentInspect
List scans whose AI analysis gave a specific classification: LEGITIMATE, LOW_RISK, MODERATE_RISK, HIGH_RISK or CONFIRMED_SCAM. Each result has the URL, title, submission time and the analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| classification | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_ai_high_riskSearch AI High RiskRead-onlyIdempotentInspect
List scans that the AI analysis rated high risk, optionally above min_risk_score and min_confidence, each with URL, title and the analysis. min_risk_score is on the AI's 0-10 risk scale (default 7) and min_confidence is a 0-100 percentage (default 70).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| min_confidence | No | ||
| min_risk_score | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_ai_scam_typeSearch AI Scam TypeRead-onlyIdempotentInspect
List scans whose AI analysis named a given scam type, such as 'Phishing', each with URL, title, submission time and the analysis (verdict, classification, risk score). The match is on the scam type text the analysis produced.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| scam_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_analyzer_high_riskSearch Analyzer High RiskRead-onlyIdempotentInspect
List scans that the security analyzer scored as high risk, highest first (paginated), each with URL, risk score, verdict, confidence and analysis time. min_risk_score raises the threshold.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| min_risk_score | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_by_asnSearch By ASNRead-onlyIdempotentInspect
Get what the archive knows about an autonomous system (ASN number, without 'AS'): organisation, total scans, unique URLs, first and last seen and BGP prefixes; paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| asn_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_by_faviconSearch By FaviconBRead-onlyIdempotentInspect
Search scans by favicon hash (paginated): a mmh3 hash by default, or the favicon's MD5 with hash_type='md5'.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| hash_type | No | mmh3 | |
| hash_value | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety and idempotency are covered structurally. The description adds the pagination behavior, which is genuine extra context, but says nothing about result ordering, match thresholds, or empty-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action and resource and packs the default/override hash-type rule into a trailing clause. No filler, nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and annotations cover the safety profile. What remains thin is parameter coverage: page/limit are undocumented and hash_value's expected encoding is unstated, which matters for a search tool where a malformed hash silently yields no results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does cover two of four parameters: hash_value (the favicon hash to match) and hash_type (mmh3 default vs. MD5). It does not explain page/limit semantics beyond the word 'paginated', nor the expected format of hash_value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search scans by favicon hash') plus the two supported hash algorithms, so the agent knows exactly what is being queried. However, it never distinguishes itself from the near-duplicate sibling 'search_favicon_mmh3' or from 'get_favicon', which is a real ambiguity given the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the mechanism but gives no when-to-use guidance, no exclusions, and no routing to alternatives such as search_favicon_mmh3 (which appears to cover the same mmh3 case). The agent must infer the selection context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_fuzzy_hashSearch By Fuzzy HashRead-onlyIdempotentInspect
List scans whose page content has a similar fuzzy hash (hash_type tlsh, ssdeep or sdhash; the value comes from a scan result), each with URL, title and time; paginated. Useful for finding near-identical copies of a page.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| hash_type | Yes | ||
| hash_value | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_by_ipSearch By IPRead-onlyIdempotentInspect
List scans of pages served from an IP address (paginated), each with scan ID, URL and time. On shared hosting and CDNs an IP serves many unrelated sites, so a match is not evidence of a connection.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| ip_address | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_by_jarmSearch By JARMRead-onlyIdempotentInspect
List scans whose server presented this JARM TLS fingerprint (paginated). Large hosting platforms share JARMs across many unrelated sites, so check what the matches have in common.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| jarm_signature | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_by_nameserverSearch By NameserverRead-onlyIdempotentInspect
List the scanned domains that use a given nameserver, with totals and counts per top-level domain. Useful for finding domains registered together.
| Name | Required | Description | Default |
|---|---|---|---|
| nameserver | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_by_registrarSearch By RegistrarRead-onlyIdempotentInspect
List scans of domains registered through a given registrar (paginated), with the total. Common registrars match very many domains.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| registrar_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_by_screenshot_hashSearch By Screenshot HashRead-onlyIdempotentInspect
List scans whose screenshot has this perceptual hash (hash_type ahash, phash, dhash, whash, color_hash or crop_resistant), optionally within similarity_threshold, each with URL, title and time; paginated. Useful for finding pages that look the same.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| hash_type | Yes | ||
| hash_value | Yes | ||
| similarity_threshold | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_cpeSearch CPERead-onlyIdempotentInspect
Find scans with a CPE identifier matching a pattern such as 'cpe:2.3:a:facebook:react' (paginated). Useful for finding sites running a given product.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| cpe_pattern | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_favicon_mmh3Search Favicon MMH3Read-onlyIdempotentInspect
List scans whose favicon has this mmh3 hash (the same convention as Shodan's http.favicon.hash), each with the page URL, title and favicon details; paginated. Phishing kits often reuse one favicon across many hosts.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| mmh3_hash | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_fingerprint_by_bundlerSearch JS Fingerprint By BundlerRead-onlyIdempotentInspect
Find JavaScript bundles built with a given bundler (webpack, vite, rollup, esbuild and so on), optionally by bundle format and detection confidence, with totals, format breakdown and average size; paginated with page and per_page.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No | ||
| bundler_type | Yes | ||
| bundle_format | No | ||
| min_confidence | No | ||
| include_libraries | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_fingerprint_by_cdnSearch JS Fingerprint By CDNRead-onlyIdempotentInspect
Find JavaScript served from a given CDN (for example 'cloudflare' or 'jsdelivr'), with totals, the top serving domains and cache status; unpinned_only keeps scripts loaded without a fixed version.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cdn_type | Yes | ||
| unpinned_only | No | ||
| cdn_cache_status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_fingerprint_by_fuzzy_hashSearch JS Fingerprint By Fuzzy HashRead-onlyIdempotentInspect
Find JavaScript files whose fuzzy hash is close to this one, above min_similarity, up to limit results. Fuzzy hashes match files that differ in small parts, such as a kit with a changed configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| fuzzy_hash | Yes | ||
| min_similarity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_fingerprint_by_librarySearch JS Fingerprint By LibraryRead-onlyIdempotentInspect
Find scanned JavaScript detected as a given library (for example 'react', 'jquery' or 'nextjs'; 'Next.js' is accepted for 'nextjs'), optionally one version or a version pattern, with a version breakdown and CDN distribution; paginated with page and per_page.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| version | No | ||
| per_page | No | ||
| library_name | Yes | ||
| min_confidence | No | ||
| version_pattern | No | ||
| include_cdn_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_fingerprint_by_library_versionSearch JS Fingerprint By Library VersionRead-onlyIdempotentInspect
Find scanned JavaScript detected as one exact library version, with the total and the matching scripts; include_deprecated and group_by_url adjust the results. Useful for finding sites running a vulnerable version.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| library | Yes | ||
| version | Yes | ||
| group_by_url | No | ||
| include_deprecated | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_fingerprint_by_md5Search JS Fingerprint By MD5Read-onlyIdempotentInspect
Look up a JavaScript file by MD5 across the archive and report its prevalence: total matches, unique scans, first and last seen, a prevalence label and the matching scripts; include_scans adds the scans, from_date and to_date limit the period.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| to_date | No | ||
| from_date | No | ||
| hash_value | Yes | ||
| include_scans | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_fingerprint_by_normalized_hashSearch JS Fingerprint By Normalized HashRead-onlyIdempotentInspect
Look up JavaScript by normalized hash (computed after whitespace and formatting are removed, so reformatted copies still match) and report prevalence: total matches, unique scans, first and last seen and the matching scripts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| to_date | No | ||
| from_date | No | ||
| hash_value | Yes | ||
| include_scans | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_fingerprint_by_serverSearch JS Fingerprint By ServerRead-onlyIdempotentInspect
Find JavaScript by the type of web server that served it (for example 'nginx' or 'microsoft'), with the matching scripts; include_headers adds the HTTP headers. The total can be a lower bound.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| server_type | Yes | ||
| include_headers | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_fingerprint_by_sha1Search JS Fingerprint By SHA1Read-onlyIdempotentInspect
Look up a JavaScript file by SHA-1 across the archive and report its prevalence: total matches, unique scans, first and last seen, a prevalence label and the matching scripts; include_scans adds the scans, from_date and to_date limit the period.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| to_date | No | ||
| from_date | No | ||
| hash_value | Yes | ||
| include_scans | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_fingerprint_by_sha256Search JS Fingerprint By SHA256Read-onlyIdempotentInspect
Look up a JavaScript file by SHA-256 across the archive and report its prevalence: total matches, unique scans, first and last seen, a prevalence label and the matching scripts; include_scans adds the scans, from_date and to_date limit the period. A rare hash shared by several phishing pages usually means one kit.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| to_date | No | ||
| from_date | No | ||
| hash_value | Yes | ||
| include_scans | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_fingerprint_obfuscatedSearch JS Fingerprint ObfuscatedRead-onlyIdempotentInspect
List scanned JavaScript scored as obfuscated, filtered by score range, classification and minimum code length; exclude_libraries drops known library code. min_score and max_score are obfuscation scores from 0 to 1 (defaults 0.7 and 1.0). Paginated with page and per_page.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No | ||
| max_score | No | ||
| min_score | No | ||
| classification | No | ||
| min_code_length | No | ||
| exclude_libraries | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_fingerprint_patternsSearch JS Fingerprint PatternsRead-onlyIdempotentInspect
List scanned JavaScript files that match code-pattern filters: has_eval, has_crypto, high_entropy, no_library and cdn_mismatch, where false selects files without the pattern and filters can be combined. With no filter given, has_eval=true is applied. Each result has the fingerprint ID, scan, script URL, code length, obfuscation score and the patterns detected.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| has_eval | No | ||
| has_crypto | No | ||
| no_library | No | ||
| cdn_mismatch | No | ||
| high_entropy | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_jsfingerprints_by_bundlerSearch JS Fingerprints By BundlerRead-onlyIdempotentInspect
Paginated list (limit and offset) of archived script fingerprints built with a given bundler, each with scan, page URL and script URL.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| bundler | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_jsfingerprints_by_fuzzy_hashSearch JS Fingerprints By Fuzzy HashRead-onlyIdempotentInspect
Paginated list (limit and offset) of archived script fingerprints whose fuzzy hash matches this value, each with scan, page URL and script URL. An empty list means no close match.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| fuzzy_hash | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_jsfingerprints_by_librarySearch JS Fingerprints By LibraryRead-onlyIdempotentInspect
Paginated list (limit and offset) of archived script fingerprints detected as a given library, each with scan, page URL, script URL and version.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| library | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_jsfingerprints_by_library_versionSearch JS Fingerprints By Library VersionRead-onlyIdempotentInspect
Paginated list (limit and offset) of archived script fingerprints detected as one library version, each with scan, page URL and script URL.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| library | Yes | ||
| version | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_jsfingerprints_by_md5Search JS Fingerprints By MD5Read-onlyIdempotentInspect
Paginated list (limit and offset) of archived script fingerprints with this MD5, each with scan, page URL, scan time, script URL and hashes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| hash_value | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_jsfingerprints_by_normalized_hashSearch JS Fingerprints By Normalized HashRead-onlyIdempotentInspect
Paginated list (limit and offset) of archived script fingerprints with this normalized hash (formatting-independent), each with scan, page URL and script URL.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| hash_value | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_jsfingerprints_by_sha1Search JS Fingerprints By SHA1Read-onlyIdempotentInspect
Paginated list (limit and offset) of archived script fingerprints with this SHA-1, each with scan, page URL, scan time, script URL and hashes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| hash_value | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_jsfingerprints_by_sha256Search JS Fingerprints By SHA256Read-onlyIdempotentInspect
Paginated list (limit and offset) of archived script fingerprints with this SHA-256, each with scan, page URL, scan time, script URL and hashes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| hash_value | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_malware_familiesSearch JS Malware FamiliesRead-onlyIdempotentInspect
List groups of scans whose runtime JavaScript behaves alike (possible malware families), with clusters of at least min_cluster_size scans (default 2) at similarity_threshold or above (0 to 1, default 0.95). When the service has clustering switched off, status is 'disabled' and no families are returned.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| min_cluster_size | No | ||
| similarity_threshold | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_obfuscationSearch JS ObfuscationRead-onlyIdempotentInspect
List scans by the obfuscation signals their runtime JavaScript showed, newest analysis first: overall risk, maximum and average risk score, eval and Function constructor calls and high-risk events. Optional filters are risk_level (such as 'high' or 'critical'), min_risk_score (0-100) and has_eval; with none, the most recently analysed scans are listed.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| has_eval | No | ||
| risk_level | No | ||
| min_risk_score | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_runtime_by_composite_hashSearch Runtime JS Behaviour by Composite HashRead-onlyIdempotentInspect
Find scans whose runtime JavaScript behaviour has this composite hash, each with the target URL, overall risk and time. The same composite hash across hosts usually means the same kit.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| composite_hash | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_runtime_by_signatureSearch Runtime JS Behaviour by SignatureRead-onlyIdempotentInspect
Find scans with this behavioural signature (for example 'setTimeout:30|fetch:4|complex'), each with the target URL, overall risk and time. An uncached query can take up to 90 seconds by default.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| signature | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_runtime_similarFind Similar Runtime JS BehaviourRead-onlyIdempotentInspect
Find scans whose runtime JavaScript behaviour is similar to this scan's, above min_similarity; include_self keeps the scan itself. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| scan_id | Yes | ||
| include_self | No | ||
| min_similarity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_segments_by_hashSearch JS Segments By HashRead-onlyIdempotentInspect
Find code segments with this exact code hash across the archive, with the scans and scripts they appear in; paginated with limit and offset.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| code_hash | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_js_segments_by_normalized_hashSearch JS Segments By Normalized HashRead-onlyIdempotentInspect
Find code segments with this normalized hash (formatting-independent) across the archive, with the scans and scripts they appear in; paginated with limit and offset.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| normalized_hash | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_ocrSearch OCRBRead-onlyIdempotentInspect
Search OCR text (paginated). q must contain at least 3 characters after trimming. This query can take up to 90 seconds by default.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| page | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavioral context: the minimum query length and the up-to-90-second latency warning, which materially affects how an agent should call it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler; the resource, the input constraint, and the latency caveat are all front-loaded and each earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the query and latency constraints are covered. However, for a paginated search tool with 0% schema coverage, the pagination parameters (page, limit) remain completely undocumented, which is a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It documents only q (minimum 3 characters after trimming) and says nothing about page or limit semantics, defaults, or bounds, leaving two of three parameters unexplained in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: search OCR text, with pagination noted. It's clear what the tool does, but it never distinguishes itself from adjacent siblings like get_ocr_by_scan, search_ocr_pattern, or get_ocr_stats, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives. The only constraint given ('q must contain at least 3 characters') is an input validation rule, not selection guidance against search_ocr_pattern or get_ocr_by_scan.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_ocr_patternSearch OCR PatternRead-onlyIdempotentInspect
Search the text read by OCR from scan screenshots for a pattern (paginated); case_sensitive controls matching. Useful for finding pages that show the same lure text as an image.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| pattern | Yes | ||
| case_sensitive | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_scansSearch ScansRead-onlyIdempotentInspect
Search the archive of public scans by text in the URL, domain or page title (paginated); q needs at least 3 characters and search_type narrows the match (default 'all'). Each result has the scan ID, URL, status, title, submission time and hosting ASN.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| page | No | ||
| limit | No | ||
| search_type | No | all |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_semanticSearch SemanticRead-onlyIdempotentInspect
Search scans by meaning rather than exact words, comparing the query with scanned page content (for example 'bank login page asking for card details'). threshold (default 0.7) is the minimum similarity; an empty result means nothing was similar enough.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| query | Yes | ||
| threshold | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_similar_scansSearch Similar ScansRead-onlyIdempotentInspect
Find scans that look like this one by screenshot similarity, favicon or fuzzy page hash (methods, default screenshot), each with URL, final URL, title and what it matched by; paginated. Useful for finding copies of a phishing page on other hosts. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| methods | No | ||
| scan_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_similar_screenshotsSearch Similar ScreenshotsRead-onlyIdempotentInspect
Find screenshots within max_distance (Hamming distance, default 3) of an integer perceptual hash (hash_type, default phash), each with scan, URL, title, distance and similarity score.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| hash_type | No | phash | |
| hash_value | Yes | ||
| max_distance | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
search_suspicious_clipboardSearch Suspicious ClipboardRead-onlyIdempotentInspect
List scans where the page wrote suspicious content to the clipboard (for example PowerShell commands), each with URL, event count, reason and time; pattern filters the content; paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| pattern | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_technologiesSearch TechnologiesRead-onlyIdempotentInspect
Search the web technologies detected across the archive by name (q) or category, each with how many scans used it and when it was last seen; paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| page | No | ||
| limit | No | ||
| category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_tracking_keySearch Tracking KeyRead-onlyIdempotentInspect
Find scans that embed a given tracking or site key, such as an analytics ID or a CAPTCHA site key (tracker_type and key), sorted latest or oldest; paginated. A shared key often ties sites to one operator.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| page | No | ||
| sort | No | ||
| limit | No | ||
| tracker_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
submit_scanSubmit ScanAInspect
Submit a URL to ScanMalware to be rendered and analysed in a sandboxed browser; returns the new scan_id. scan_type is required and sets who can see the result: 'public' lists the URL and its results in the public feed, visible to anyone and to search engines; 'unlisted' keeps the scan out of public listings, but anyone with its link can open it; 'private' limits the result to the ScanMalware account of this server's SCANMALWARE_BEARER_TOKEN and is rejected when no token is configured. Wraps POST /api/v1/scan of the ScanMalware API, documented at https://scanmalware.com/api-docs.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| options | No | ||
| scan_type | Yes | ||
| user_agent | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, openWorld=true, idempotent=false, destructive=false. The description adds genuinely new context: visibility semantics per scan_type, the SCANMALWARE_BEARER_TOKEN auth dependency, and the underlying POST /api/v1/scan endpoint. It omits rate limits or duplicate-submission behavior, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and the return value before the scan_type detail, and the trailing API-reference sentence is short and useful. The middle sentence is dense but every clause carries new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary, and the description correctly stops at naming scan_id. Combined with the scan_type semantics and auth note, an agent has enough to invoke correctly; only the undocumented 'options' and 'user_agent' parameters leave a residual gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 4 parameters, so the description must compensate. It fully covers scan_type (all three enum values with implications) and implies url, but says nothing about 'options' or 'user_agent', leaving half the parameters undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Submit a URL... to be rendered and analysed in a sandboxed browser') and names the returned artifact ('returns the new scan_id'). This clearly distinguishes it from the entire read-oriented sibling set (get_*/search_*), which consume scans rather than create them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains the scan_type choice space and the consequences of each value, including a when-not condition ('private' is rejected when no token is configured). It does not, however, route the agent to follow-up siblings such as wait_for_scan or get_scan_result, so the workflow context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_scan_reportSubmit Scan ReportAInspect
Vote on a scan, as the Mark as Safe and Mark as Malicious buttons on its result page do: report_type 'positive_feedback' marks the scanned page as safe and 'malware' marks it as malicious. report_details is an optional note of up to 1000 characters. Votes are recorded as crowd feedback on the scan and are rate-limited per client IP. The website's other report types (phishing, spam, copyright and so on) need a captcha and are not available here.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes | ||
| report_type | Yes | ||
| report_details | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare the mutation profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false), so safety is partly covered. The description adds genuinely new context: votes are recorded as crowd feedback and are rate-limited per client IP, and note length is capped at 1000 characters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, all front-loaded: purpose first, then the enum semantics, then constraints and exclusions. No filler and nothing repeated from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and the description covers the actionable constraints (enum meaning, note limit, rate limit, excluded report types). Only scan_id's expected format and any success/failure behavior are left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does for the two non-obvious parameters: it defines what each report_type enum value means and states that report_details is optional with a 1000-character limit. scan_id is left implicit but is self-evident from context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Vote on a scan') and anchors it to the concrete UI actions 'Mark as Safe'/'Mark as Malicious', then maps each enum value to its semantic effect. An agent can distinguish this from sibling tools like submit_scan or get_scan_reports without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the context in which this tool applies (crowd feedback voting on an existing scan) and explicitly excludes the other report types ('phishing, spam, copyright ... are not available here'), which is a useful when-not. It stops short of naming an alternative tool for those excluded cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wait_for_scanWait For ScanRead-onlyIdempotentInspect
Wait for a submitted scan to finish by polling its status every poll_interval_s seconds, up to timeout_s seconds (default 180). Returns the final compact summary (URL, final URL, status, completion time and the security verdict), or the last known status with timeout set to true if the scan is still running. The security verdict is computed after the scan completes, usually within about a minute: until then verdict_pending is true and the verdict fields are empty, so a risk score of 0 is not yet a verdict. scan_id is the UUID of a ScanMalware scan.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes | ||
| timeout_s | No | ||
| poll_interval_s | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
15 tool updates
- Removed
get_js_fingerprinter2 - Removed
get_js_fingerprinter2_coverage - Removed
get_js_fingerprinter2_health - Removed
get_js_fingerprinter2_stats - Added
get_js_runtime_behaviour - Added
get_js_runtime_coverage - Added
get_js_runtime_health - Added
get_js_runtime_stats - Changed
search_js_fingerprint_patterns1 field changed- removed
Input schema / properties / has_websocketRemoved value: -{ - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Has Websocket" -}
- Removed
search_js_fingerprinter2_composite_hash - Removed
search_js_fingerprinter2_signature - Removed
search_js_fingerprinter2_similar - Added
search_js_runtime_by_composite_hash - Added
search_js_runtime_by_signature - Added
search_js_runtime_similar
2 tool updates
- Changed
submit_scan2 fields changed- removed
Input schema / properties / scan_type / defaultRemoved value: -"public" - changed
Input schema / requiredPrevious value: -[ - "url" -]New value: +[ + "url", + "scan_type" +]
- Changed
submit_scan_report7 fields changed- removed
Input schema / properties / captcha_answerRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Captcha Answer" -} - removed
Input schema / properties / captcha_tokenRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Captcha Token" -} - added
Input schema / properties / report_type / enumAdded value: +[ + "positive_feedback", + "malware" +] - removed
Input schema / properties / skip_captchaRemoved value: -{ - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Skip Captcha" -} - removed
Input schema / properties / user_agentRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "User Agent" -} - removed
Input schema / properties / x_forwarded_forRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "X Forwarded For" -} - removed
Input schema / properties / x_real_ipRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "X Real Ip" -}
1 tool update
- Changed
submit_scan1 field changed- added
Input schema / properties / scan_type / enumAdded value: +[ + "public", + "unlisted", + "private" +]
5 tool updates
- Changed
search_ai_classification1 field changed- added
Input schema / properties / classification / enumAdded value: +[ + "LEGITIMATE", + "LOW_RISK", + "MODERATE_RISK", + "HIGH_RISK", + "CONFIRMED_SCAM" +]
- Changed
search_by_favicon1 field changed- added
Input schema / properties / hash_type / enumAdded value: +[ + "mmh3", + "md5" +]
- Changed
search_by_fuzzy_hash1 field changed- added
Input schema / properties / hash_type / enumAdded value: +[ + "tlsh", + "ssdeep", + "sdhash" +]
- Changed
search_by_screenshot_hash1 field changed- added
Input schema / properties / hash_type / enumAdded value: +[ + "ahash", + "phash", + "dhash", + "whash", + "color_hash", + "crop_resistant" +]
- Changed
search_tracking_key1 field changed- changed
Input schema / properties / sort / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "latest", + "oldest" + ], + "type": "string" + }, + { + "type": "null" + } +]
128 tool updates
- First observed
find_js_fingerprint_similar_by_hash - First observed
get_ai_analysis - First observed
get_analyzer_results - First observed
get_analyzer_stats - First observed
get_api_root - First observed
get_bot_protection - First observed
get_capabilities_by_date - First observed
get_clipboard_events - First observed
get_clipboard_stats - First observed
get_cpe_by_scan - First observed
get_cpe_stats - First observed
get_ct_certificates - First observed
get_ct_dns_records - First observed
get_ct_domains_by_ip - First observed
get_ct_similar_domains - First observed
get_ct_timeline - First observed
get_domain_history - First observed
get_domain_scans - First observed
get_domain_stats - First observed
get_favicon - First observed
get_favicon_stats - First observed
get_health - First observed
get_ids_alerts - First observed
get_ip_stats - First observed
get_jarm_signatures - First observed
get_jarm_stats - First observed
get_js_fingerprinter2 - First observed
get_js_fingerprinter2_coverage - First observed
get_js_fingerprinter2_health - First observed
get_js_fingerprinter2_stats - First observed
get_js_fingerprints - First observed
get_js_library_inventory - First observed
get_js_segments_by_scan - First observed
get_js_segments_suspicious - First observed
get_js_segments_unknown - First observed
get_jsfingerprint - First observed
get_jsfingerprint_bundle_stats - First observed
get_jsfingerprint_hash_prevalence - First observed
get_jsfingerprint_library_stats - First observed
get_jsfingerprint_similar - First observed
get_jsfingerprint_similarity_counts - First observed
get_jsfingerprint_source - First observed
get_latest_capabilities - First observed
get_malware_by_scan - First observed
get_malware_stats - First observed
get_netlog - First observed
get_ocr_by_scan - First observed
get_ocr_stats - First observed
get_open_graph - First observed
get_pastejacking - First observed
get_pcap_metadata - First observed
get_platform_stats - First observed
get_popular_technologies - First observed
get_rdap - First observed
get_recent_scans - First observed
get_recent_threats - First observed
get_recent_yara_threats - First observed
get_safe_browsing - First observed
get_safe_browsing_stats - First observed
get_scan_ioc - First observed
get_scan_progress - First observed
get_scan_reports - First observed
get_scan_result - First observed
get_scan_summary - First observed
get_screenshot_stats - First observed
get_technologies_by_scan - First observed
get_technology_combinations - First observed
get_technology_stats - First observed
get_tls_asn1 - First observed
get_tls_details - First observed
get_top_tracking_keys - First observed
get_yara_by_scan - First observed
get_yara_matches - First observed
get_yara_stats - First observed
run_js_differential_analysis - First observed
search_ai_classification - First observed
search_ai_high_risk - First observed
search_ai_scam_type - First observed
search_analyzer_high_risk - First observed
search_by_asn - First observed
search_by_favicon - First observed
search_by_fuzzy_hash - First observed
search_by_ip - First observed
search_by_jarm - First observed
search_by_nameserver - First observed
search_by_registrar - First observed
search_by_screenshot_hash - First observed
search_cpe - First observed
search_favicon_mmh3 - First observed
search_js_fingerprint_by_bundler - First observed
search_js_fingerprint_by_cdn - First observed
search_js_fingerprint_by_fuzzy_hash - First observed
search_js_fingerprint_by_library - First observed
search_js_fingerprint_by_library_version - First observed
search_js_fingerprint_by_md5 - First observed
search_js_fingerprint_by_normalized_hash - First observed
search_js_fingerprint_by_server - First observed
search_js_fingerprint_by_sha1 - First observed
search_js_fingerprint_by_sha256 - First observed
search_js_fingerprint_obfuscated - First observed
search_js_fingerprint_patterns - First observed
search_js_fingerprinter2_composite_hash - First observed
search_js_fingerprinter2_signature - First observed
search_js_fingerprinter2_similar - First observed
search_js_malware_families - First observed
search_js_obfuscation - First observed
search_js_segments_by_hash - First observed
search_js_segments_by_normalized_hash - First observed
search_jsfingerprints_by_bundler - First observed
search_jsfingerprints_by_fuzzy_hash - First observed
search_jsfingerprints_by_library - First observed
search_jsfingerprints_by_library_version - First observed
search_jsfingerprints_by_md5 - First observed
search_jsfingerprints_by_normalized_hash - First observed
search_jsfingerprints_by_sha1 - First observed
search_jsfingerprints_by_sha256 - First observed
search_ocr - First observed
search_ocr_pattern - First observed
search_scans - First observed
search_semantic - First observed
search_similar_scans - First observed
search_similar_screenshots - First observed
search_suspicious_clipboard - First observed
search_technologies - First observed
search_tracking_key - First observed
submit_scan - First observed
submit_scan_report - First observed
wait_for_scan
Related MCP Connectors
Cybersecurity MCP server for URL scanning, threat intelligence, and domain reputation.
Official VirusTotal MCP server: threat reports, file and URL submissions, and analysis recovery.
Remote MCP server for Scanduro QR codes, scan analytics and controlled code actions.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server that checks URLs against the URLhaus malware database to identify malicious URLs.-
- AlicenseAqualityBmaintenanceMCP server for urlscan.io that scans URLs, searches historical scan data, and assesses indicators with compact, context-efficient summaries instead of raw API responses.14MIT
- AlicenseAqualityCmaintenanceMCP server for accessing URLhaus malicious URL database from abuse.ch - provides threat intelligence for cybersecurity research72 npm5MIT
- FlicenseNot gradedqualityCmaintenanceMCP server for detecting and analyzing scams using various heuristics and data sources.-
Glama MCP Gateway
Add one secure layer between your agents and this server.