MenkW/Defender-MCP
GitHub: MenkW/Defender-MCP
一个基于 MCP 的安全中间层,让 AI 助手能自然语言操作 Microsoft Defender XDR 与 Endpoint 的 45 项安全能力。
Stars: 0 | Forks: 0
# Defender-MCP
一个 **Model Context Protocol (MCP) 服务器**,用于 Microsoft Defender XDR 和 Microsoft Defender for Endpoint。允许 AI 助手(如 Claude、Kilo 等)使用自然语言与您的安全环境交互——调查事件、威胁狩猎、设备管理以及查询漏洞。
## 功能
- **约 45 个工具**覆盖 9 个安全类别
- **双令牌认证**——MTP API (`api.security.microsoft.com`) 和 WDATP API (`api.securitycenter.microsoft.com`) 使用独立的 Azure AD 令牌
- **XDR 跨工作负载狩猎**——通过单个 KQL 查询终结点、身份、电子邮件和云应用数据
- **事件管理**——列出、获取、更新事件及完整的告警和证据详情
- **设备响应操作**——隔离机器、运行 AV 扫描、收集调查包、执行实时响应
- **威胁情报**——创建、导入和管理 IOC 指标(文件哈希、IP、域名、URL)
- **漏洞管理**——CVE 查询、软件清单、安全建议、修复跟踪
## 工具类别
| 类别 | 工具 | 描述 |
|---|---|---|
| 事件 | 4 | 列出、获取、获取告警、更新事件 |
| 告警 | 5 | 列出、获取、更新、批量更新、创建告警 |
| 机器 | 16 | 获取设备、隔离、AV 扫描、限制代码执行、实时响应 |
| 高级狩猎 | 2 | WDATP KQL 查询 + XDR 跨工作负载 KQL 查询 |
| 实体 | 11 | 文件哈希、域名、IP、用户告警和机器 |
| 指标 (IoC) | 5 | 获取、创建、导入、删除威胁指标 |
| 机器操作 | 12 | 调查包、实时响应、自动调查 |
| 评分 | 5 | 暴露分数、安全分数、AV 健康度、设备健康度 |
| 漏洞 | 17 | CVE、软件清单、建议、修复活动 |
## 先决条件
- **Node.js** 18.0.0 或更高版本
- **Azure AD 应用注册**(Microsoft Entra ID)并授予以下 **应用程序** 权限(非委派):
### 必需的 API 权限
**`api.security.microsoft.com` (Microsoft Threat Protection):**
- `AdvancedHunting.Read.All`
- `Incident.Read.All`
- `Incident.ReadWrite.All`
**`WindowsDefenderATP` (Microsoft Defender for Endpoint):**
- `Alert.Read.All`
- `Alert.ReadWrite.All`
- `Machine.Read.All`
- `Machine.ReadWrite.All`
- `Machine.Isolate`
- `Machine.LiveResponse`
- `Machine.Scan`
- `Ti.Read.All`
- `Ti.ReadWrite.All`
- `Vulnerability.Read.All`
- `Software.Read.All`
- `Score.Read.All`
- `SecurityRecommendation.Read.All`
## 设置
1. **克隆仓库:**
git clone https://github.com/MenkW/Defender-MCP.git
cd Defender-MCP
2. **安装依赖:**
npm install
3. **配置凭据:**
cp .env.example .env
编辑 `.env` 并填写您的 Azure AD 应用注册详情:
DEFENDER_TENANT_ID=your-tenant-id
DEFENDER_CLIENT_ID=your-client-id
DEFENDER_CLIENT_SECRET=your-client-secret
4. **构建:**
npm run build
## MCP 配置
将以下内容添加到您的 MCP 客户端配置(例如 Kilo 的 `kilo.json` 或 Claude Desktop 的 `claude_desktop_config.json`):
```
{
"mcpServers": {
"defender": {
"command": "node",
"args": ["C:/path/to/Defender-MCP/dist/index.js"],
"env": {
"DEFENDER_TENANT_ID": "your-tenant-id",
"DEFENDER_CLIENT_ID": "your-client-id",
"DEFENDER_CLIENT_SECRET": "your-client-secret"
}
}
}
}
```
或者如果您使用 `.env` 文件并已填充:
```
{
"mcpServers": {
"defender": {
"command": "node",
"args": ["C:/path/to/Defender-MCP/dist/index.js"]
}
}
}
```
## 架构
```
src/
index.ts # MCP server entrypoint -- loads all tool modules
auth.ts # Dual-token MSAL authentication (MTP + WDATP scopes)
api-client.ts # HTTP client -- routes requests to correct API + token
tools/
incidents.ts # Incident management tools
alerts.ts # Alert tools
machines.ts # Device/machine tools including response actions
advanced-hunting.ts # KQL hunting (WDATP and XDR)
entities.ts # File, IP, domain, user enrichment
indicators.ts # Threat intelligence / IoC management
machine-actions.ts # Investigation packages, live response, investigations
scoring.ts # Exposure score, secure score, AV health
vulnerabilities.ts # CVE, software, recommendations, remediation
```
### 认证架构
服务器使用两个独立的 Azure AD 令牌获取流程:
- **MTP 令牌** — 作用域 `https://api.security.microsoft.com/.default` — 用于事件和 XDR 高级狩猎
- **WDATP 令牌** — 作用域 `https://api.securitycenter.microsoft.com/.default` — 用于告警、机器、指标、漏洞等
两个令牌均按作用域缓存,并由 MSAL 自动刷新。
## 开发
```
# 直接使用 tsx 运行(无需构建)
npm run dev
# 将 TypeScript 构建到 dist/
npm run build
# 运行构建后的输出
npm start
```
## 许可证
MIT — 详细信息请参阅 [LICENSE](LICENSE)。
## 贡献
请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 获取指南。
标签:AI助手安全, AI安全助理, API安全, AV扫描, Azure AD, CVE, GNU通用公共许可证, GPT, IOC管理, JSON输出, KQL查询, M365安全, MCP Server, Microsoft Defender for Endpoint, Microsoft Defender XDR, MITM代理, Node.js, Shodan, 事件管理, 云端安全, 双令牌认证, 威胁情报, 安全评分, 实时响应, 开发者工具, 指示器导入导出, 数字签名, 暴露评分, 模型上下文协议, 漏洞管理, 自动化攻击, 设备响应, 跨工作负载查询, 隔离, 高级狩猎