Free AI URL Scanner MCP server
Which servers in the official MCP registry are Free AI URL Scanner's own, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-19
- Registry namecom.scanmalware.mcp/scanmalware-mcpverified in the MCP registry
The registry name sits under scanmalware.com. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-19
- Tools128
- Server calls itselfScanMalware MCP
- Server version0.1.6
- Protocol version2025-06-18
On 2026-10-19 the server answered initialize and tools/list without a sign-in. First answer in 514 ms.
- Whether its tools do the product's job has not been judged yet.
- Checked on 3 of the 7 days it takes to judge reliability.
Once connected
- Its definitions take about 16483 tokens of context: enable only the tools a task needs.
- Parameters are untyped or undescribed in 110 of 128 tools: check arguments before calling.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP scoreafter a weeka score needs 7 daily checks: 3 so far
- Answeredmeasuring3 of the 7 daily checks it takes to print a share
- Median first answer511 ms
- Space in an agent's context≈ 16,483 tokensthe definitions of all its tools (128), which an agent carries on every turn
- Tool definitionsB · 86 of 100
- Typed results128 of 128 toolsdeclared outputSchema: results come typed, read once
- Parameters without a description: in 110 of 128
Worth a look
None of the five warning signs in these definitions.
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (30%), doing the product's job (25%), definitions (20%), context (10%) and use (15%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
get_recent_scansList 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.
submit_scanSubmit 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…
get_scan_summaryGet 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…
wait_for_scanWait 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…
get_scan_resultGet 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…
search_scansSearch 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…
get_ai_analysisGet 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…
get_scan_progressGet 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.
get_scan_iocCheck 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.
get_tls_detailsGet 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.
get_tls_asn1Get 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.
get_technologies_by_scanList 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.
get_bot_protectionGet 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.
get_yara_matchesGet 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.
get_jarm_signaturesGet 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…
get_analyzer_resultsList 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…
get_clipboard_eventsGet 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.
get_js_fingerprintsList 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…
get_scan_reportsList 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.
get_domain_scansList 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…
get_domain_historyGet the scan history of a domain with the total count and the scans, paginated with page and limit.
get_domain_statsGet 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.
search_by_ipList 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.
get_ip_statsGet 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.
search_by_asnGet 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.
search_similar_scansFind 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…
search_semanticSearch 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…
search_by_faviconSearch scans by favicon hash (paginated): a mmh3 hash by default, or the favicon's MD5 with hash_type='md5'.
search_ai_high_riskList 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…
search_ai_scam_typeList 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.
search_ai_classificationList 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.
get_analyzer_statsGet platform-wide statistics for the scan analysis modules: the modules and their run counts. Describes the service, not a particular scan.
search_analyzer_high_riskList 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.
get_faviconGet 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.
get_favicon_statsGet 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.
get_screenshot_statsGet screenshot statistics across the archive: total screenshots, hash coverage and the distribution of perceptual hash types.
search_similar_screenshotsFind 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.
search_ocrSearch OCR text (paginated). q must contain at least 3 characters after trimming. This query can take up to 90 seconds by default.
search_ocr_patternSearch 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.
search_by_jarmList 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.
search_by_fuzzy_hashList 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.
search_by_screenshot_hashList 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…
search_suspicious_clipboardList 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.
get_recent_threatsList malware threats detected in scans during the last hours (default window set by the API), with totals and grouping by threat.
get_recent_yara_threatsList YARA rule matches from scans in the last hours, each with the scan, URL, rule, category, severity and confidence.
get_ct_certificatesGet the certificates issued for a domain according to Certificate Transparency logs, with a found flag.
get_ct_dns_recordsList 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.
get_ct_domains_by_ipList domains that Certificate Transparency and DNS data associate with an IP address, with record counts and the total.
get_ct_similar_domainsFind 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.
get_ct_timelineGet the certificate history of a domain from Certificate Transparency: when certificates were issued and when the certificate changed.
get_api_rootGet the ScanMalware API's name, version, status, main endpoints and feature list.
get_healthCheck whether the ScanMalware API is up. Returns the service status.
get_platform_statsGet the current scan queue length, running scans and scans completed in the last 24 hours by visibility.
get_latest_capabilitiesGet the current size of ScanMalware's detection content: indicator count, malware detection rules and ClamAV signatures.
get_capabilities_by_dateGet the size of ScanMalware's detection content (indicators, detection rules, ClamAV signatures) on a given date (scan_date, YYYY-MM-DD).
get_clipboard_statsGet clipboard and pastejacking statistics across the archive: event totals, detections and daily activity.
get_cpe_statsGet CPE statistics across the archive: scans with CPEs, unique CPEs, total detections, top vendors and products.
get_cpe_by_scanList 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.
search_cpeFind 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.
get_ids_alertsGet 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.
The first 60 of 128, as the server listed them.
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"scanmalware-mcp": {
"type": "http",
"url": "https://mcp.scanmalware.com/mcp"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http scanmalware https://mcp.scanmalware.com/mcpclaude.ai, ChatGPT and other clients: add https://mcp.scanmalware.com/mcp as a custom connector in the settings.
OpenAPI spec
222 paths, read 2026-10-19. Open the spec ↗
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Cookies
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.