VirusTotal MCP 服务器
用于查询VirusTotal API 的模型上下文协议 (MCP) 服务器。该服务器提供全面的安全分析工具,并可自动获取关系数据。它与Claude Desktop等兼容 MCP 的应用程序无缝集成。
快速启动(推荐)
通过 Smithery 安装
要通过Smithery自动为 Claude Desktop 安装 VirusTotal Server:
npx -y @smithery/cli install @burtthecoder/mcp-virustotal --client claude
手动安装
- 通过 npm 全局安装服务器:
npm install -g @burtthecoder/mcp-virustotal
- 添加到您的 Claude Desktop 配置文件:
{
"mcpServers": {
"virustotal": {
"command": "mcp-virustotal",
"env": {
"VIRUSTOTAL_API_KEY": "your-virustotal-api-key"
}
}
}
}
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- 重启Claude桌面
替代设置(来自源)
如果您希望从源代码运行或需要修改代码:
- 克隆并构建:
git clone <repository_url>
cd mcp-virustotal
npm install
npm run build
- 添加到您的 Claude Desktop 配置:
{
"mcpServers": {
"virustotal": {
"command": "node",
"args": ["--experimental-modules", "/absolute/path/to/mcp-virustotal/build/index.js"],
"env": {
"VIRUSTOTAL_API_KEY": "your-virustotal-api-key"
}
}
}
}
特征
- 综合分析报告:每个分析工具都会自动获取相关关系数据以及基本报告,在单个请求中提供完整的安全概述
- URL 分析:自动获取联系域、下载文件和威胁行为者的安全报告
- 文件分析:详细分析文件哈希,包括行为、丢失的文件和网络连接
- IP 分析:包含历史数据、解决方案和相关威胁的安全报告
- 域名分析:DNS 信息、WHOIS 数据、SSL 证书和子域名
- 详细关系分析:用于查询特定类型关系的专用工具,并支持分页
- 丰富的格式:分析结果和关系数据的清晰分类和呈现
工具
报告工具(具有自动关系获取功能)
1. URL 报告工具
- 名称:
get_url_report
- 描述:获取全面的 URL 分析报告,包括安全扫描结果和关键关系(通信文件、联系的域/IP、下载的文件、重定向、威胁行为者)
- 参数:
2. 文件报告工具
- 名称:
get_file_report
- 描述:使用哈希值 (MD5/SHA-1/SHA-256) 获取全面的文件分析报告。包含检测结果、文件属性和关键关系(行为、丢失的文件、网络连接、嵌入内容、威胁行为者)。
- 参数:
hash
(必需):文件的 MD5、SHA-1 或 SHA-256 哈希值
3. IP报告工具
- 名称:
get_ip_report
- 描述:获取全面的 IP 地址分析报告,包括地理位置、信誉数据和关键关系(通信文件、历史证书/WHOIS、解析)
- 参数:
4. 域名报告工具
- 名称:
get_domain_report
- 描述:获取全面的域名分析报告,包括 DNS 记录、WHOIS 数据和关键关系(SSL 证书、子域名、历史数据)
- 参数:
domain
(必需):要分析的域名relationships
(可选):要包含在报告中的特定关系数组
关系工具(用于详细分析)
1. URL关系工具
- 名称:
get_url_relationship
- 描述:查询 URL 的特定关系类型,并支持分页。共有 17 种关系类型可供选择,包括分析、文件通信、联系的域/IP、下载的文件、图表、引荐来源、重定向和威胁行为者
- 参数:
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
(可选):用于分页的连续光标
2. 文件关系工具
- 名称:
get_file_relationship
- 描述:查询文件的特定关系类型,并支持分页。有 41 种关系类型可供选择,包括行为、网络连接、丢弃文件、嵌入内容、执行链和威胁行为者
- 参数:
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
(可选):用于分页的连续光标
3. IP关系工具
- 名称:
get_ip_relationship
- 描述:查询 IP 地址的特定关系类型,并支持分页。共有 12 种关系类型可供选择,包括通信文件、历史 SSL 证书、WHOIS 记录、解析和威胁行为者。
- 参数:
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
(可选):用于分页的连续光标
4. 域名关系工具
- 名称:
get_domain_relationship
- 描述:查询域名的特定关系类型,并支持分页。共有 21 种关系类型可供选择,包括 SSL 证书、子域名、历史数据和 DNS 记录
- 参数:
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
(可选):用于分页的连续光标
要求
故障排除
API 密钥问题
如果您看到“错误的 API 密钥”错误:
- 检查日志文件
/tmp/mcp-virustotal-server.log
(在 macOS 上)以获取 API 密钥状态 - 验证您的 API 密钥:
- 应该是有效的 VirusTotal API 密钥(通常为 64 个字符)
- 键周围没有多余的空格或引号
- 必须来自 VirusTotal 帐户中的 API 密钥部分
- 任何配置更改后:
- 保存配置文件
- 重启Claude桌面
- 检查日志以了解新的 API 密钥状态
模块加载问题
如果您看到 ES 模块加载警告:
- 对于全局安装:使用快速入门中显示的简单配置
- 对于源安装:确保在参数中包含
--experimental-modules
发展
要在开发模式下使用热重载运行:
错误处理
该服务器包括针对以下方面的全面错误处理:
- 无效的 API 密钥
- 速率限制
- 网络错误
- 输入参数无效
- 无效的哈希格式
- 无效的 IP 格式
- 无效的 URL 格式
- 无效的关系类型
- 分页错误
版本历史记录
- v1.0.0:具有核心功能的初始版本
- v1.1.0:增加了URL、文件和IP地址关系分析工具
- v1.2.0:添加了改进的错误处理和日志记录
- v1.3.0:增加了对关系查询的分页支持
- v1.4.0:在报告工具中添加了自动关系提取和域分析支持
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature
) - 提交您的更改(
git commit -m 'Add amazing feature'
) - 推送到分支(
git push origin feature/amazing-feature
) - 打开拉取请求
执照
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。