attAck-mcp-server 翻译为中文是:“攻击-MCP服务器”(注:这里的“attAck”可能是“attack”的拼写错误,已按正确拼写翻译)。不过,在实际应用中,如果“attAck”是特定上下文或品牌名称的一部分,且非拼写错误,则应保留原样。但基于常规理解,上述翻译是基于“attack”的正确拼写
这个项目是一个MCP(模型上下文协议)服务器,用于查询ATT&CK(对抗性战术、技术和常见知识)中的技术和战术。它提供了一种访问和检索对手使用的各种攻击技术和战术信息的方法。
工具
服务器提供以下工具:
- 查询技术: 这个工具允许您通过ID或名称查询ATT&CK技术。
- 参数: - technique_id (字符串,可选):要查询的技术的ID。 - tech_name (字符串,可选):要查询的技术名称(或部分名称)。支持名称模糊搜索。 - 示例: - 按ID查询:
{
"technique_id": "T1059.001"
}- 按名称模糊搜索:
{
"tech_name": "phishing"
}- search_technique_full: (可译为)“全面搜索技术” 通过技术ID或名称查询攻击技术的所有详细信息,返回的数据包含ID、名称、描述、适用平台、Kill Chain阶段、参考资料、子技术及缓解措施。名称搜索返回格式为
{ "results": [...], "count": N }的字典,其中results为匹配技术完整数据列表。
- 参数: - technique_id (字符串,可选):要查询的技术ID。 - tech_name (字符串,可选):技术名称关键字,支持模糊匹配。 - 示例: - 按ID查询:
{
"technique_id": "T1059.001"
}- 按名称模糊搜索:
{
"tech_name": "phishing"
}- 查询缓解措施: 查询技术的缓解措施
- 参数: - technique_id (字符串,必填): 要查询的技术ID - 示例:
{
"technique_id": "T1059.001"
}- 查询检测结果: 查询技术的检测方法
- 参数: - technique_id (字符串,必填): 要查询的技术ID - 示例:
{
"technique_id": "T1059.001"
}- list_tactics:(可翻译为)列出战术/策略列表 这个工具允许您检索所有ATT&CK战术的列表。
- 参数: 无
- 服务器信息: 返回服务与数据集的版本、维护者和Git信息。
- 参数: 无 - 示例:
{}使用方法/用途
要使用这个MCP服务器,您需要配置一个MCP客户端来连接它。一旦连接成功,您就可以使用提供的工具来查询ATT&CK技术和战术。
MCP客户端配置说明
1. 本地stdio方式(推荐Smithery/本地集成)
- 直接运行:
python main.py- 程序会自动选择 stdio 模式(默认或
ATTACK_MCP_MODE=stdio),适用于 Smithery、Cursor 等支持本地 MCP stdio 的客户端。 - MCP 客户端配置服务类型为“local/stdio”,无需指定端口。
- 适用场景:Smithery 自动化、持续集成/持续交付(CI/CD)、本地AI代理集成。
2. HTTP/Streamable 方式(远程/开发/调试)
- 使用 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- 运行后,服务以可流式传输的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
- 参数示例:
- 按ID查询技术:
{
"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. - 在您的MCP客户端中配置MCP服务器。
ATT&CK
ATT&CK是一个经过整理的关于网络对手行为的知识库和模型,它反映了对手攻击生命周期的各个阶段以及他们已知的攻击目标平台。ATT&CK有助于理解针对任何特定技术或组织的安全风险。
快速启动
方法一:直接使用 Python 脚本运行(开发/调试推荐)
- 安装依赖(建议在虚拟环境中):
pip install -r requirements.txt- 确保 enterprise-attack.json 数据集位于项目根目录。
- 启动服务(默认 stdio 模式,适用于本地客户端集成):
python main.py- 如果需要以HTTP方式提供服务,请明确选择模式:
python main.py --mode http --host 127.0.0.1 --port 8081方式二:生产环境推荐(Docker 部署)
Docker
- 构建镜像:
docker build -t attack-mcp-server .- 运行容器:
docker run -p 8081:8081 attack-mcp-server______________________________________________________________________
API 说明
- /query_technique 通过ID或名称查询攻击技术详情(支持名称模糊搜索)
- /search_technique_full 通过ID或名称查询攻击技术的完整详细信息(名称搜索返回匹配技术列表,包括子技术和缓解措施)
- /query_mitigations 查询指定技术的缓解措施
- /query_detections 查询指定技术的检测方法
- /list_tactics 获取所有ATT&CK战术分类
- /server_info 返回服务版本、数据集版本和Git信息
______________________________________________________________________
如有问题请联系维护者。
