VirusTotal MCP 服务器
用于查询VirusTotal API 的模型上下文协议 (MCP) 服务器。该服务器提供全面的安全分析工具,并可自动获取关系数据。它与Claude Desktop等兼容 MCP 的应用程序无缝集成。
快速入门(待定)
通过 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、下载的文件、重定向、威胁行为者)
- 参数:
- 例子:
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、解析)
- 参数:
- 例子:
await get_ip_report(ip="8.8.8.8")
4. 域名报告工具
- 名称:
get_domain_report
- 描述:获取全面的域名分析报告,包括 DNS 记录、WHOIS 数据和关键关系(SSL 证书、子域名、历史数据)
- 参数:
- 例子:
await get_domain_report(domain="example.com")
关系工具(用于详细分析)
1. URL关系工具
- 名称:
get_url_relationship
- 描述:查询具有分页支持的 URL 的特定关系类型
- 参数:
url
(必填):获取关系的 URLrelationship
(必需):要查询的关系类型- 可用关系:分析、评论、communicating_files、contacted_domains、contacted_ips、downloaded_files、图表、last_serving_ip_address、network_location、referrer_files、referrer_urls、redirecting_urls、redirects_to、related_comments、related_references、related_threat_actors、提交
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
(必需):要查询的关系类型- 可用的关系:分析、行为、bundled_files、carbonblack_children、carbonblack_parents、ciphered_bundled_files、ciphered_parents、线索、集合、评论、compressed_parents、contacted_domains、contacted_ips、contacted_urls、dropped_files、email_attachments、email_parents、embedded_domains、embedded_ips、embedded_urls、execution_parents、图表、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、提交、屏幕截图、urls_for_embedded_js、投票
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
- 打字扩展> = 4.8.0
错误处理
该服务器包括针对以下方面的全面错误处理:
- 无效的 API 密钥
- 速率限制
- 网络错误
- 输入参数无效
- 无效的哈希格式
- 无效的 IP 格式
- 无效的 URL 格式
- 无效的关系类型
- 分页错误
发展
要在开发模式下运行:
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature
) - 提交您的更改(
git commit -m 'Add amazing feature'
) - 推送到分支(
git push origin feature/amazing-feature
) - 打开拉取请求
执照
该项目根据 Apache License 2.0 获得许可 - 有关详细信息,请参阅LICENSE文件。
致谢
- VirusTotal 提供 API 和威胁情报平台
- 服务器框架的 MCP 项目
- 贡献者和维护者
支持
如需支持,请:
- 检查文档
- 搜索现有问题
- 如果需要,创建新问题
安全
- 切勿提交 API 密钥或敏感凭证
- 使用环境变量进行配置
- 处理威胁情报数据时遵循安全最佳实践