# Virustotal — MCP server on mcp.ai > Connect your Virustotal account and use 16 tools for security and identity straight from your AI agent. Connect with your own API key. VirusTotal is a free online service that analyzes files and URLs for viruses, worms, trojans, and other kinds of malicious content using multiple antivirus engines and website scanners. By: mcp.ai · official Page: https://mcp.ai/virustotal ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_virustotal?ms=1787293680000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/virustotal/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/virustotal/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/virustotal/skill.md Postman collection (v2.1): https://mcp.ai/virustotal/postman.json ## Tools - virustotal_add_comment(url?: string, file?: string, text: string, domain?: string, ip_address?: string) — Tool to add a comment to a VirusTotal resource (file, URL, domain, or IP address). Use after analyzing a resource to leave contextual feedback. Provide exactly one identifier per call. - virustotal_add_vote(data: object) — Tool to add a vote (harmless/malicious) to a VirusTotal resource. Use after reviewing analysis results to submit your verdict. - virustotal_get_analysis(id: string) — Tool to retrieve the analysis report of a file or URL submission. Use after obtaining an analysis ID to fetch its detailed report. Analysis results may be incomplete immediately after submission; poll - virustotal_get_comments(sort?: string, limit?: integer, cursor?: string, filter_resource: string) — Tool to retrieve the latest comments on a VirusTotal resource. Use when you need to review user-generated comments for a file, URL, domain, or IP after obtaining its identifier. - virustotal_get_domain_relationships(limit?: integer, cursor?: string, domain: string, relationship: string) — Tool to retrieve relationship objects for a given domain. Use when you have a domain and need to explore its related entities. - virustotal_get_domain_report(domain: string) — Tool to retrieve the analysis report of a domain. Use when you need detailed insight on a domain's reputation and analysis stats. No malicious signals on obscure or low-traffic domains may indicate li - virustotal_get_file_report(id: string) — Tool to retrieve the analysis report of a file. Use when you have a file's hash and need detailed scan metadata. Recently submitted files may return partial results; retry after a short delay before t - virustotal_get_ip_address_relationships(ip: string, limit?: integer, cursor?: string, relationship: string) — Tool to retrieve objects related to a specific IP address by relationship type. Use when you have an IP and need to explore connected files, URLs, or other entities. - virustotal_get_ip_address_report(ip: string) — Tool to retrieve the analysis report of an IP address. Use when you need detailed insight on an IP's reputation, ASN, country, and analysis stats. Low or zero detections indicate unknown risk, not saf - virustotal_get_metadata() — Tool to retrieve VirusTotal metadata. Use when you need information about available privileges, relationships between resources (like files, domains, IPs, URLs), and supported antivirus engines. - virustotal_get_url_report(id: string) — Tool to retrieve the analysis report of a URL. Use when you have a URL identifier (base64-url without padding) and need detailed scan results, reputation, and metadata. Results may be incomplete immed - virustotal_get_votes(limit?: integer, cursor?: string, object_id: string, object_type: string) — Tool to retrieve votes on files, URLs, domains, or IP addresses. Use when you need to view community votes for a given object. - virustotal_rescan_file(id: string) — Tool to re-analyze a previously submitted file. Use when you need updated analysis results after an initial scan. - virustotal_scan_url(url: string) — Tool to submit a URL for scanning. Use when you have a URL and need to submit it to VirusTotal to obtain an analysis ID for later retrieval. The returned analysis ID is preliminary — scanning engines - virustotal_search(limit?: integer, query: string, cursor?: string) — Tool to search for objects in the VirusTotal database. Use when locating files, URLs, domains, IPs, or comments matching a query. Supports pagination with limit and cursor. - virustotal_upload_file(file: string, filename?: string) — Tool to upload a file for scanning. Use when you have binary file content ready to submit for VirusTotal analysis. ## Example prompts - "What can I do in Virustotal?" - "Show me a summary of my Virustotal account" ## Links Docs: https://mcp.ai/docs/mcps/virustotal Website: https://mcp.ai/mcps/virustotal