<a href="https://pepy.tech/projects/mitre-mcp"><img src="https://static.pepy.tech/badge/mitre-mcp" alt="PyPI 下载量"></a>
生产就绪的模型上下文协议(MCP)服务器,它将MITRE ATT&CK®框架暴露给LLMs、AI助手和自动化工作流。使用官方的MCP Python SDK和mitreattack-python库构建,以安全、高性能的方式访问对手战术、技术、群体、软件和缓解措施。
**可在MCP注册表**中找到(搜索io.github.luongnv89/mitre-mcp)。
| 工具名称 | 描述 |
|---|---|
get_techniques | 列出所有技术,并提供过滤选项 |
get_technique_by_id | 通过ID查找特定技术(例如,T1055) |
get_techniques_by_tactic | 获取特定战术的技术(例如,持久性) |
get_tactics | 列出所有战术类别 |
get_groups | 列出所有威胁行为者群体 |
get_techniques_used_by_group | 获取特定群体使用的技术(例如,APT29) |
get_software | 列出恶意软件和工具,并提供过滤 |
get_mitigations | 列出所有安全缓解措施 |
get_techniques_mitigated_by_mitigation | 获取由特定缓解措施解决的技术 |
python3 -m venv .venv
source .venv/bin/activate # 在Windows上:.venv\Scripts\activate.bat
pip install mitre-mcp
mitre-mcp --help
启动服务器:
mitre-mcp --http
预期输出:
2025-11-17 22:40:10,991 - mitre_mcp.mitre_mcp_server - INFO - 正在启动MITRE ATT&CK MCP服务器(HTTP模式,本地主机:8000)
======================================================================
MCP客户端配置(流式HTTP传输)
服务器URL:http://localhost:8000
MCP端点:http://localhost:8000/mcp
将以下内容添加到您的MCP客户端配置中:
{
"mcpServers": {
"mitreattack": {
"url": "http://localhost:8000/mcp"
}
}
}
======================================================================
配置您的MCP客户端:
将以下JSON添加到您的客户端配置文件中:
{
"mcpServers": {
"mitreattack": {
"url": "http://localhost:8000/mcp"
}
}
}
配置文件位置:
~/Library/Application Support/Claude/claude_desktop_config.json~/.config/Claude/claude_desktop_config.json自定义主机和端口:
mitre-mcp --http --host 0.0.0.0 --port 10000
然后在您的客户端配置中使用http://your-server-ip:10000/mcp。
为什么选择HTTP模式?
对于仅需标准输入输出传输的本地客户端:
mitre-mcp
客户端配置:
{
"mcpServers": {
"mitreattack": {
"command": "/绝对路径/to/.venv/bin/python",
"args": ["-m", "mitre_mcp.mitre_mcp_server"]
}
}
}
注意:使用绝对路径。推荐大多数情况下使用HTTP模式。
强制重新下载MITRE ATT&CK数据:
mitre-mcp --http --force-download
VSCode配置:

工具调用:

结果:

在frontend/目录中提供了一个现代的基于React的Web界面,用于通过聊天界面交互式地探索MITRE ATT&CK。
特点:
快速开始:
cd frontend
npm install
npm run dev
然后在浏览器中打开http://localhost:5173。
前提条件:
mitre-mcp --http --port 8000更多详情,请参阅frontend/README.md文档。
我们提供了三个详尽的指南,针对不同的使用场景:
Beginner-Playbook.md – 适合刚接触MITRE ATT&CK或网络安全的新手
适用对象:
Playbook.md – 适合使用MCP客户端的安全专业人员
适用对象:
包括10个现成的场景:
API-INTEGRATION.md – 适合构建自动化和定制集成的开发者
适用对象:
包括:
在启动mitre-mcp之前设置,以自定义行为:
| 变量 | 默认值 | 目的 |
|---|---|---|
MITRE_ENTERPRISE_URL, MITRE_MOBILE_URL, MITRE_ICS_URL | 官方MITRE CTI GitHub URL | 覆盖ATT&CK捆绑包的位置或指向内部镜像 |
MITRE_DATA_DIR | mitre_mcp/data | 将缓存捆绑包存储在自定义目录中 |
MITRE_DOWNLOAD_TIMEOUT | 30 | 捆绑包下载的HTTP超时时间(秒) |
MITRE_CACHE_EXPIRY_DAYS | 1 | 缓存数据刷新的最大年龄 |
MITRE_REQUIRED_SPACE_MB | 200 | 下载前检查的磁盘空间阈值 |
MITRE_DEFAULT_PAGE_SIZE / MITRE_MAX_PAGE_SIZE | 20 / 1000 | 列表工具返回的默认和最大记录数 |
MITRE_MAX_DESC_LENGTH | 500 | 响应中的描述长度被修剪至该长度 |
MITRE_LOG_LEVEL | INFO | 日志详细程度(DEBUG、INFO、WARNING等) |
服务器自动缓存MITRE ATT&CK数据以提高性能:
data/文件夹--force-download强制重新下载| 场景 | 提升 | 备注 |
|---|---|---|
| 企业技术查找 | 80-95%更快 | 预建O(1)索引用于群体、缓解措施和技术查找 |
| ATT&CK数据下载 | 20-40%更快 | HTTP连接池和TLS会话重用 |
| 暖启动缓存 | <2秒 | 缓存捆绑包复用,即时LLM查询 |
基准测试:macOS 14 / Apple M3 Pro,使用Python 3.11。使用MITRE_LOG_LEVEL=DEBUG获取计时日志。
为了自动化、定制集成和批处理,请参阅**API-INTEGRATION.md**。
快速示例(Python):
from clients.python.mini_mcp_client import MitreMCPClient
async def main():
client = MitreMCPClient(host="localhost", port=8000)
# 获取所有战术
tactics = await client.call_tool("get_tactics", {"domain": "enterprise-attack"})
# 获取特定群体的技术
techniques = await client.call_tool(
"get_techniques_used_by_group",
{"group_name": "APT29", "domain": "enterprise-attack"}
)
可用客户端:
clients/python/mini-mcp-client.py,带有完整的CLIclients/nodejs/mini-mcp-client.js,带有完整的CLI请参阅API-INTEGRATION.md以获取完整文档。
git clone https://github.com/montimage/mitre-mcp.git
cd mitre-mcp
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pre-commit install
这设置了每次提交前的自动代码质量检查。
pytest # 完整测试套件,带覆盖率
pre-commit run --all-files # 所有质量检查
格式化:
Linting & 类型检查:
安全性:
测试:
下载失败,提示“磁盘空间不足”
MITRE_DATA_DIR=/path/to/storage数据从未更新
mitre-mcp --force-download 或删除data/文件夹工具调用返回错误
T####或T####.###格式MCP客户端无法发现服务器