VirusTotal MCP Server

VirusTotal MCP Server

提供全面的安全分析工具,用于查询 VirusTotal API,能够生成关于 URL、文件、IP 地址和域名的详细安全报告,并自动获取关联关系数据。

Category
访问服务器

README

VirusTotal MCP 服务器

smithery badge

一个用于查询 VirusTotal API 的模型上下文协议 (MCP) 服务器。该服务器提供全面的安全分析工具,并自动获取关系数据。它可以与 MCP 兼容的应用程序(如 Claude Desktop)无缝集成。

快速开始 (待定)

通过 Smithery 安装

要通过 Smithery 为 Claude Desktop 自动安装 virustotal-mcp,请执行以下操作:

npx -y @smithery/cli install @emeryray2002/virustotal-mcp --client claude

手动安装

待定

功能

  • 全面的分析报告:每个分析工具都会自动获取相关的关系数据以及基本报告,从而在单个请求中提供完整的安全概览
  • URL 分析:安全报告,自动获取联系的域名、下载的文件和威胁行为者
  • 文件分析:文件哈希的详细分析,包括行为、释放的文件和网络连接
  • IP 分析:安全报告,包含历史数据、解析和相关威胁
  • 域名分析:DNS 信息、WHOIS 数据、SSL 证书和子域名
  • 详细的关系分析:用于查询特定类型关系的专用工具,支持分页
  • 高级搜索:VT Intelligence 搜索功能,用于跨 VirusTotal 数据集进行复杂查询
  • 丰富的格式:清晰的分类和分析结果以及关系数据的呈现

工具

报告工具(具有自动关系获取功能)

1. URL 报告工具

  • 名称:get_url_report
  • 描述:获取全面的 URL 分析报告,包括安全扫描结果和关键关系(通信文件、联系的域名/IP、下载的文件、重定向、威胁行为者)
  • 参数:
    • url (必需): 要分析的 URL
  • 示例:
await get_url_report(url="http://example.com/suspicious")

2. 文件报告工具

  • 名称:get_file_report
  • 描述:使用文件哈希(MD5/SHA-1/SHA-256)获取全面的文件分析报告。包括检测结果、文件属性和关键关系(行为、释放的文件、网络连接、嵌入内容、威胁行为者)
  • 参数:
    • hash (必需): 文件的 MD5、SHA-1 或 SHA-256 哈希值
  • 示例:
await get_file_report(hash="44d88612fea8a8f36de82e1278abb02f")

3. IP 报告工具

  • 名称:get_ip_report
  • 描述:获取全面的 IP 地址分析报告,包括地理位置、信誉数据和关键关系(通信文件、历史证书/WHOIS、解析)
  • 参数:
    • ip (必需): 要分析的 IP 地址
  • 示例:
await get_ip_report(ip="8.8.8.8")

4. 域名报告工具

  • 名称:get_domain_report
  • 描述:获取全面的域名分析报告,包括 DNS 记录、WHOIS 数据和关键关系(SSL 证书、子域名、历史数据)
  • 参数:
    • domain (必需): 要分析的域名
  • 示例:
await get_domain_report(domain="example.com")

关系工具(用于详细分析)

1. URL 关系工具

  • 名称:get_url_relationship
  • 描述:查询 URL 的特定关系类型,支持分页
  • 参数:
    • url (必需): 要获取关系的 URL
    • relationship (必需): 要查询的关系类型
      • 可用关系: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 (可选, 默认: 10): 要检索的相关对象的最大数量 (1-40)
    • cursor (可选): 用于分页的延续光标
  • 示例:
await get_url_relationship(
    url="http://example.com/suspicious",
    relationship="communicating_files",
    limit=20
)

2. 文件关系工具

  • 名称:get_file_relationship
  • 描述:查询文件的特定关系类型,支持分页
  • 参数:
    • hash (必需): 文件的 MD5、SHA-1 或 SHA-256 哈希值
    • relationship (必需): 要查询的关系类型
      • 可用关系: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 (可选, 默认: 10): 要检索的相关对象的最大数量 (1-40)
    • cursor (可选): 用于分页的延续光标
  • 示例:
