Skip to main content
Glama
VirusTotal

VirusTotal MCP

Official

Submit a local file to VirusTotal

submit_local_file
Destructive

Upload a local file (max 32 MB) to VirusTotal to check for threats and share it with the community; optional SHA256 verification confirms integrity before upload.

Instructions

Submit one local regular file of at most 32000000 bytes in standard mode.

Reads the local server's filesystem, never a remote client's path or a URL. Copies and hashes the bytes; an optional expected SHA256 must match that copy. Submit only when the user explicitly requests submission of this file. Ask before sharing the user's own documents, internal code, credentials or personal data, including in attachments or unfamiliar files. Standard submission is not confidential: content is shared with the VirusTotal community and partners. The tool adds no confirmation; host permissions and current VTAI rights and quota still apply. Never retries a POST. A durable reference permits only receipt recovery after an interrupted call. Submitted/unknown is not completion or a security verdict; use get_submission and get_analysis. Cancelling locally does not withdraw an accepted file.

Input Schema

NameRequiredDescriptionDefault
pathYes
expected_sha256No

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.9.1

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover the safety profile (destructive, non-idempotent, open-world), and the description adds genuinely non-derivable traits: standard submission is not confidential and content is shared with the community and partners, the tool adds no confirmation, host permissions and quota still apply, it never retries a POST, and cancelling locally does not withdraw an accepted file.

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 and constraint, then organized as short standalone lines, so it scans well and no sentence is filler. It is still a dense block of many statements delivered as a single paragraph, which costs it the top mark.

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?

For a destructive, non-idempotent, open-world submission tool with no output schema, this covers everything an agent needs: identity, size and locality limits, consent policy, confidentiality consequences, confirmation and retry behavior, cancellation semantics, and how to interpret the result ('submitted/unknown is not completion or a security verdict').

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 carry both parameters, and it largely does: 'path' is constrained to the local server's filesystem and to a single regular file of at most 32000000 bytes, and 'expected_sha256' is described as optional but required to match the hashed copy. It stops short of giving path format expectations (absolute vs relative) or SHA256 formatting, so not quite a 5.

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

Purpose5/5

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

States a specific verb and resource ('Submit one local regular file... in standard mode') with explicit scope limits (single file, 32000000 bytes). The line 'Reads the local server's filesystem, never a remote client's path or a URL' separates it from submit_url and from remote-path siblings without the agent opening any schema.

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?

Gives explicit gating conditions: submit only on an explicit user request for this file, and ask first before sharing personal documents, internal code, credentials, attachments or unfamiliar files. It also names the follow-up alternatives ('use get_submission and get_analysis'), so both when-to-use and what-to-do-next are covered.

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