Connector guide8-minute read23 MCP tools7 languages

Connect VirusTotal to Claude via MCP: Threat Reports

Threat intelligence from the VirusTotal API v3: file reports by hash, URL, domain and IP reports from about 70 engines, search, relationships between indicators, sandbox behaviour and MITRE ATT&CK, community comments and votes, rescans and, once an admin enables it, URL scanning.

HCBy HelpCode teamUpdated 8 min read Open-source on GitHub

No credit card · 7-day trial · Self-host alternative available

VirusTotal

VirusTotal

Threat intelligence from the VirusTotal API v3: file reports by hash, URL, domain and IP reports from about 70 engines, search, relationships, sandbox behaviour, community comments and votes, URL scanning and rescans.

tools

23

Region

INTL

Category

Monitoring

Authentication

API Key

Required env vars

VIRUSTOTAL_API_KEY
Install in one click on Cloud

7-day free trial · No credit card

  • 7-day free trial
    No credit card required
  • GDPR & SOC 2 ready
    EU data residency, audit logs
  • Open-source on GitHub
    Open source · AGPL-3.0
  • Works with ChatGPT, Claude, Gemini
    Any MCP-compatible client

Summary

Threat intelligence from the VirusTotal API v3: file reports by hash, URL, domain and IP reports from about 70 engines, search, relationships between indicators, sandbox behaviour and MITRE ATT&CK, community comments and votes, rescans and, once an admin enables it, URL scanning.

Guided setup

Connect VirusTotal to Claude in 2 minutes

Start a free trial on AnythingMCP Cloud, connect VirusTotal in the guided setup, then add your MCP URL to Claude. No code and no server to run.

No credit card · 7-day trial · Self-host alternative available

AnythingMCP is listed in Claude's connector directory: add it to Claude in one click (opens in a new tab), then sign in and choose which MCP servers Claude may use.

Try asking

Example prompts for VirusTotal

Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.

VirusTotal · live via MCP
Share
Opus 4.7

Claude is AI and can make mistakes. Please double-check responses.

💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → VirusTotal, paste your credentials, mint an MCP API key and you're done. No Docker, no git clone, no local server.

VirusTotal + Claude

Threat intelligence from the VirusTotal API v3: file reports by hash, URL, domain and IP reports from about 70 engines, search, relationships between indicators, sandbox behaviour and MITRE ATT&CK, community comments and votes, rescans and, once an admin enables it, URL scanning.

Prerequisites

See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:

VIRUSTOTAL_API_KEY

Step 1 — Get credentials

Setting up takes about 2 minutes. You need a VirusTotal account; the community API key is free.

  1. Sign up for the free VirusTotal Community at https://www.virustotal.com/gui/join-us and confirm the e-mail.
  2. Open your API key at https://www.virustotal.com/gui/my-apikey and paste it into VIRUSTOTAL_API_KEY. It is 64 lowercase hexadecimal characters and is sent in the x-apikey header.
  3. Install the connector and run virustotal_list_popular_threat_categories: a cheap call that confirms the key.

Public or Premium key: a free key allows 4 requests a minute and 500 a day, and the VirusTotal terms forbid using the public API in commercial products or business workflows. Premium keys have no such limits and unlock virustotal_intelligence_search, more relationships and more context. Daily quotas reset at 00:00 UTC. virustotal_get_api_usage with your VirusTotal user name shows the daily usage per endpoint for up to 30 days.

Privacy: every indicator you look up or submit becomes part of the VirusTotal dataset and is visible to the community. Never send URLs, domains or hashes that are confidential or contain personal data, such as a URL with a token, a password reset link or an internal host name.

What it reads:

  • Verdicts: virustotal_get_file_report (by SHA-256, SHA-1 or MD5, no upload), virustotal_get_url_report, virustotal_get_domain_report and virustotal_get_ip_report, with the detection stats of about 70 engines and URL blocklists, each engine's verdict, reputation, votes, tags and, depending on the object, file type and names, final URL and redirects, DNS records, WHOIS, registrar, ASN and country.
  • virustotal_search takes a hash, a full URL, a domain, an IP or a comment tag such as #phishing. With a URL it returns the URL report, the easy way when you do not have the URL id.
  • Relationships: virustotal_list_related_objects follows one, for example a file's contacted_domains, a domain's resolutions or subdomains, an IP's communicating_files. virustotal_list_related_ids returns only the ids, which is much smaller. virustotal_get_resolution reads one DNS resolution (id = the IP followed by the domain, for example 8.8.8.8dns.google).
  • Sandboxes: virustotal_get_file_behaviour_summary (processes, files, registry keys, mutexes, DNS, IP and HTTP traffic) and virustotal_get_file_mitre_attack (MITRE ATT&CK tactics and techniques per sandbox).
  • Community: virustotal_list_comments and virustotal_list_votes on one object, virustotal_list_latest_comments across VirusTotal (filter such as tag:malware), virustotal_get_comment for one.
  • Premium only: virustotal_intelligence_search with search modifiers such as type:peexe positives:10+.

