VirusTotal 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
- 39 ★ on the repository
- Last commit
- Apache-2.0
Extended access
Why this level
- An uploaded file becomes available to the security community and VirusTotal partners
- Submission tools have no human confirmation per call, so permissions must be set in the client
Install
- Works in
Manual install
claude plugin install virustotal@virustotalThe plugin command from the README, with the VirusTotal/virustotal-mcp marketplace added first.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- An uploaded file becomes available to the security community and VirusTotal partners
- Submission tools have no human confirmation per call, so permissions must be set in the client
This is third-party code. Review the repository files before installing.
What it does
The server connects an agent to VTAI, an AI access service for VirusTotal data. The agent gets reports on files by MD5, SHA-1 and SHA-256 hashes, URLs, domains and IPv4 and IPv6 addresses, to check a link, a downloaded file or suspicious infrastructure before opening it. On the user's explicit request the agent submits a file, a URL, a domain or IP reanalysis, then recovers the submission receipt by hash or request ID and reads the analysis result. There are twelve tools in all: ten shared by HTTP and stdio, attachment submission only on the hosted server and local file submission only on the local one. Connection goes through https://ai.virustotal.com/mcp with OAuth for a VTAI account, and no VirusTotal key is needed. For Claude Code there is a plugin with a skill and local file uploads, and other clients have connection recipes.
Who it is for. Security analysts, developers and anyone who wants an agent to check VirusTotal data before running a file or following a link.
Good fit when
- Before installing a downloaded package the agent checks its SHA-256 hash against known reports
- A dubious link from an email needs checking with a URL report
- You investigate a suspicious domain and IP and want data on both in one answer
- A new file must be submitted for analysis and a receipt for recovery matters
- You need to read the result of an already registered analysis by its ID
Not a fit when
- The file is private: uploading to VirusTotal opens its content to other people
- The agent decides what to upload on its own: a missing report is no reason to submit anything
- You require your own VirusTotal API key: the server works through VTAI and its quotas
- You want to bypass limits by creating several accounts: the README expressly forbids it
Example request
Check the hash of the downloaded installer and the address I got it from against VirusTotal and say whether any engines flagged something suspicious.MCP
- Transport
- http, stdio
- Authentication
- OAuth
Environment variables
VTAI_TOKEN_FILE- Path to the file with the VTAI token for a stdio run
Limitations
The free VTAI works within current limits: every repeated report lookup counts, even from cache and for hashes with no report. New submission of unknown files is limited to 20 files per minute and 500 per day per account, up to 24,000,000 bytes, and 32,000,000 for a local file. A response is capped at 256 KiB.
Submission tools have no per-call human confirmation, so permissions are set on the client side. Standard submissions are not confidential. The Claude Code plugin needs Node.js 22 or newer, and removing client config does not revoke VTAI access.
How to disable. Remove the server with claude mcp remove virustotal or the plugin with claude plugin uninstall virustotal. Revoke VTAI access separately: an agent token through the revocation form, OAuth in account settings.
FAQ
How do I connect VirusTotal MCP to Claude Code?
Through the plugin: claude plugin marketplace add VirusTotal/virustotal-mcp and claude plugin install virustotal@virustotal. Or by hand: claude mcp add --transport http virustotal https://ai.virustotal.com/mcp. Then sign in through /mcp.
Do I need my own VirusTotal API key?
No. The server works through the free VTAI service: a VTAI account and OAuth sign-in are enough. Clients without OAuth can use an agent token kept in a file with restricted permissions and referenced in VTAI_TOKEN_FILE.
Are submitted files confidential?
No. Standard submission to VirusTotal shares content with the security community and partners. So a file is submitted only on explicit request, and a report found by hash lets you skip the upload.
Which tools does the server have?
Reports on a file, URL, domain and IP, submitting a file and URL, reanalysis of a domain and IP, receipt recovery by hash or ID and reading an analysis. There is also attachment submission on the hosted server and local file submission over stdio.
What are the free tier limits?
New unknown files are accepted at 20 per minute and 500 per day per account, and every repeated report lookup counts. The README forbids creating several accounts to get around limits.
Discussion
No questions or reviews yet.
Related
MCP serversmcp-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
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
The MCP server gives agents Vulners vulnerability records, advisories and findings for installed software versions.
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.
README in short
The README introduces the server and straight away gives the OAuth address, the Claude Code plugin install and a manual option without Node.js. Then come a table of clients, a table of tools with submission rules, configuration variables and a section on distribution and license.