VirusTotal MCP Server

  • Security
JavaScript
MIT
328
1
  • Apple
A
security – no known vulnerabilities (report Issue)
A
license - permissive license (MIT)
A
quality - confirmed to work

A MCP server for querying the VirusTotal API. This server provides tools for scanning URLs, analyzing file hashes, and retrieving IP address reports.

  1. Tools
  2. Prompts
  3. Resources
  4. Server Configuration
  5. README.md

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Tools

Functions exposed to the LLM to take actions

NameDescription
scan_urlScan a URL for potential security threats
get_url_relationshipGet related objects for a URL (e.g., downloaded files, contacted domains)
scan_file_hashGet analysis results for a file hash
get_file_relationshipGet related objects for a file (e.g., dropped files, contacted domains)
get_ip_reportGet security analysis report for an IP address
get_ip_relationshipGet related objects for an IP address (e.g., downloaded files, resolutions)

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
VIRUSTOTAL_API_KEYYesYour VirusTotal API key
README.md

VirusTotal MCP Server

A Model Context Protocol (MCP) server for querying the VirusTotal API. This server provides tools for scanning URLs, analyzing file hashes, and retrieving IP address reports. It is designed to integrate seamlessly with MCP-compatible applications like Claude Desktop.

Quick Start (Recommended)

  1. Install the server globally via npm:
npm install -g @burtthecoder/mcp-virustotal
  1. Add to your Claude Desktop configuration file:
{ "mcpServers": { "virustotal": { "command": "mcp-virustotal", "env": { "VIRUSTOTAL_API_KEY": "your-virustotal-api-key" } } } }

Configuration file location:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  1. Restart Claude Desktop

Alternative Setup (From Source)

If you prefer to run from source or need to modify the code:

  1. Clone and build:
git clone <repository_url> cd mcp-virustotal npm install npm run build
  1. Add to your Claude Desktop configuration:
{ "mcpServers": { "virustotal": { "command": "node", "args": ["--experimental-modules", "/absolute/path/to/mcp-virustotal/build/index.js"], "env": { "VIRUSTOTAL_API_KEY": "your-virustotal-api-key" } } } }

Features

  • URL Scanning: Submit and analyze URLs for potential security threats
  • File Hash Analysis: Get detailed analysis results for file hashes
  • IP Reports: Retrieve comprehensive security analysis reports for IP addresses
  • Relationship Analysis: Get related objects for URLs, files, and IP addresses

Tools

1. URL Scan Tool

  • Name: scan_url
  • Description: Scan a URL for potential security threats
  • Parameters:
    • url (required): The URL to scan

2. URL Relationship Tool

  • Name: get_url_relationship
  • Description: Get related objects for a URL (e.g., downloaded files, contacted domains)
  • Parameters:
    • url (required): The URL to get relationships for
    • relationship (required): Type of relationship to query
      • Available relationships: analyses, comments, communicating_files, contacted_domains, contacted_ips, downloaded_files, graphs, last_serving_ip_address, network_location, referrer_files, referrer_urls, redirecting_urls, redirects_to, related_comments, related_references, related_threat_actors, submissions
    • limit (optional, default: 10): Maximum number of related objects to retrieve
    • cursor (optional): Continuation cursor for pagination

3. File Hash Analysis Tool

  • Name: scan_file_hash
  • Description: Get analysis results for a file hash
  • Parameters:
    • hash (required): MD5, SHA-1 or SHA-256 hash of the file

4. File Relationship Tool

  • Name: get_file_relationship
  • Description: Get related objects for a file (e.g., dropped files, contacted domains)
  • Parameters:
    • hash (required): MD5, SHA-1 or SHA-256 hash of the file
    • relationship (required): Type of relationship to query
      • Available relationships: analyses, behaviours, bundled_files, carbonblack_children, carbonblack_parents, ciphered_bundled_files, ciphered_parents, clues, collections, comments, compressed_parents, contacted_domains, contacted_ips, contacted_urls, dropped_files, email_attachments, email_parents, embedded_domains, embedded_ips, embedded_urls, execution_parents, graphs, itw_domains, itw_ips, itw_urls, memory_pattern_domains, memory_pattern_ips, memory_pattern_urls, overlay_children, overlay_parents, pcap_children, pcap_parents, pe_resource_children, pe_resource_parents, related_references, related_threat_actors, similar_files, submissions, screenshots, urls_for_embedded_js, votes
    • limit (optional, default: 10): Maximum number of related objects to retrieve
    • cursor (optional): Continuation cursor for pagination

5. IP Report Tool

  • Name: get_ip_report
  • Description: Get security analysis report for an IP address
  • Parameters:
    • ip (required): IP address to analyze

6. IP Relationship Tool

  • Name: get_ip_relationship
  • Description: Get related objects for an IP address (e.g., downloaded files, resolutions)
  • Parameters:
    • ip (required): IP address to analyze
    • relationship (required): Type of relationship to query
      • Available relationships: comments, communicating_files, downloaded_files, graphs, historical_ssl_certificates, historical_whois, related_comments, related_references, related_threat_actors, referrer_files, resolutions, urls
    • limit (optional, default: 10): Maximum number of related objects to retrieve
    • cursor (optional): Continuation cursor for pagination

Requirements

Troubleshooting

API Key Issues

If you see "Wrong API key" errors:

  1. Check the log file at /tmp/mcp-virustotal-server.log (on macOS) for API key status
  2. Verify your API key:
    • Should be a valid VirusTotal API key (usually 64 characters)
    • No extra spaces or quotes around the key
    • Must be from the API Keys section in your VirusTotal account
  3. After any configuration changes:
    • Save the config file
    • Restart Claude Desktop
    • Check logs for new API key status

Module Loading Issues

If you see ES module loading warnings:

  1. For global installation: Use the simple configuration shown in Quick Start
  2. For source installation: Ensure you include --experimental-modules in the args

Development

To run in development mode with hot reloading:

npm run dev

Error Handling

The server includes comprehensive error handling for:

  • Invalid API keys
  • Rate limiting
  • Network errors
  • Invalid input parameters
  • Invalid hash formats
  • Invalid IP formats
  • Invalid URL formats
  • Invalid relationship types
  • Pagination errors

Version History

  • v1.0.0: Initial release with core functionality
  • v1.1.0: Added relationship analysis tools for URLs, files, and IP addresses
  • v1.2.0: Added improved error handling and logging
  • v1.3.0: Added pagination support for relationship queries

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues with dependencies of the server.
  • Extract server characteristics such as tools, resources, prompts, and required parameters.

Our directory badge helps users to quickly asses that the MCP server is safe, server capabilities, and instructions for installing the server.

Copy the following code to your README.md file:

Alternative MCP servers

  • A
    security
    A
    license
    A
    quality
    MCP server for querying the Shodan API and Shodan CVEDB. This server provides tools for IP lookups, device searches, DNS lookups, vulnerability queries, CPE lookups, and more.
    MIT
    • Apple
  • -
    security
    A
    license
    -
    quality
    Lets you use Claude Desktop, or any MCP Client, to use natural language to accomplish things on your Cloudflare account.
    MIT
  • A
    security
    F
    license
    A
    quality
    A standalone Model Context Protocol server for [Snyk](https://snyk.io/) security scanning functionality.
  • -
    security
    A
    license
    -
    quality
    Use HuggingFace Spaces directly from Claude. Use Open Source Image Generation, Chat, Vision tasks and more. Supports Image, Audio and text uploads/downloads.
    MIT
    • Apple