威胁情报过滤服务

一个教育性演示,展示如何通过MCP服务器标准化CTI数据流并根据资产清单进行过滤,最终将结果展示在Streamlit仪表盘上。

  • by AriMunkhtur
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 AriMunkhtur/mcp-cti

使用说明

MCP CTI最小演示

这是一个最小的教育演示,展示了模型上下文协议(MCP)服务器如何对CTI提要进行标准化,并根据小资产清单对其进行过滤,然后将结果展示给Streamlit仪表板。

演示视频:

文件夹:

  • mcp_server.py --FastAPI服务器暴露 GET /threats 在端口9000上(默认通过uvicorn)。
  • dashboard.py --Streamlit应用程序,调用MCP服务器并显示相关威胁。
  • assets.json --用于过滤威胁的本地资产清单示例。
  • .env.example --环境变量示例。

快速入门(Windows PowerShell):

  1. 创建虚拟环境并安装依赖项:
python -m venv .venv; .\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
  1. 复制 .env.example 到 .env 并填写 OTX_API_KEY 如果你想要实时数据。

  2. 启动MCP FastAPI服务器:

uvicorn mcp_server:app --host 0.0.0.0 --port 9000
  1. (可选)流线型仪表板

要运行Streamlit仪表板,您必须安装 streamlit 单独(它像这样拉重二元deps pyarrow 这可能需要Windows上的构建工具)。仅当您需要UI时才安装它:

.\.venv\Scripts\pip.exe install streamlit
.\.venv\Scripts\streamlit.exe run dashboard.py

如果您希望跳过安装 pyarrow 或者其他重构建的deps,您仍然可以运行FastAPI服务器 并直接从以下位置获取JSON http://localhost:9000/threats.

笔记:

  • 如果你不提供 OTX_API_KEY,服务器将返回一小部分威胁样本。
  • 仪表板中的人工智能集成是可选的,仅在以下情况下使用 ANTHROPIC_API_KEY 已设置,并且 anthropic 套餐可用。