此项目是一个用于查询ATT&CK(对抗性策略、技术和通用知识)技术和策略的MCP(模型上下文协议)服务器。它提供了一种访问和检索有关各种攻击技术和策略的方法,这些技术和策略由对手使用。
服务器提供了以下工具:
technique_id (字符串,可选): 要查询的技术ID。tech_name (字符串,可选): 要查询的技术名称(或部分名称)。支持名称模糊搜索。{
"technique_id": "T1059.001"
}
{
"tech_name": "phishing"
}
{ "results": [...], "count": N } 的字典,其中 results 为匹配技术完整数据列表。
technique_id (字符串,可选): 要查询的技术ID。tech_name (字符串,可选): 技术名称关键字,支持模糊匹配。{
"technique_id": "T1059.001"
}
{
"tech_name": "phishing"
}
technique_id (字符串,必填): 要查询的技术ID{
"technique_id": "T1059.01"
}
technique_id (字符串,必填): 要查询的技术ID{
"technique_id": "T1059.001"
}
{}
要使用此MCP服务器,您需要配置一个MCP客户端来连接它。一旦连接成功,您可以使用提供的工具查询ATT&CK技术和策略。
python main.py
ATTACK_MCP_MODE=stdio),适用于Smithery、Cursor等支持本地MCP stdio的客户端。使用CLI参数切换模式:
python main.py --mode http --host 0.0.0.0 --port 8081 --log-level info
或通过环境变量控制:
export ATTACK_MCP_MODE=http
export ATTACK_MCP_HOST=0.0.0.0 # 可选,默认 0.0.0.0 或 $HOST
export ATTACK_MCP_PORT=8081 # 可选,默认 8081 或 $PORT
export ATTACK_MCP_LOG_LEVEL=info # 可选,默认 info
python main.py
运行后服务以streamable HTTP方式暴露,可在客户端配置服务类型为 "http",地址如 http://127.0.0.1:8081/mcp。
远程部署(如Smithery Cloud)通常会提供 PORT 或 MCP_TRANSPORT 环境变量,可直接运行 python main.py 即使用HTTP。对于值为 streaming、streamable、streamable-http、streamable HTTP transport 或 stdioNotSupported 等新枚举的运行环境,程序会自动回退到HTTP模式,无需额外配置。
Smithery等容器平台会通过 PORT(默认为 8081)告知监听端口;程序会自动读取该值并监听在 0.0.0.0:$PORT。
工具名称:query_technique、search_technique_full、query_mitigations、query_detections、list_tactics、server_info
参数示例:
{
"technique_id": "T1059.001"
}
{
"tech_name": "phishing"
}
search_technique_full 获取技术的完整详细信息:
{
"tech_name": "phishing"
}
{
"technique_id": "T1059.001"
}
{
"technique_id": "T1059.001"
}
{}
{}
具体的客户端配置方式请参考您的MCP客户端文档,将上述服务地址和工具名称填入对应位置即可。
pip install -r requirements.txt 安装所需的依赖项。ATT&CK是一个精心策划的知识库和模型,用于描述网络攻击者的攻击行为,反映了攻击者攻击生命周期的不同阶段以及他们已知的目标平台。ATT&CK有助于理解针对特定技术和组织的安全风险。
pip install -r requirements.txt
python main.py
python main.py --mode http --host 127.0.0.1 --port 8081
docker build -t attack-mcp-server .
docker run -p 8081:8081 attack-mcp-server
如有问题请联系维护者。