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
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
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/mcp-virustotalDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended 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_KEYrequired, 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.
Related
MCP serversVirusTotal MCP: file and URL checks in an agent
VirusTotal MCP
VirusTotal's official MCP server: an agent checks files, URLs, domains and IPs against VTAI reports, submits on request
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
cvENGINE finds a domain's exposed assets and the vulnerabilities being exploited, and its MCP server drives scans from Claude Code
A malware analysis tool with an MCP server: the agent calls file, document and archive analysis, indicator extraction and signature checks
Security scanner for MCP servers that looks for hardcoded keys, tool poisoning and injection flaws in repository code.
A free vulnerability MCP server that merges CVE, GHSA, OSV, CISA KEV and EPSS into one entry and checks a project lockfile.
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| mcp-virustotal: VirusTotal for AI agents (this card) | no | API key | 155 | |
| Threat Modeling MCP Server | yes | not required | 127 | threat modelling for architecture, with no indicator analysis |
| claude-osint | no | 3,025 | open-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.