What it writes: virustotal_rescan asks for a fresh analysis of a file, URL, domain or IP VirusTotal already knows, and virustotal_get_analysis reads the result (poll every 15 to 60 seconds until status is completed). virustotal_add_comment posts a public comment under your account (words starting with # become tags) and virustotal_add_vote casts a public harmless or malicious vote.

Switched off at install: virustotal_scan_url and virustotal_delete_comment. Neither can be undone: a submitted URL, with anything in it, is shared with the VirusTotal community for good, and a deleted comment is gone. A workspace admin turns them on when the team needs them. With virustotal_scan_url enabled, a URL VirusTotal has not seen (404) can be submitted and its result read with virustotal_get_analysis.

URL identifiers: URL tools take the URL id, which is the URL in unpadded base64url (https://example.com/ becomes aHR0cHM6Ly9leGFtcGxlLmNvbS8) or the SHA-256 of the canonical URL. The data.id of a URL report is that SHA-256; an analysis id looks like u-<sha256>-<timestamp>. When in doubt, the AI uses virustotal_search with the URL.

Data formats: answers follow JSON:API with data.id, data.type and data.attributes. last_analysis_stats counts the engines per verdict (malicious, suspicious, harmless, undetected, timeout), last_analysis_results lists each engine's category and result. reputation is a community score, negative is bad; total_votes counts harmless and malicious votes. Dates are Unix timestamps in seconds (UTC). A low detection count is no proof that something is safe: the AI also checks the analysis date and the relationships. URL, domain and IP reports leave out bulky fields such as HTTP headers, cookies, HTML meta and the full HTTPS certificate; certificates are available through the historical_ssl_certificates relationship.

Paging: list tools return meta.cursor and links.next while more items exist; the AI passes meta.cursor as cursor with the same limit and stops when it is missing.

Common errors: 401 WrongCredentialsError or AuthenticationRequiredError means a wrong or missing key (or an unconfirmed account e-mail), 403 ForbiddenError a Premium-only endpoint or relationship, 404 NotFoundError an object VirusTotal has not seen, 409 AlreadyExistsError a duplicate vote, 429 QuotaExceededError the minute or daily quota (wait, or upgrade), 400 InvalidArgumentError a malformed id.

The connector does not upload files or download samples: look files up by hash.

Step 2 — Install the adapter

curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d

Step 3 — Add the connector in Claude

Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide shows YOUR_SERVER_ID.

Recommended path: works on claude.ai web without editing any config file.

  1. In Claude, open Customize → Connectors.
  2. Click +, then Add custom connector.
  3. Enter a name, e.g. VirusTotal, and the remote MCP server URL https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID, then click Add.
  4. Click Connect and sign in to AnythingMCP (OAuth) to allow access.

All tools below appear in your chat: start typing prompts.

Available tools

ToolWhat it does
virustotal_get_file_reportReport on a file already known to VirusTotal, by hash: detection stats (malicious, suspicious, harmless, undetected), each engine's…
virustotal_get_url_reportReport on a URL already analysed by VirusTotal: detection stats and each engine's verdict, categories, final URL after redirects, HTTP…
virustotal_get_domain_reportReport on a domain: detection stats and each engine's verdict, categories from several vendors, reputation, votes, last DNS records…
virustotal_get_ip_reportReport on an IPv4 or IPv6 address: detection stats and each engine's verdict, reputation, votes, ASN and owner, country and continent…
virustotal_get_analysisStatus and result of one analysis started by virustotal_scan_url, virustotal_rescan or a file submission: status (queued, in-progress…
virustotal_searchLook up a file hash, a URL, a domain, an IP address or a comment tag in one call
virustotal_intelligence_searchVirusTotal Intelligence corpus search with search modifiers (e.g. type:peexe positives:10+ fs:2026-01-01+, entity:domain domain_regex:...…
virustotal_list_commentsCommunity comments on a file, URL, domain or IP address, newest first: text, tags, date and the comment's own votes
virustotal_list_votesCommunity votes on a file, URL, domain or IP address: each vote's verdict (harmless or malicious), value and date
virustotal_list_related_objectsObjects related to a file, URL, domain or IP address, as full objects: e.g. the domains and IPs a file contacted, files it dropped, a…
virustotal_list_related_idsIds (descriptors) of the objects related to a file, URL, domain or IP address, without their attributes: much smaller than…
virustotal_get_file_behaviour_summarySummary of all sandbox runs of a file: processes created, files written and deleted, registry keys, mutexes, DNS lookups, IP traffic, HTTP…
virustotal_get_file_mitre_attackMITRE ATT&CK tactics and techniques observed for a file in each sandbox, with the signatures that triggered them and their severity
virustotal_list_latest_commentsLatest comments posted anywhere on VirusTotal, optionally only those with a tag (filter tag:malware)
virustotal_get_commentOne comment by id: text, tags, date, votes and, with relationships=author,item, who wrote it and what it is about
virustotal_get_resolutionOne DNS resolution object: which IP a domain resolved to, when, and from which source
virustotal_list_popular_threat_categoriesList of the threat categories antivirus verdicts commonly use (trojan, ransomware, dropper, miner, phishing, ...)
virustotal_get_api_usageDaily API usage of a VirusTotal user, per endpoint, between two dates (at most 30 days, default the last 30)
virustotal_scan_urlSubmit a URL for scanning by about 70 security engines
virustotal_rescanAsk VirusTotal to analyse again an object it already knows: a file by hash, a URL by identifier, a domain or an IP address
virustotal_add_commentPost a public comment on a file, URL, domain or IP address under your VirusTotal account
virustotal_add_voteCast your public vote on a file, URL, domain or IP address: harmless or malicious
virustotal_delete_commentDelete one of your own public comments by id

Example prompts

  • "Is the file with SHA-256 275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f flagged as malicious? Show the detection stats and the threat label."
  • "Check the domain example-login-secure.com: what do the engines say, when was it created and which IPs did it resolve to?"
  • "What is the reputation of the IP 185.220.101.1, who owns it and which files have communicated with it?"
  • "Show the sandbox behaviour and the MITRE ATT&CK techniques of this hash: 44d88612fea8a8f36de82e1278abb02f."
  • "List the latest community comments tagged phishing and summarise which brands they target."

FAQ

Does it work with Claude Code as well as Claude Desktop? Yes, point both at https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID.

Next steps

Was this guide helpful?

Connect VirusTotal to Claude in 2 minutes

Start a free trial on AnythingMCP Cloud, connect VirusTotal in the guided setup, then add your MCP URL to Claude. No code and no server to run.

Related guides

Connectors

Connect VirusTotal to ChatGPT via MCP: Threat Reports

Threat intelligence from the VirusTotal API v3: file reports by hash, URL, domain and IP reports from about 70 engines, search, relationships between indicators, sandbox behaviour and MITRE ATT&CK, community comments and votes, rescans and, once an admin enables it, URL scanning.

Connectors

Connect VirusTotal to Cursor via MCP: Threat Reports

Threat intelligence from the VirusTotal API v3: file reports by hash, URL, domain and IP reports from about 70 engines, search, relationships between indicators, sandbox behaviour and MITRE ATT&CK, community comments and votes, rescans and, once an admin enables it, URL scanning.

Connectors

Connect VirusTotal to Gemini CLI via MCP

Threat intelligence from the VirusTotal API v3: file reports by hash, URL, domain and IP reports from about 70 engines, search, relationships between indicators, sandbox behaviour and MITRE ATT&CK, community comments and votes, rescans and, once an admin enables it, URL scanning.

Connectors

Connect VirusTotal to Meta Muse via MCP

Threat intelligence from the VirusTotal API v3: file reports by hash, URL, domain and IP reports from about 70 engines, search, relationships between indicators, sandbox behaviour and MITRE ATT&CK, community comments and votes, rescans and, once an admin enables it, URL scanning.

Connectors

VirusTotal MCP Server: Files, Domains and IPs

Threat intelligence from the VirusTotal API v3: file reports by hash, URL, domain and IP reports from about 70 engines, search, relationships between indicators, sandbox behaviour and MITRE ATT&CK, community comments and votes, rescans and, once an admin enables it, URL scanning.

Connectors

Connect VirusTotal to Microsoft Copilot via MCP

Threat intelligence from the VirusTotal API v3: file reports by hash, URL, domain and IP reports from about 70 engines, search, relationships between indicators, sandbox behaviour and MITRE ATT&CK, community comments and votes, rescans and, once an admin enables it, URL scanning.