Skip to main content
Glama
OMGhozlan

Volatility MCP Server

by OMGhozlan
README.md
# โ„๏ธ Volatility MCP Server

[![Python](https://img.shields.io/badge/Python-3.11-blue.svg)](https://www.python.org/downloads/release/python-3110/)
[![Volatility 3](https://img.shields.io/badge/Volatility-3.x-success)](https://github.com/volatilityfoundation/volatility3)
[![Docker (Not) Ready](https://img.shields.io/badge/Docker-Ready-green)](https://hub.docker.com/)
[![FastMCP](https://img.shields.io/badge/FastMCP-Server-red.svg)](https://github.com/Textualize/fastmcp)

---

## ๐Ÿ“Œ Overview

The Volatility MCP Server is a powerful memory forensics automation toolkit powered by **Volatility 3**. It provides a modular, extensible interface for running Volatility plugins across Windows, Linux, and macOS memory dumps.

It makes memory analysis faster and more accessible via:

โœ… Plugin automation  
โœ… Cross-platform support (Windows, Linux, macOS)  
โœ… Modular plugin architecture  
โœ… Rich logging with beautiful formatting  
โœ… Easy plugin registration and management  

---

## ๐Ÿ’ก Key Features

- ๐Ÿ” Powered by **Volatility 3**
- ๐Ÿง  Supports Windows, Linux, and macOS plugins
- โš™๏ธ Asynchronous plugin execution
- ๐Ÿ“ค JSON output format
- ๐Ÿ“Š Built-in error handling and validation
- ๐Ÿ‘จโ€๐Ÿ’ป FastMCP server interface
- ๐Ÿณ Docker-ready environment

---

## ๐Ÿ“ฆ Requirements

```bash
python 3.11+
pip install -r requirements.txt
```

**requirements.txt:**
```
fastmcp
rich
python-dotenv
```

---

## ๐Ÿ“ Project Structure

```
Volatility-MCP-Server/
โ”œโ”€โ”€ volatility_mcp_server.py    # Main server implementation
โ”œโ”€โ”€ plugins/                    # Plugin modules
โ”‚   โ”œโ”€โ”€ base_plugin.py         # Base plugin class
โ”‚   โ”œโ”€โ”€ plugin_factory.py      # Plugin registration
โ”‚   โ”œโ”€โ”€ windows/               # Windows plugins
โ”‚   โ”œโ”€โ”€ linux/                 # Linux plugins
โ”‚   โ”œโ”€โ”€ mac/                   # macOS plugins
โ”‚   โ””โ”€โ”€ common/                # Common plugins
โ”œโ”€โ”€ requirements.txt           # Dependencies
โ””โ”€โ”€ README.md                 # This file
```

---

## ๐Ÿ–ฅ๏ธ Usage

### ๐Ÿ”ง Local Connection
#### Using `stdio`
Create a `.cursor/mcp.json` file with:

```json
{
  "mcpServers": {
    "Volatility3": {
      "command": "fastmcp",
      "args": ["run", "path/to/volatility_mcp_server.py:mcp", "--transport", "stdio"]
    }
  }
}
```
#### Using `sse`
Run the server using
```pwsh
fastmcp run volatility_mcp_server.py:mcp --transport sse
```
For Claude desktop
```json
{
    "mcpServers": {
      "volatility3": {
        "command": "npx",
        "args": ["mcp-remote", "http://localhost:8000/sse"]
      }
    }
  }
```
For Cursor
```json
{
  "mcpServers": {
    "Volatility3": {
      "url": "http://localhost:8000/sse"
    }
  }
}
```

### ๐Ÿ“Š Available Plugins

#### Windows Plugins
- Process: `PsList`, `PsTree`, `PsScan`
- Memory: `Malfind`, `MemMap`
- Network: `NetScan`
- Registry: `RegistryHiveList`, `RegistryPrintKey`
- System: `SvcScan`, `CmdLine`, `DllList`, `Handles`, `FileScan`
- Disk: `ADS`, `MFTScan`, `ResidentData`

#### Linux Plugins
- Process: `PsList`, `PsTree`, `PsScan`, `PsAux`, `PsCallStack`
- System: `Bash`, `Boottime`, `Capabilities`
- Network: `IpAddr`, `IpLink`, `Netfilter`
- Memory: `Malfind`, `ModuleExtract`
- File System: `Files`, `InodePages`, `RecoverFs`

#### macOS Plugins
- Process: `PsList`, `PsTree`, `Psaux`
- System: `Bash`, `Dmesg`, `Lsmod`
- Network: `Ifconfig`, `Netstat`
- Security: `Check_syscall`, `Check_sysctl`, `Check_trap_table`

#### Common Plugins
- Framework: `Banners`, `ConfigWriter`, `FrameworkInfo`, `IsfInfo`, `LayerWriter`
- Scan: `RegExScan`, `YaraScan`, `Vmscan`
- Timeline: `Timeliner`

---

## ๐Ÿณ Docker Usage (No idea what I wanted to do here but might be useful in the future)

### โš™๏ธ 1. Build the Docker Image

From the root directory:

```bash
docker build -t volatility-mcp .
```

### โ–ถ๏ธ 2. Run the Server

```bash
docker run --rm -it \
  -v $(pwd)/memdumps:/memdumps \
  -v $(pwd)/output:/output \
  volatility-mcp
```

---

## ๐Ÿ”ง Developer/Contributor Guide

### ๐Ÿงฑ Setup Virtual Environment

```bash
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```

### ๐Ÿงช Run Locally

```bash
python volatility_mcp_server.py
```

---

## โœ๏ธ Customization Tips

- ๐Ÿ“€ Want to add a new plugin? Extend `BasePlugin` and register it in `plugin_factory.py`
- ๐Ÿงฉ Want to add a new OS? Create a new plugin directory and implement the plugins
- ๐Ÿ“š Want to add new features? The modular architecture makes it easy to extend

---

## ๐Ÿ™‹ FAQ

> ๐ŸŸ  **Does this support Volatility 2.x?**  
๐Ÿ”ป No. This server supports **Volatility 3 only** for modern plugin support.

> ๐Ÿ”ต **Can I add custom plugins?**  
โœ… Yes! Just extend the `BasePlugin` class and register it in the factory.

> ๐Ÿ”ด **Why use FastMCP?**  
It provides a clean, efficient interface for running Volatility plugins with proper error handling and async support.

---

## ๐Ÿ“œ License

MIT ยฉ๏ธ 2025

---

## ๐ŸŒ More Tools?

You may also like:
- [Volatility Foundation](https://www.volatilityfoundation.org/)
- [FastMCP Documentation](https://github.com/Textualize/fastmcp)
- [Python-dotenv](https://github.com/theskumar/python-dotenv)