VirusTotal AI

VirusTotal intelligence in your agent

Look up existing reports for file hashes, URLs, domains and IPs from your agent. Set up access once, then reuse it across your clients.

VTAI access is free within the limits below and requires a VTAI token. You do not need a VirusTotal API key for basic use. Your client or model provider may have separate account requirements and charges.

1. Choose your access

VTAI credential

Keep using your protected credential file. Continue to choose a client below; reconnecting does not require another registration.

Keep credentials out of prompts, tool arguments and URLs. Enter them only in trusted credential settings or the explicitly labelled fields on this page.

Protect a downloaded credential

A browser cannot verify that a download was saved or set its file permissions. On macOS or Linux, adjust the Downloads path if necessary, then run these commands in your own terminal. The destination must not already exist.

(
  set -eu
  install -d -m 700 "$HOME/.config/vt-mcp"
  test ! -e "$HOME/.config/vt-mcp/token"
  test ! -L "$HOME/.config/vt-mcp/token"
  install -m 600 "$HOME/Downloads/vtai-token.txt" "$HOME/.config/vt-mcp/token"
)

After confirming the protected file exists, remove the extra copy from Downloads. If you already have a credential at that destination, keep it or choose another path and adjust the configuration below. On Windows, use a protected file location and Windows access permissions; these POSIX commands do not apply.

2. Choose a client and connection

Choose one connection for the virustotal entry. The examples contain only paths and environment-variable names, so they can be copied without a credential.

Merge this entry into ~/.codex/config.toml, preserving other servers and settings.

[mcp_servers.virustotal]
url = "https://ai.virustotal.com/mcp"

[mcp_servers.virustotal.env_http_headers]
x-apikey = "VTAI_MCP_TOKEN"

No local installation of Python or vt-mcp is required for the remote connection. The client sends x-apikey from its VTAI_MCP_TOKEN environment variable. In your own Bash terminal, start the selected client from your protected file:

An already open app or one launched from an icon may not inherit this environment. Use the hostname of the test service when validating a staging deployment, retaining the prefix shown in the URL. Do not ask an assistant to inspect your credential file or environment.

Codex CLI is the verified reference client. Check the client matrix for tested versions, workflow scope and remaining checks. Configuration examples alone do not establish a complete connection for other clients.

This connection uses a VTAI API credential; it does not provide OAuth. A client that requires OAuth needs a separate integration. These instructions concern the named local clients, not the hosted ChatGPT or Claude connector screens.

3. Check access

This optional check looks up the report for the SHA-256 of an empty file. It uses your shared query quota, including for an unknown report or an upstream failure. The page does not upload a file or automatically repeat the check.

Then open your client’s MCP tools and confirm that it lists get_file_report, get_url_report, get_domain_report, get_ip_report and get_analysis. Ask it to call get_domain_report for example.com and check the source, analysis date and report link. That separate tool call also consumes a query.

Access and limits

REST and MCP share 60 admitted queries per fixed 60-second window and 1000 per UTC day, per agent. A lookup that returns unknown or fails upstream still consumes an admitted query. Provider limits may also apply.

A missing report or absence of detections does not establish safety. URL lookup discloses the complete URL to VTAI and VirusTotal. Use a domain lookup when paths, query parameters or fragments contain private information. MCP tools only read reports and analysis status; they do not submit samples or start analyses. File submission is an explicit local CLI operation with consent; see the submission and analysis guide.

Disconnect

Remove or disable the VirusTotal MCP entry in the client’s configuration, restart or reload the client and check that the tools disappear. Remove stored credentials only if no other client needs that file or environment setting. Disconnecting one client does not revoke access from other clients sharing that credential or delete VTAI history. Reconnect with the same credential while it remains active.

Revoke this credential

VTAI currently gives each registered agent one credential. Revoking it disables that agent’s access through REST and MCP. Existing records remain. You can register a new agent to obtain new access. A query admitted before revocation may finish.

Keep your protected copy if revocation is not confirmed, so you can try again.

Advanced API settings and connection problems

The remote MCP URL is https://ai.virustotal.com/mcp and its sole credential header is x-apikey. The registration API is POST /api/v3/agents/register.

401 means a credential is missing; 403 means it was not accepted. For a query quota error, wait for the supplied retry delay. A service failure is not an unknown report. A missing /mcp endpoint is a connection problem, not an unknown indicator. Ask the client to show the structured tool error without exposing its stored credential.