Skip to main content
Glama
VirusTotal

VirusTotal MCP

Official

Submit a URL to VirusTotal

submit_url
DestructiveIdempotent

Submit one HTTP(S) URL for standard VirusTotal analysis to check it for threats. Use only when the user explicitly requests this URL and has reviewed sharing risks.

Instructions

Request standard VirusTotal analysis of one HTTP(S) URL.

Submit only when the user explicitly requests analysis of this URL. Ask before sharing URLs containing the user's own documents, internal code, credentials or personal data. VirusTotal may visit the URL and share it with its community and partners, including query and fragment. Retain a new canonical lowercase UUIDv4 request_id before calling. No tool-level confirmation is added; host permissions and current VTAI rights and quota apply. The same ID is reserved for the same operation; changing its target conflicts. After uncertainty, use get_submission(request_id), never a new ID or an automatic POST retry. Use the registered analysis_id with get_analysis; submitted is not completed.

Input Schema

NameRequiredDescriptionDefault
urlYes
request_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.9.1

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond annotations: discloses that VirusTotal may visit the URL and share it with community and partners including query and fragment, that no tool-level confirmation is added, that host permissions and VTAI rights/quota apply, that canonical lowercase UUIDv4 must be retained, and that the same ID is reserved for the same operation with target changes conflicting. This is rich operational context that annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then conditional guidance and operational details. Slightly dense with multiple constraints packed into a few lines, but every sentence carries necessary instruction for a destructive, non-idempotent-feeling submission tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, consent requirements, side effects (community sharing), quota/permission constraints, ID lifecycle, and recovery routing. For a destructive open-world submission tool with no output schema, this is complete enough for an agent to call correctly and recover from errors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It gives format guidance for request_id (new canonical lowercase UUIDv4, same ID reserved for same operation, changing target conflicts) and clarifies URL must be HTTP(S). It does not fully document the url parameter's constraints (length, validation), but the request_id semantics are unusually well specified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: requesting standard VirusTotal analysis of one HTTP(S) URL. It distinguishes from sibling read tools (get_url_report) by being a submission. However it doesn't explicitly contrast with submit_file or reanalyze_domain, so 4 not 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-submit ('only when the user explicitly requests analysis of this URL'), when to ask first (URLs containing user's own documents, internal code, credentials or personal data), and error recovery routing ('use get_submission(request_id), never a new ID or an automatic POST retry'). Names the alternative tools to use after uncertainty.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.