@burtthecoder/mcp-virustotal

中文文档
1.0.38发布于 2026/11/05MITES Module构建来源已验证近 30 天下载 4694

MCP server for VirusTotal API integration

原始使用文档
文档目录10 节
  1. Highlights
  2. How it works
  3. Quickstart
  4. Tools
  5. HTTP streaming transport
  6. Environment variables
  7. Security
  8. Troubleshooting
  9. Development
  10. License

mcp-virustotal: threat intelligence for AI agents

npm version CI License: MIT Node 20 or newer MCP Registry

Quickstart · Tools · HTTP · Security · Troubleshooting · Docs

mcp-virustotal is an MCP server that gives AI agents access to the VirusTotal v3 API. Hand your agent a hash, URL, IP or domain and get back the detection report plus the relationships an analyst would pivot on: contacted hosts, dropped files, resolutions, threat actors.

[!NOTE] Independent project, not affiliated with VirusTotal or Google. You need your own VirusTotal API key.

Highlights

  • Reports with relationships. File, URL, IP and domain reports fetch key relationships in one batched ?relationships= call to save quota.
  • Cache first. get_url_report returns the cached VirusTotal report and only submits a scan on a cache miss.
  • Pivot tools. Corpus search with VTI-style modifiers (type:peexe positives:5+), merged sandbox behaviour summaries, and threat-actor and malware-family collections.
  • Full relationship paging. 100+ relationship types across files, URLs, IPs and domains, with cursor pagination.
  • Two transports. stdio for desktop clients, HTTP streaming for a shared service.
  • Tested. Unit tests for the formatters and API layer run in CI on Node 20, 22 and 24.

How it works

flowchart LR
    A["AI agent<br/>(Claude, Codex, Gemini, VS Code)"] -->|"MCP over stdio or HTTP"| S["mcp-virustotal"]
    S -->|"validate input,<br/>HTTPS + API key"| V["VirusTotal v3 API"]
    V -->|"JSON"| S
    S -->|"formatted report text"| A

Quickstart

Requirements: Node.js 20 or newer and a VirusTotal API key.

# Claude Code
claude mcp add --transport stdio --env VIRUSTOTAL_API_KEY=your-key virustotal -- npx -y @burtthecoder/mcp-virustotal

# Codex CLI
codex mcp add virustotal --env VIRUSTOTAL_API_KEY=your-key -- npx -y @burtthecoder/mcp-virustotal

# Gemini CLI
gemini mcp add -e VIRUSTOTAL_API_KEY=your-key virustotal npx -y @burtthecoder/mcp-virustotal

For Claude Desktop, VS Code and running from source, see Connect a client.

Then ask your agent: "Look up the SHA-256 275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f (the EICAR test file) and show what it drops and contacts."

Tools

Eleven tools. Full parameters and relationship lists are in the tool reference.

GroupTools
Reports (with relationships)get_file_report, get_url_report, get_ip_report, get_domain_report
Relationship pagingget_file_relationship, get_url_relationship, get_ip_relationship, get_domain_relationship
Search and pivotsearch_vt, get_file_behaviour_summary, get_collection

HTTP streaming transport

stdio is the default. Set MCP_TRANSPORT=httpStream to run a standalone HTTP service:

MCP_TRANSPORT=httpStream MCP_PORT=3000 VIRUSTOTAL_API_KEY=your-key node build/index.js
docker build -t mcp-virustotal .
docker run -p 127.0.0.1:3000:3000 -e VIRUSTOTAL_API_KEY=your-key -e MCP_TRANSPORT=httpStream mcp-virustotal

A health check is served at /health.

Environment variables

VariableDefaultDescription
VIRUSTOTAL_API_KEY(required)Your VirusTotal API key
MCP_TRANSPORTstdiostdio or httpStream
MCP_HOSTlocalhostBind address (httpStream only). The Docker image sets 0.0.0.0
MCP_PORT3000HTTP port (httpStream only)
MCP_ENDPOINT/mcpHTTP endpoint path (httpStream only)

Security

[!WARNING] The HTTP transport has no authentication. Keep the port on localhost or behind an authenticating reverse proxy, or anyone who can reach it can spend your API quota.

  • Tool arguments are validated with zod schemas before any request is built.
  • The API key is read from the environment and sent only to VirusTotal.
  • Lookups send your indicators to VirusTotal. A URL scan on a cache miss submits that URL for analysis.

Report vulnerabilities privately; see SECURITY.md.

Troubleshooting

  • Wrong API key: the key is usually 64 characters with no spaces or quotes. Restart the client after changing config.
  • 429 errors: the public tier allows 4 requests per minute.
  • Logs: logs/mcp-virustotal-server.log in the package directory.

More in the troubleshooting guide.

Development

git clone https://github.com/w0h1v/mcp-virustotal && cd mcp-virustotal
npm ci
npm test                                  # build + unit tests, no key or network
VIRUSTOTAL_API_KEY=your-key npm run smoke # all 11 tools against the real API

The smoke test paces calls at 20 s for the public-tier limit and isn't suited to free tiers reduced to a few lookups a day. See CONTRIBUTING.md and the changelog.

License

MIT. See LICENSE.

版本与发布记录

@burtthecoder/mcp-virustotal 共发布 32 个版本,首次发布于 2024/12/13;过去 12 个月发布了 21 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.0.38latest2026/11/054 天前
1.0.372026/11/045 天前
1.0.362026/11/045 天前
1.0.352026/10/1425 天前
1.0.342026/10/1326 天前
1.0.332026/10/1029 天前

关于 @burtthecoder/mcp-virustotal 的常见问题

@burtthecoder/mcp-virustotal 是什么?

MCP server for VirusTotal API integration

如何安装 @burtthecoder/mcp-virustotal?

在项目目录运行 npm install @burtthecoder/mcp-virustotal,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 mcp-virustotal,可以用 npx mcp-virustotal 直接运行。

@burtthecoder/mcp-virustotal 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/burtthecoder__mcp-virustotal 是否存在。

@burtthecoder/mcp-virustotal 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@burtthecoder/mcp-virustotal 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@burtthecoder/mcp-virustotal 可以商用吗?

@burtthecoder/mcp-virustotal 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@burtthecoder/mcp-virustotal 的下载量有多少?

根据 npm 官方下载统计,@burtthecoder/mcp-virustotal 在 2026/10/09 – 2026/11/07 这 30 天内被下载 4,694 次,日均约 156 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@burtthecoder/mcp-virustotal 还在维护吗?

最新版本 1.0.38 发布于 2026/11/05(4 天前);至今共发布 32 个版本,其中过去 12 个月发布了 21 个;首次发布于 2024/12/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。