virustotal

io.github.w0h1v/virustotal

About virustotal

virustotal is an MCP server published by the GitHub account w0h1v. MCP server for querying VirusTotal API with comprehensive security analysis tools.

It runs on your own machine: your AI client starts it from the npm package @burtthecoder/mcp-virustotal at version 1.0.35.

It asks for one secret: VIRUSTOTAL_API_KEY. Give it a key with the least access that still works.

Version 1.0.35 was published on 13 October 2026, and the source code is public, so you can read it before installing.

Written from the registry entry. 9 automated checks on the registry entry and the package code: 7 pass, 0 warn, 0 fail, 2 info. How we check.

What it asks for

VariableRequiredSecretDescription
VIRUSTOTAL_API_KEYYesYesYour VirusTotal API key

Checks

CheckResultDetail
Source repository linkedPasshttps://github.com/w0h1v/mcp-virustotal
Version pinnedPassEvery package has an explicit version
Secrets requestedInfoAsks for 1 secret: VIRUSTOTAL_API_KEY
Known package registryPassAll packages come from npm, PyPI, OCI, NuGet or MCPB
Namespace ownershipInfoName verified via GitHub account w0h1v
Registry text aimed at the AIPassDescription and settings contain no hidden characters or instructions to the AI
Install scriptsPass@burtthecoder/mcp-virustotal@1.0.35 runs nothing at install
Code red flagsPassRead 25 files in @burtthecoder/mcp-virustotal@1.0.35: no obfuscation, encoded execution, credential reads or data-collection endpoints found
Text aimed at the AIPassNo hidden characters or instructions to the AI in 25 files, including comments and the README

Code review: Pass, with notes

We read all 1,794 lines in 23 files of @burtthecoder/mcp-virustotal 1.0.35 on 2026-10-31, without running it.

Looks up URLs, files (by hash), IPs and domains on VirusTotal. It talks only to VirusTotal and sends your API key only there. Note that checking a URL VirusTotal has never seen submits it for a public scan, and every lookup is written to a local log file.

What we found

  • Note If VirusTotal has no report for a URL, get_url_report automatically submits it for scanning with no confirmation. Submitted URLs become part of VirusTotal's corpus and can be seen by other VirusTotal users, so private or internal URLs (with tokens in them) can leak. Disclosed in the tool description. build/handlers/url.js:34-39
  • Note Every looked-up URL and search query is written to a log file inside the package folder (or temp), kept forever. The API key is not logged. build/utils/logging.js:8-56; handlers/url.js:31,36,62; handlers/search.js:9
  • Info Collection id goes into the API path unencoded; the host is fixed to virustotal.com, so at most it reaches another VirusTotal endpoint with the user's own key. build/handlers/collection.js:8-9
  • Info Third-party text from VirusTotal (community comments, page titles, threat-actor descriptions) is passed to the AI unfiltered; such text could carry prompt-injection attempts. Normal for a threat-intel tool. build/formatters/*.js
  • Info Inputs are validated (URL, IP, hash and domain formats, relationship enums). build/schemas/index.js
  • Info No package.json in the reviewed copy (read at runtime for the version); dependencies are taken from imports. No obfuscation, install hooks, dynamic code or hard-coded secrets. package
  • Info lines_read (1794) is the real line count of every file (Read tool / splitlines). The manifest's 1817 counts one extra empty 'line' after the trailing newline of 23 files; no file or line was skipped. manifest.tsv
Talks towww.virustotal.com/api/v3: URLs (base64url), file hashes, IPs, domains, collection ids, search queries; x-apikey header. get_url_report POSTs the URL to /urls for a new scan when VirusTotal has no report yet (only when a tool is called)
Keys and settingsVIRUSTOTAL_API_KEY: www.virustotal.com only (x-apikey header); never logged
MCP_TRANSPORT / MCP_PORT / MCP_HOST / MCP_ENDPOINT: local (optional HTTP transport, default host localhost)
TEMP / TMP: local (fallback log folder on Windows)
Files on your machineLoads .env via dotenv; reads its own package.json. Creates <package>/logs/mcp-virustotal-server.log (fallback: %TEMP%\mcp-virustotal-logs or /tmp/mcp-virustotal-logs) and appends every request path, the URLs/domains/hashes looked up and search query text. No other file access; no file uploads.
Runs programsNone.
TelemetryNone.
Toolsget_url_report, get_url_relationship, get_file_report, get_file_relationship, get_ip_report, get_ip_relationship, get_domain_report, get_domain_relationship, search_vt, get_file_behaviour_summary, get_collection
Tool descriptionsclean (get_url_report's description discloses that it submits URLs for scanning)

This covers the package's own code only, not the 4 packages it depends on (fastmcp (npm), axios, zod, dotenv). A new version drops this review until we read it again.

Popularity & health: 63 / 100

Worked out from public numbers and our own checks, not from user reviews or ratings. It says how used and how looked-after a server is, not whether it is safe.

Popularity21 / 40

154 GitHub stars, 590 downloads last week, 0 Hacker News posts (0 points). Best two of the three, each on a log scale.

Activity15 / 25

Last push 2026-10-23, no GitHub release, 0 commits in 90 days.

Issue health8 / 15

1 closed of 2 issues, too few to judge. No data, so half marks.

Our checks20 / 20

0 warnings, each costing a fifth.

24 forks, 25 merged pull requests. Sources: GitHub, npm, PyPI (pypistats.org) and Hacker News (Algolia), fetched 2026-10-31.

What people say

No Hacker News threads link to its source code.

Look further: search Reddit, search Hacker News, read its GitHub issues. These are not reviews we checked.

Facts

Registry nameio.github.w0h1v/virustotal
PublisherGitHub account w0h1v
How the name is verifiedName verified via GitHub account w0h1v. The registry ties the name prefix to that account or domain; it does not check the code.
TypeLocal: runs on your machine from a package
Packagesnpm @burtthecoder/mcp-virustotal 1.0.35 (stdio)
Version1.0.35
Published
Last updated
Source repositoryhttps://github.com/w0h1v/mcp-virustotal
WebsiteNone linked
CategorySecurity (assigned by keyword rule, not by hand)

Related servers in Security