Skip to main content
Glama
imouiche

MITRE ATT&CK MCP Server

by imouiche
README.md
<div align="center">

# ๐Ÿ›ก๏ธ MITRE ATT&CK MCP Server

**AI-Native Access to the World's Leading Threat Intelligence Framework**

[![npm](https://img.shields.io/npm/v/@imouiche/mitre-attack-mcp-server.svg)](https://www.npmjs.com/package/@imouiche/mitre-attack-mcp-server)
[![npm downloads](https://img.shields.io/npm/dm/@imouiche/mitre-attack-mcp-server.svg)](https://www.npmjs.com/package/@imouiche/mitre-attack-mcp-server)
[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)
[![MCP Registry](https://img.shields.io/badge/MCP-Registered-success)](https://registry.modelcontextprotocol.io)
[![GitHub release](https://img.shields.io/github/v/release/imouiche/complete-mitre-attack-mcp-server)](https://github.com/imouiche/complete-mitre-attack-mcp-server/releases)

[Features](#-key-features) โ€ข [Installation](#-installation) โ€ข [Quick Start](#-quick-start) โ€ข [Tools](#-available-tools) โ€ข [Examples](#-example-queries) โ€ข [Roadmap](#-roadmap--vision)

</div>

---

## ๐ŸŽฏ Overview

The **MITRE ATT&CK MCP Server** transforms the world's leading adversary knowledge base into an **AI-native interface**. Built for the **Model Context Protocol**, it enables LLMs and agentic systems to:

- ๐Ÿ” **Query** 200+ techniques, 140+ groups, 700+ software entries
- ๐Ÿง  **Reason** over complex threat relationships and TTPs  
- ๐Ÿ“Š **Visualize** coverage gaps with ATT&CK Navigator layers
- โšก **Scale** threat intelligence workflows with structured tools

**Perfect for**: Security teams, threat hunters, detection engineers, AI researchers, and anyone building intelligent security systems.

### What is this?

`mitre-attack-mcp-server` is a **self-contained MCP server** that provides **machine-callable access** to the MITRE ATT&CK framework using official STIX data with **LLMs** friendly **structured outputs**.

It enables:

- ๐Ÿค– **LLMs** to reason about ATT&CK techniques, groups, software, and mitigations
- ๐Ÿง  **Agentic workflows** to generate threat explanations and coverage maps
- ๐Ÿ” **Security teams** to query ATT&CK relationships programmatically
- ๐Ÿ“Š **Visualization** via ATT&CK Navigator layers

No scraping.  
No fragile APIs.  
Just **official MITRE data**, structured and reliable.

---

## ๐Ÿ“‘ Table of Contents

- [Overview](#-overview)
- [Key Features](#-key-features)
- [Installation](#-installation)
- [Quick Start](#-quick-start)
- [MCP Registry](#-mcp-registry)
- [Available Tools](#-available-tools)
- [Example Queries](#-example-queries)
- [ATT&CK Navigator](#-attck-navigator-visualization)
- [Technical Details](#-technical-details)
- [Roadmap & Vision](#-roadmap--vision)
- [Contributing](#-contributing)
- [License](#-license)
- [About the Author](#-about-the-author)
- [Acknowledgments](#-acknowledgments)

---

## โœจ Key Features

- โœ… **65+ MCP tools** across ATT&CK domains (Enterprise, Mobile, ICS)
- โœ… Automatic **STIX download & caching** on first run
- โœ… Native **ATT&CK Navigator layer generation**
- โœ… Designed for **LLMs & MCP-compatible clients**
- โœ… **In-memory caching** for instant query responses
- โœ… **Type-safe** with Pydantic models
- โœ… Clean, production-ready, self-contained server
- โœ… Comprehensive test coverage

---

## ๐Ÿ“ฆ Installation

### Via PyPI  (recommended) - Python Users

```bash
pip install mitre-mcp-server
```

### npm

```bash
npm install -g @imouiche/mitre-attack-mcp-server
```

### npx (no installation required)

```bash
npx @imouiche/mitre-attack-mcp-server
```


### Via uv (Modern Python)
```bash
uv pip install mitre-mcp-server
```

### Local Development

```bash
git clone https://github.com/imouiche/complete-mitre-attack-mcp-server.git
cd complete-mitre-attack-mcp-server
npm install
```

### Using uv (Python package manager)

```bash
git clone https://github.com/imouiche/complete-mitre-attack-mcp-server.git
cd complete-mitre-attack-mcp-server
uv sync
```

---

## โšก Quick Start

### 1. Install

```bash
pip install mitre-mcp-server
```

### 2. Configure Claude Desktop

Add to your `claude_desktop_config.json`:

**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`  
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "mitre-attack": {
      "command": "npx",
      "args": ["-y", "@imouiche/mitre-attack-mcp-server"]
    }
  }
}
```

### 3. Restart Claude Desktop

Quit Claude Desktop completely (Cmd+Q on macOS) and reopen it.

### 4. Start Querying!

Ask Claude:
> "What techniques does APT29 use for initial access?"  
> "Generate an ATT&CK Navigator layer for ransomware groups"  
> "Show me all Windows persistence techniques"

**Data downloads automatically on first run** (~59MB, cached at `~/.mitre-mcp-server/data/`).

---

## ๐Ÿ“ฆ MCP Registry

This server is officially registered in the **Model Context Protocol (MCP) Registry**.

**Registry ID**: `io.github.imouiche/mitre-attack-mcp-server`

**View in Official Registry**: [https://registry.modelcontextprotocol.io/?q=mitre-attack-mcp-server](https://registry.modelcontextprotocol.io/?q=mitre-attack-mcp-server)

### Installation Options

**Option 1: Direct NPM**
```bash
npm install -g @imouiche/mitre-attack-mcp-server
```

**Option 2: NPX (no installation)**
```bash
npx @imouiche/mitre-attack-mcp-server
```

**Option 3: Discover via Registry**
1. Visit [MCP Registry](https://registry.modelcontextprotocol.io)
2. Search for "mitre-attack"
3. Click the server card for installation instructions

---

## ๐Ÿ› ๏ธ Available Tools

The server exposes **50+ MCP tools** covering all major MITRE ATT&CK entities and relationships.

---

### ๐Ÿ“Š Infrastructure & Metadata

| Tool | Description |
|---|---|
| `get_data_stats` | Show download status, file paths, sizes, and ATT&CK release version |
| `generate_layer` | Generate an ATT&CK Navigator layer (JSON output) |
| `get_layer_metadata` | Return Navigator layer metadata template |

---

### ๐ŸŽฏ Techniques

| Tool | Description |
|---|---|
| `get_technique_by_id` | Get a technique by ATT&CK ID (e.g., T1055) |
| `search_techniques` | Search techniques by name or description |
| `get_all_techniques` | Retrieve all techniques |
| `get_all_parent_techniques` | Parent techniques only |
| `get_all_subtechniques` | All subtechniques |
| `get_subtechniques_of_technique` | Subtechniques of a parent |
| `get_parent_technique_of_subtechnique` | Parent of a subtechnique |
| `get_technique_tactics` | Tactics associated with a technique |
| `get_techniques_by_tactic` | Techniques under a tactic |
| `get_techniques_by_platform` | Techniques for a platform |
| `get_revoked_techniques` | Revoked techniques |

---

### ๐Ÿง‘โ€๐Ÿ’ป Groups (Threat Actors)

| Tool | Description |
|---|---|
| `get_group_by_name` | Find group by name or alias |
| `search_groups` | Search groups |
| `get_all_groups` | All ATT&CK groups |
| `get_groups_by_alias` | Lookup groups by alias |
| `get_groups_using_technique` | Groups using a technique |
| `get_groups_using_software` | Groups using software |
| `get_groups_attributing_to_campaign` | Groups attributed to a campaign |

---

### ๐Ÿงช Software (Malware & Tools)

| Tool | Description |
|---|---|
| `get_software` | Get all software |
| `search_software` | Search software |
| `get_software_by_alias` | Lookup software by alias |
| `get_software_used_by_group` | Software used by a group |
| `get_software_used_by_campaign` | Software used in campaigns |
| `get_software_using_technique` | Software using a technique |

---

### ๐Ÿ“Œ Campaigns

| Tool | Description |
|---|---|
| `get_all_campaigns` | Get all campaigns |
| `get_campaigns_by_alias` | Lookup campaigns by alias |
| `get_campaigns_using_technique` | Campaigns using a technique |
| `get_campaigns_using_software` | Campaigns using software |
| `get_campaigns_attributed_to_group` | Campaign attribution |

---

### ๐Ÿ›ก๏ธ Mitigations

| Tool | Description |
|---|---|
| `get_all_mitigations` | Get all mitigations |
| `get_mitigations_mitigating_technique` | Mitigations for a technique |
| `get_techniques_mitigated_by_mitigation` | Techniques mitigated by a mitigation |

---

### ๐Ÿงญ Tactics, Data Sources & ICS

| Tool | Description |
|---|---|
| `get_all_tactics` | Get all tactics |
| `get_all_datasources` | Get all data sources |
| `get_all_datacomponents` | Get all data components |
| `get_datacomponents_detecting_technique` | Data components detecting a technique |
| `get_all_assets` | Get ICS assets |
| `get_assets_targeted_by_technique` | Assets targeted by a technique |

---

## ๐Ÿ’ก Example Queries

### Threat Intelligence
```
"What techniques does APT29 use for initial access?"
"Which groups target financial institutions?"
"Show me all ransomware-related software"
"What are the aliases for the Lazarus Group?"
```

### Detection Engineering
```
"What data sources detect credential dumping?"
"Generate a coverage map for EDR capabilities"
"List all techniques for Windows privilege escalation"
"What can detect T1055 (Process Injection)?"
```

### Threat Hunting
```
"What techniques use PowerShell?"
"Show me lateral movement techniques for Linux"
"Which groups use Cobalt Strike?"
"What persistence techniques target macOS?"
```

### Mitigation & Defense
```
"What mitigations exist for phishing attacks?"
"Show me all mitigations for privilege escalation"
"What techniques does MFA mitigate?"
```

### Compliance & Gap Analysis
```
"Generate a layer for all techniques our EDR covers"
"Compare APT29 TTPs against our detection capabilities"
"Show unmitigated techniques in our environment"
```

---

## ๐Ÿ“Š ATT&CK Navigator Visualization

The `generate_layer` tool produces **ATT&CK Navigatorโ€“compatible JSON**.

### Usage:

1. Ask Claude to generate a layer:
   > "Generate an ATT&CK Navigator layer for all techniques used by APT29"

2. Save the JSON output to a file (e.g., `apt29_layer.json`)

3. Upload to [ATT&CK Navigator](https://mitre-attack.github.io/attack-navigator/)

4. Visualize technique coverage, threat actor usage, or mitigation mapping

### Real-World Example Using LangGraph

- **Threat Investigation:**  
  [Read my Medium blog demonstrating how a multi-agent LangGraph system leverages these tools to perform a real-world threat investigation.](https://medium.com/@nsangouinoussa515/from-mitre-att-ck-to-agentic-threat-investigation-58336c22f482)

- **Live Demo:**  
  [Explore the interactive Gradio 6.2 demo on Hugging Face Spaces.](https://huggingface.co/spaces/Inoussa-guru/mitre-agentic-threat-investigation)

### Example Layer Use Cases:

- **Red Team Coverage**: Map all techniques used in an exercise
- **Detection Gaps**: Highlight unmonitored techniques
- **Threat Actor Profile**: Visualize group TTPs
- **Mitigation Coverage**: Show what's protected vs. exposed

---

## ๐Ÿ”ง Technical Details

### Architecture

- **Language**: Python 3.12+
- **Framework**: FastMCP for Model Context Protocol
- **Data Library**: Official `mitreattack-python` (v5.3.0+)
- **Async/Await**: Optimal performance for concurrent queries
- **Type Safety**: Full Pydantic models for all data structures
- **Testing**: Comprehensive pytest coverage

### Data

- **Enterprise ATT&CK**: v18.1+ (~50.9MB)
- **Mobile ATT&CK**: v18.1+ (~4.9MB)
- **ICS ATT&CK**: v18.1+ (~3.5MB)
- **Total**: ~59MB cached locally
- **Storage**: `~/.mitre-mcp-server/data/v{version}/`
- **Update**: Auto-downloads on install, uses cached data on subsequent runs

### Performance

- **In-memory caching**: All domains loaded at startup
- **Query speed**: Sub-second for most operations
- **Graph traversal**: Efficient relationship queries
- **Concurrent**: Handles multiple simultaneous requests

### Requirements

- **Python**: 3.12 or higher
- **Node.js**: 16+ (for NPM installation)
- **Disk Space**: ~150MB (includes dependencies + data)
- **Memory**: ~200MB RAM when running

---

## ๐Ÿš€ Roadmap & Vision

This project is the **first component** of a larger vision to build **comprehensive agentic security automation** by integrating multiple security knowledge bases and frameworks.

### Current Status
- โœ… **MITRE ATT&CK** - Threat intelligence & adversary TTPs (v18.1)

### Planned Integrations
- ๐Ÿ”œ **CVE/NVD** - Vulnerability intelligence and exploit mapping
- ๐Ÿ”œ **MITRE D3FEND** - Defensive countermeasure knowledge graph
- ๐Ÿ”œ **Sigma Rules** - Detection rule translation and management
- ๐Ÿ”œ **CAPEC** - Common Attack Pattern Enumeration
- ๐Ÿ”œ **CWE** - Software weakness enumeration
- ๐Ÿ”œ **Agentic Pentesting** - Multi-agent autonomous security testing

### Ultimate Goal

Enable **AI agents to autonomously**:
- ๐ŸŽฏ Map attack surfaces and identify vulnerabilities
- ๐Ÿ›ก๏ธ Recommend defensive countermeasures
- ๐Ÿ” Generate detection rules and validate coverage
- ๐Ÿค– Orchestrate multi-stage security assessments
- ๐Ÿ“Š Reason about complete attack-defense lifecycles

### Get Involved

**We welcome contributions from:**
- ๐ŸŽ“ **Students** working on thesis projects (cybersecurity, AI, agentic systems)
- ๐Ÿ”ฌ **Researchers** in AI security, threat intelligence, or agent frameworks
- ๐Ÿ’ป **Developers** passionate about security automation
- ๐Ÿข **Organizations** interested in research partnerships or commercial applications

**Areas of Interest:**
- Integrating additional security frameworks (CVE, D3FEND, Sigma)
- Building agentic workflows for pentesting and red teaming
- Developing detection rule generation pipelines
- Creating threat intelligence reasoning systems
- Improving MCP tooling and documentation

๐Ÿ“ฌ **Interested?** Open an issue, start a discussion, or reach out directly!

[Join the Discussion โ†’](https://github.com/imouiche/complete-mitre-attack-mcp-server/discussions)

---

## ๐Ÿค Contributing

Found a bug? Have a feature request? Want to contribute to the roadmap?

- ๐Ÿ› [Report Issues](https://github.com/imouiche/complete-mitre-attack-mcp-server/issues)
- ๐Ÿ’ก [Request Features](https://github.com/imouiche/complete-mitre-attack-mcp-server/issues/new)
- ๐Ÿ”ง [Submit Pull Requests](https://github.com/imouiche/complete-mitre-attack-mcp-server/pulls)
- ๐Ÿ’ฌ [Start a Discussion](https://github.com/imouiche/complete-mitre-attack-mcp-server/discussions)

All contributions welcome!

### Development Setup

```bash
git clone https://github.com/imouiche/complete-mitre-attack-mcp-server.git
cd complete-mitre-attack-mcp-server
uv sync
# uv run pytest (test/ folder not yet released)
uv run python -m mitre_mcp_server.server
```

---

## ๐Ÿ“œ License

Apache License 2.0

See [LICENSE](LICENSE) for full details.

---

## ๐Ÿ‘จโ€๐Ÿ’ป About the Author

**Inoussa Mouiche, Ph.D.**  
AI/ML Researcher | Cybersecurity | Agentic AI Systems | Software Engineering

๐ŸŽ“ **University of Windsor** - WASP Lab  
๐Ÿ”ฌ **Research Focus**: Threat Intelligence Automation, Machine Learning, Multi-Agent Security Systems, LLM-Powered Security Operations

๐Ÿ“ซ **Connect**
- ๐Ÿ™ GitHub: [@imouiche](https://github.com/imouiche)
- ๐Ÿ“ง Email: mouiche@uwindsor.ca
- ๐Ÿ’ผ LinkedIn: [Inoussa Mouiche, Ph.D.](https://www.linkedin.com/in/inoussa-mouiche-ph-d-b5b5138b/)
- ๐Ÿ“š Google Scholar: [Publications](https://scholar.google.com/citations?user=_d4cEVoAAAAJ&hl=en)

๐ŸŽ“ **Award Nomination** 
- Gold Medal: [The Governor General's Academic Medal ](https://www.gg.ca/en/honours/governor-generals-awards/governor-generals-academic-medal)

๐Ÿ’ผ **Open to opportunities** in:
- AI/ML Engineering & Research
- Cybersecurity & Threat Intelligence
- Agentic AI Development
- Security Automation & Orchestration
- Academic & Industry Collaborations

---

## ๐Ÿ™ Acknowledgments

- Built on [MITRE ATT&CKยฎ](https://attack.mitre.org/) - the industry standard for adversary tactics and techniques
- Powered by [mitreattack-python](https://github.com/mitre-attack/mitreattack-python) - official MITRE library
- Implements [Model Context Protocol](https://modelcontextprotocol.io) - Anthropic's standard for AI-tool integration
- Inspired by the amazing MCP developer community including [R. Jasper](https://www.remyjaspers.com/blog/mitre_attack_mcp_server/), and more...

**MITRE ATT&CKยฎ** is a registered trademark of The MITRE Corporation.

---

<div align="center">

**โญ Star this repo if you find it useful!**

**Interested in collaborating on agentic engineering systems?** [Let's connect!](https://www.linkedin.com/in/inoussa-mouiche-ph-d-b5b5138b/)

Made with โค๏ธ for the cybersecurity and AI communities

[โฌ† Back to Top](#-mitre-attck-mcp-server)

</div>

TDQS

A3.8/5.0

Scored across 65 tools

Disambiguation5/5

Each tool targets a distinct ATT&CK entity or relationship. No two tools have identical purposes; even closely related tools differ by input parameters or entity type, ensuring clear separation.

Naming Consistency4/5

Most tools follow a consistent 'verb_noun' pattern (e.g., get_all_*, search_*, generate_layer). A minor inconsistency exists with both 'get_software' and 'get_all_software' having overlapping functionality, but overall the naming is predictable.

Tool Count3/5

65 tools is high but appropriate for the comprehensive ATT&CK framework. The tool set covers many entity types and relationships, though some consolidation could reduce redundancy without losing functionality.

Completeness5/5

The tool set covers all major ATT&CK entities (techniques, groups, software, campaigns, etc.) and their relationships, plus utility tools for layer generation, search, and object resolution. No obvious gaps in the surface.

Maintenance

ActivityInactive
ResponsivenessNo issues