项目简介
这个 GitHub 仓库提供了一系列基于 Model Context Protocol (MCP) 实现的网络安全服务器。这些服务器旨在标准化 AI 应用(特别是大型语言模型 LLM)访问威胁情报数据的流程,使其能像调用工具一样获取并利用最新的安全信息。
主要功能点
- 集成了 VirusTotal 和 RSTcloud 两大威胁情报平台,通过 MCP 协议暴露给 AI 客户端。
- VirusTotal 服务器功能:提供查询 IP、域名、文件哈希、URL 的安全报告的工具;获取威胁分类、攻击战术/技术信息;查看社区评论;分析文件行为摘要。
- RSTcloud 服务器功能:提供执行 WHOIS 查询的工具;进行 IOC(威胁指标)查找;检查指标是否被列为良性(噪音控制);获取特定日期的威胁报告;访问威胁情报源数据。
- 支持通过标准输入/输出 (Stdio) 协议进行通信。
- 包含一个示例 MCP 客户端 ('client.py'),演示了如何连接到这些服务器并利用 LangChain 代理通过交互式聊天界面使用服务器提供的工具。
安装步骤
请按照仓库的 README 指示进行:
- 克隆仓库:
git clone https://github.com/priamai/mcp.git cd mcp - 创建并激活 Python 虚拟环境: 确保安装了 Python 3.11+。
python3.11 -m venv venv # macOS/Linux source venv/bin/activate # Windows venv\Scripts\activate - 安装依赖:
pip install --upgrade pip pip install -r requirements.txt - 配置 API 密钥: 在项目根目录创建 '.env' 文件,并根据 README 示例添加 VirusTotal 和 RSTcloud 的 API 密钥。例如:
VIRUSTOTAL_API_KEY=your_virustotal_api_key RSTCLOUD_API_KEY=your_rstcloud_api_key # 如果使用 Azure OpenAI 或 OpenAI LLM,也需要配置相应的密钥和 endpoint # AZURE_OPENAI_API_KEY=your_azure_openai_api_key # AZURE_OPENAI_ENDPOINT=your_azure_openai_endpoint # AZURE_OPENAI_API_VERSION=your_api_version # AZURE_OPENAI_DEPLOYMENT=your_deployment_name # OPENAI_API_KEY=your_openai_api_key
服务器配置
MCP 服务器通常由 MCP 客户端启动和管理。对于此仓库中的服务器,一个 MCP 客户端(如示例中的 'client.py' 使用的 'MultiServerMCPClient')需要知道如何启动它们并与之通信。客户端通常通过一个配置结构来定义服务器信息,例如:
- 服务器名称 (server name):用于客户端内部识别,如 '"virustotal"' 或 '"rstcloud"'。
- 启动命令 (command):执行服务器脚本的命令,通常是 '"python"'。
- 启动参数 (args):传递给启动命令的参数,即服务器脚本的相对或绝对路径,例如 '["servers/mpc-virustotal-server.py"]' 或 '["servers/mpc-rstcloud-server.py"]'。
- 传输协议 (transport):客户端与服务器通信的方式,此实现使用了 '"stdio"'。
请注意:用户通常不需要手动编写这些服务器配置细节,它们由 MCP 客户端库或框架处理,但理解其背后的机制有助于配置和故障排除。此仓库中的 'client.py' 已经包含了启动这两个服务器的示例配置。
基本使用方法
- 完成上述安装和配置步骤,特别是 '.env' 文件。
- 激活你的 Python 虚拟环境。
- 运行 'python client.py' 命令。
- 'client.py' 脚本会启动 VirusTotal 和 RSTcloud 的 MCP 服务器,并初始化一个使用 LangChain 代理的交互式聊天界面。
- 你可以通过聊天界面向 AI 代理提问,代理会利用 MCP 服务器提供的工具来查询威胁情报数据并给出回答。例如,询问某个 IP 地址或域名的威胁情况。输入 'exit' 或 'quit' 结束会话。
信息
分类
AI与计算