使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 构建的服务器,专注于提供 VirusTotal 威胁情报数据。它允许LLM客户端通过标准化的MCP协议,调用VirusTotal API获取各种安全分析报告,例如IP地址、域名、文件哈希和URL的信誉信息,以及威胁分类、攻击战术和技术等。
主要功能点
-
威胁情报查询: 提供多种工具,查询来自VirusTotal的实时威胁情报数据。
- IP地址报告: 查询IP地址的地理位置、信誉评分、所属组织等信息。
- 域名报告: 查询域名的注册信息、信誉评分、关联威胁等信息。
- 文件哈希报告: 查询文件哈希值的已知威胁信息、文件类型等。
- URL报告: 查询URL的重定向信息、信誉评分、关联威胁等。
- 威胁分类: 获取VirusTotal常用的威胁分类列表。
- 攻击战术与技术: 查询特定攻击战术和技术的详细信息。
- 社区评论: 获取VirusTotal用户对特定分析对象的评论。
- 文件行为摘要: 获取文件行为分析的简要总结。
-
MCP协议支持: 使用标准的MCP协议与客户端通信,易于集成到支持MCP协议的LLM应用中。
-
工具化API访问: 将VirusTotal API封装成易于LLM调用的工具,降低使用门槛。
安装步骤
-
克隆仓库
git clone https://github.com/priamai/mpc.git cd mpc -
创建并激活虚拟环境
python3.11 -m venv venv source venv/bin/activate # macOS/Linux venv\Scripts\activate # Windows -
安装依赖
pip install --upgrade pip pip install -r requirements.txt -
配置API密钥
- 在项目根目录下创建 '.env' 文件。
- 根据需要配置 VirusTotal API 密钥。你需要拥有 VirusTotal API 密钥才能使用此服务器。
如果你想运行 'client.py' 示例,可能还需要配置 OpenAI 或 Azure OpenAI 的 API 密钥。VIRUSTOTAL_API_KEY=YOUR_VIRUSTOTAL_API_KEY
服务器配置 (MCP客户端)
MCP客户端需要配置以下信息以连接到 VirusTotal MCP 服务器。这是一个JSON格式的配置示例,通常在MCP客户端的配置文件或代码中指定:
{ "server name": "VirusTotal MCP Server", // 服务器名称,用于标识和区分不同的MCP服务器 "command": "python", // 启动服务器的命令,这里使用python解释器 "args": ["servers/mpc-virustotal-server.py"] // 启动命令的参数,指定服务器脚本的路径 }
参数解释:
- 'server name': 服务器的名称,可以自定义,用于在客户端识别。
- 'command': 运行服务器端程序的命令。这里 'python' 假设你的环境中可以直接使用 'python' 命令启动Python解释器。
- 'args': 传递给 'command' 的参数列表。 'servers/mpc-virustotal-server.py' 是服务器主程序的脚本路径。
注意: 客户端需要根据这个配置,使用 Stdio 协议与服务器建立连接。
基本使用方法
-
启动 MCP 服务器: 在终端中,进入项目根目录,激活虚拟环境后,运行服务器脚本:
python servers/mpc-virustotal-server.py服务器成功启动后,会显示 "🚀 Starting VirusTotal MCP Server..." 的日志信息。
-
配置 MCP 客户端: 在你的MCP客户端应用中,根据上述 "服务器配置 (MCP客户端)" 的JSON配置信息,配置连接到 VirusTotal MCP 服务器。
-
使用工具: 客户端连接成功后,即可调用服务器提供的工具。例如,在LLM应用中,可以使用自然语言指令指示LLM调用 'vt_ip_report' 工具查询IP地址的威胁情报,服务器会将查询结果返回给客户端,进而提供给LLM进行后续处理。
仓库中提供的 'client.py' 是一个使用 'langchain' 框架和 Azure OpenAI 的示例客户端,展示了如何加载 MCP 服务器提供的工具,并创建一个可以与服务器交互的 Agent。你可以参考 'client.py' 了解如何使用 MCP 客户端与该服务器进行交互。
信息
分类
网页与API