mcp-virustotal: VirusTotal for AI agents

mcp-virustotal

An MCP server for VirusTotal v3: checks a hash, URL, IP or domain and returns a report with the relationships an analyst follows

  • 155 ★ on the repository
  • Last commit
  • MIT
MCP server

Extended access

Why this level

  • The indicators you check (hashes, URLs, IPs, domains) go to the external VirusTotal service, and a URL is submitted for analysis on a cache miss
  • The API key is spent on every request, and the unauthenticated HTTP transport lets others spend your quota
All reasons and checks

w0h1v/mcp-virustotal

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/mcp-virustotal

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The indicators you check (hashes, URLs, IPs, domains) go to the external VirusTotal service, and a URL is submitted for analysis on a cache miss
  • The API key is spent on every request, and the unauthenticated HTTP transport lets others spend your quota

This is third-party code. Review the repository files before installing.

What it does

The server gives an agent access to the VirusTotal v3 API. Pass a hash, URL, IP or domain and get a detection report together with the relationships an analyst follows next: contacted hosts, dropped files, domain resolutions, threat actors. File, URL, IP and domain reports fetch key relationships in one batched call to save quota. There are eleven tools. Four reports (`get_file_report`, `get_url_report`, `get_ip_report`, `get_domain_report`), four paged relationship walks per object type (100+ relationship types, cursors), plus `search_vt` with VTI-style modifiers (`type:peexe positives:5+`), `get_file_behaviour_summary` for merged sandbox behaviour and `get_collection` for threat-actor and malware-family groups. `get_url_report` returns the cached report first and submits a new scan only on a cache miss. The server runs over stdio for desktop clients and over HTTP streaming for a shared service. It needs Node.js 20 or newer and your VirusTotal key. The project is independent and not affiliated with VirusTotal or Google.

Who it is for. Security analysts and SOC teams who triage suspicious files, addresses and domains and want to query VirusTotal straight from an assistant.

Good fit when

  • An email has a suspicious link and you need a report with detections and contacted hosts
  • You have the hash of a malware sample and want to know which files it drops and what it contacts
  • You need to find corpus files by conditions such as type and detection count
  • You need to merge sandbox behaviour for a sample and link it to a threat actor

Not a fit when

  • You need to block or remove malicious items: the server only reads VirusTotal data
  • You have no VirusTotal key: none of the tools work without it
  • You need offline analysis with no external services: the server works only through VirusTotal

Example request

Check SHA-256 275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f in VirusTotal and show what the file drops and which addresses it contacts.

MCP

Transport
stdio, http
Authentication
API key

Environment variables

VIRUSTOTAL_API_KEY required, secret
VirusTotal v3 API key, 64 characters with no spaces or quotes.
MCP_TRANSPORT
stdio by default or httpStream for a shared service.

Limitations

You need a personal VirusTotal key. The free public tier allows 4 requests per minute, and exceeding it returns a 429 error.

The HTTP transport (`MCP_TRANSPORT=httpStream`) has no authentication: keep the port on localhost or behind an authenticating proxy, or anyone can spend your quota. The project is independent, and the package is published as `@burtthecoder/mcp-virustotal`, which differs from the repository name.

How to disable. Remove the server with `claude mcp remove virustotal` and revoke the key in your VirusTotal account.

FAQ

How do I connect mcp-virustotal to Claude Code, Codex or Gemini CLI?

Each client has its own command with the key in `VIRUSTOTAL_API_KEY` and launch through `npx -y @burtthecoder/mcp-virustotal`: `claude mcp add`, `codex mcp add` and `gemini mcp add`. Settings for Claude Desktop and VS Code are in docs/clients.md.

Is the project affiliated with VirusTotal or Google?

No, the author states the project is independent and not affiliated with VirusTotal or Google. You need your own VirusTotal API key.

How do I find files in the corpus by condition?

Through `search_vt` with VTI-style modifiers such as `type:peexe positives:5+`. Results can be tied to sandbox behaviour (`get_file_behaviour_summary`) and threat groups (`get_collection`).

Which key do I need and what is its limit?

You need your own VirusTotal API key (from the my-apikey page). The free public tier allows 4 requests per minute, and exceeding it returns a 429 error. The key goes in `VIRUSTOTAL_API_KEY` and is sent only to VirusTotal.

Can I run the server as a shared service?

Yes, `MCP_TRANSPORT=httpStream` starts an HTTP service on `MCP_PORT`, and there is a Docker image and a `/health` check. This transport has no authentication: keep the port on localhost or behind an authenticating proxy, or anyone can spend your quota.

Discussion

No questions or reviews yet.

An MCP server that gives the agent vulnerability triage: NVD data, EPSS, the CISA KEV catalog, MITRE ATT&CK mapping and one-call CVE risk scoring

MCP serverExtended access1.8KRepository stars

cvENGINE finds a domain's exposed assets and the vulnerabilities being exploited, and its MCP server drives scans from Claude Code

MCP serverBroad access713Repository stars

A malware analysis tool with an MCP server: the agent calls file, document and archive analysis, indicator extraction and signature checks

MCP serverExtended access2.1KRepository stars

Security scanner for MCP servers that looks for hardcoded keys, tool poisoning and injection flaws in repository code.

CLIMinimal access140Repository stars
Official

A free vulnerability MCP server that merges CVE, GHSA, OSV, CISA KEV and EPSS into one entry and checks a project lockfile.

MCP serverExtended access149Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
mcp-virustotal: VirusTotal for AI agents (this card)noAPI key155
Threat Modeling MCP Serveryesnot required127threat modelling for architecture, with no indicator analysis
claude-osintno3,025open-source intelligence with no VirusTotal reports

README in short

The README sets out the server's purpose and features (reports with relationships, cache first, pivot tools, paged relationships and two transports), a quickstart for three clients, a list of eleven tools, HTTP setup and environment variables, a security warning and troubleshooting.

README badge

Report a problem