await get_file_relationship(
    hash="44d88612fea8a8f36de82e1278abb02f",
    relationship="behaviours",
    limit=20
)

3. IP 关系工具

  • 名称:get_ip_relationship
  • 描述:查询 IP 地址的特定关系类型,支持分页
  • 参数:
    • ip (必需): 要分析的 IP 地址
    • relationship (必需): 要查询的关系类型
      • 可用关系:comments, communicating_files, downloaded_files, graphs, historical_ssl_certificates, historical_whois, related_comments, related_references, related_threat_actors, referrer_files, resolutions, urls
    • limit (可选, 默认: 10): 要检索的相关对象的最大数量 (1-40)
    • cursor (可选): 用于分页的延续光标
  • 示例:
await get_ip_relationship(
    ip="8.8.8.8",
    relationship="communicating_files",
    limit=20
)

4. 域名关系工具

  • 名称:get_domain_relationship
  • 描述:查询域名的特定关系类型,支持分页
  • 参数:
    • domain (必需): 要分析的域名
    • relationship (必需): 要查询的关系类型
      • 可用关系:caa_records, cname_records, comments, communicating_files, downloaded_files, historical_ssl_certificates, historical_whois, immediate_parent, mx_records, ns_records, parent, referrer_files, related_comments, related_references, related_threat_actors, resolutions, soa_records, siblings, subdomains, urls, user_votes
    • limit (可选, 默认: 10): 要检索的相关对象的最大数量 (1-40)
    • cursor (可选): 用于分页的延续光标
  • 示例:
await get_domain_relationship(
    domain="example.com",
    relationship="historical_ssl_certificates",
    limit=20
)

5. 高级搜索工具

  • 名称:advanced_corpus_search
  • 描述:使用 VT Intelligence 查询语法跨 VirusTotal 数据集执行高级搜索
  • 参数:
    • query (必需): VT Intelligence 搜索查询字符串
    • limit (可选, 默认: 20): 每页返回的最大结果数
    • cursor (可选): 用于分页的延续光标
    • descriptors_only (可选): 如果为 true,则仅检索对象描述符,而不是完整对象
  • 示例:
await advanced_corpus_search(
    query="type:peexe size:100kb+ positives:5+",
    limit=20,
    cursor=None
)

要求

  • Python >= 3.11
  • 有效的 VirusTotal API 密钥
  • 必需的 Python 包:
    • aiohttp >= 3.9.0
    • mcp[cli] >= 1.4.1
    • python-dotenv >= 1.0.0
    • typing-extensions >= 4.8.0

错误处理

该服务器包括全面的错误处理,用于:

  • 无效的 API 密钥
  • 速率限制
  • 网络错误
  • 无效的输入参数
  • 无效的哈希格式
  • 无效的 IP 格式
  • 无效的 URL 格式
  • 无效的关系类型
  • 分页错误

开发

要在开发模式下运行:

python -m virustotal_mcp

贡献

  1. Fork 存储库
  2. 创建一个功能分支 (git checkout -b feature/amazing-feature)
  3. 提交您的更改 (git commit -m 'Add amazing feature')
  4. 将分支推送到远程仓库 (git push origin feature/amazing-feature)
  5. 打开一个 Pull Request

许可证

该项目根据 Apache License 2.0 获得许可 - 有关详细信息,请参见 LICENSE 文件。

致谢

  • VirusTotal 提供 API 和威胁情报平台
  • MCP 项目提供服务器框架
  • 贡献者和维护者

支持

如需支持,请:

  1. 查看文档
  2. 搜索现有问题
  3. 如果需要,创建一个新问题

安全

  • 永远不要提交 API 密钥或敏感凭据
  • 使用环境变量进行配置
  • 在处理威胁情报数据时,请遵循安全最佳实践

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选