← Back to search

io.github.daedalus/mcp-pymetasploit3

daedalus Scanned 24d ago

MCP server for Metasploit Framework via pymetasploit3

B
78.4 / 100

Versions

0.1.1latest
first seen May 19, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 46

connect
annotations: none low

Connect to Metasploit RPC server. Args: password: The password for authentication. host: The RPC server hostname (default: 127.0.0.1). port: The RPC server port (default: 55553). ssl: Use SSL for connection (default: False). username: The username for authentication (default: msf). Returns: Connection status including authenticated state and server info. Example: >>> connect("mypassword", "192.168.1.100", 55553, True) {"status": "connected", "authenticated": True, "host": "192.168.1.100", "port": 55553}

ssl bool host str port int password str username str
disconnect
annotations: none low

Disconnect from Metasploit RPC server. Returns: Disconnection status. Example: >>> disconnect() {"status": "disconnected"}

get_client_info
annotations: none low

Get current connection status and information. Returns: Current connection details including authentication state. Example: >>> get_client_info() {"connected": True, "authenticated": True, "host": "127.0.0.1", "port": 55553}

list_modules
annotations: none low

List available modules of a specific type. Args: module_type: The type of module (exploit, auxiliary, payload, post, encoder, nop, evasion). Returns: List of available module names. Example: >>> list_modules("exploit") ["windows/smb/ms17_010_psexec", "unix/ftp/vsftpd_234_backdoor", ...]

module_type str
use_module
annotations: none low

Load a specific module for use. Args: module_type: The type of module (exploit, auxiliary, payload, post, encoder, nop). module_name: The full module name (e.g., 'unix/ftp/vsftpd_234_backdoor'). Returns: Module information including description, options, and references. Example: >>> use_module("exploit", "unix/ftp/vsftpd_234_backdoor") {"status": "loaded", "type": "exploit", "name": "unix/ftp/vsftpd_234_backdoor", ...}

module_name str module_type str
get_module_info
annotations: none low

Get detailed information about a module. Args: module_type: The type of module. module_name: The module name. Returns: Detailed module information including description, author, references. Example: >>> get_module_info("exploit", "unix/ftp/vsftpd_234_backdoor") {"description": "...", "author": [...], "references": [...], ...}

module_name str module_type str
get_module_options
annotations: none low

Get all options for a module. Args: module_type: The type of module. module_name: The module name. Returns: Dictionary of module options with their properties. Example: >>> get_module_options("exploit", "unix/ftp/vsftpd_234_backdoor") {"RHOSTS": {"type": "addressrange", "required": True, ...}, ...}

module_name str module_type str
set_module_option
annotations: none low

Set a module option value. Args: module_type: The type of module. module_name: The module name. option: The option name to set. value: The value to set. Returns: Status and current runoptions. Example: >>> set_module_option("exploit", "unix/ftp/vsftpd_234_backdoor", "RHOSTS", "192.168.1.100") {"status": "set", "option": "RHOSTS", "value": "192.168.1.100"}

value Any option str module_name str module_type str
core_reload_modules
annotations: none low

Reload all modules in the framework. Returns: Status of the operation. Example: >>> core_reload_modules() {"status": "reloaded"}

get_missing_required
annotations: none low

Get required options that haven't been set yet. Args: module_type: The type of module. module_name: The module name. Returns: List of missing required options. Example: >>> get_missing_required("exploit", "unix/ftp/vsftpd_234_backdoor") ["RHOSTS"]

module_name str module_type str
execute_module
annotations: none low

Execute a loaded module. Args: module_type: The type of module. module_name: The module name. payload: Optional payload to use (for exploits). rhosts: Remote target host(s). rport: Remote target port. lhost: Local host for payload callback. lport: Local port for payload callback. verbose: Enable verbose output. Returns: Execution result including job_id and uuid. Example: >>> execute_module("exploit", "unix/ftp/vsftpd_234_backdoor", payload="cmd/unix/interact", rhosts="192.168.1.100") {"job_id": 1, "uuid": "abc123"}

lhost string lport string rport string rhosts string payload string verbose string module_name str module_type str
get_module_targets
annotations: none low

Get available targets for a module. Args: module_type: The type of module. module_name: The module name. Returns: Dictionary of target ID to target name. Example: >>> get_module_targets("exploit", "windows/smb/ms17_010_psexec") {0: "Automatic", 1: "Windows XP SP3 (x86)", ...}

module_name str module_type str
set_module_target
annotations: none low

Set the target for a module. Args: module_type: The type of module. module_name: The module name. target: The target ID to set. Returns: Status and selected target. Example: >>> set_module_target("exploit", "windows/smb/ms17_010_psexec", 1) {"status": "set", "target": 1}

target int module_name str module_type str
get_target_payloads
annotations: none low

Get compatible payloads for a target. Args: module_type: The type of module (exploit). module_name: The module name. target: The target ID (default: 0). Returns: List of compatible payload names. Example: >>> get_target_payloads("exploit", "unix/ftp/vsftpd_234_backdoor", 0) ["cmd/unix/interact"]

target int module_name str module_type str
generate_payload
annotations: none low

Generate a payload with the specified options. Args: payload_name: The payload module name (e.g., 'windows/meterpreter/reverse_tcp'). lhost: Local host for reverse connections. lport: Local port for reverse connections. format: Output format (exe, raw, python, etc.). encoder: Encoder module to use. badchars: Characters to avoid in payload. iterations: Number of encoding iterations. Returns: Generated payload data (as base64 string if binary). Example: >>> generate_payload("windows/meterpreter/reverse_tcp", lhost="192.168.1.100", lport=4444) {"payload": "base64encoded...", "format": "exe"}

lhost string lport string format string encoder string badchars string iterations string payload_name str
list_sessions
annotations: none low

List all active sessions. Returns: Dictionary of session IDs to session information. Example: >>> list_sessions() {"1": {"type": "meterpreter", "session_host": "192.168.1.100", ...}, ...}

get_session_info
annotations: none low

Get information about a specific session. Args: session_id: The session ID to query. Returns: Session information including type, tunnel, platform, etc. Example: >>> get_session_info("1") {"type": "meterpreter", "session_host": "192.168.1.100", ...}

session_id str
interact_session
annotations: none low

Write a command to a session and read the output. Args: session_id: The session ID to interact with. command: The command to execute. Returns: Command output from the session. Example: >>> interact_session("1", "whoami") {"output": "root"}

command str session_id str
session_run_command
annotations: none low

Run a command in a session and wait for output. Args: session_id: The session ID to run the command in. command: The command to execute. terminating_strings: Strings that indicate command completion. timeout: Timeout in seconds (default: 300). timeout_exception: Raise exception on timeout (default: True). Returns: Command output. Example: >>> session_run_command("1", "arp", terminating_strings=["---"]) {"output": "\nARP Table\n---------------"}

command str timeout int session_id str timeout_exception bool terminating_strings string
stop_session
annotations: none low

Stop/close a session. Args: session_id: The session ID to stop. Returns: Status of the operation. Example: >>> stop_session("1") {"status": "stopped"}

session_id str
create_console
annotations: none low

Create a new Metasploit console. Returns: Console information including console ID. Example: >>> create_console() {"cid": "1", "prompt": "msf6 > "}

destroy_console
annotations: none low

Destroy a Metasploit console. Args: console_id: The console ID to destroy. Returns: Status of the operation. Example: >>> destroy_console("1") {"status": "destroyed"}

console_id str
write_console
annotations: none low

Write a command to a console. Args: console_id: The console ID. command: The command to execute. Returns: Console read result. Example: >>> write_console("1", "show options") {"data": "...", "prompt": "msf6 > "}

command str console_id str
read_console
annotations: none low

Read output from a console. Args: console_id: The console ID. Returns: Console output including data and prompt. Example: >>> read_console("1") {"data": "...", "prompt": "msf6 > ", "busy": False}

console_id str
console_is_busy
annotations: none low

Check if a console is currently executing. Args: console_id: The console ID. Returns: Whether the console is busy. Example: >>> console_is_busy("1") {"busy": False}

console_id str
run_module_output
annotations: none low

Execute a module and return the output. Args: module_type: The type of module. module_name: The module name. payload: Optional payload to use. rhosts: Remote target host(s). rport: Remote target port. lhost: Local host for payload callback. lport: Local port for payload callback. Returns: Module execution output. Example: >>> run_module_output("exploit", "unix/ftp/vsftpd_234_backdoor", payload="cmd/unix/interact", rhosts="192.168.1.100") {"output": "[*] 192.168.1.100:21 - Banner: 220 vsFTPd..."}

lhost string lport string rport string rhosts string payload string module_name str module_type str
get_framework_version
annotations: none low

Get Metasploit framework version information. Returns: Version information including version, api, framework, etc. Example: >>> get_framework_version() {"version": "6.4.0", "api": "1.0", "msf": "6.4.0-dev"}

get_db_status
annotations: none low

Get database connection status. Returns: Database status information. Example: >>> get_db_status() {"driver": "postgresql", "connected": True}

list_jobs
annotations: none low

List all running jobs. Returns: Dictionary of job IDs to job information. Example: >>> list_jobs() {"0": {"name": "Exploit: unix/ftp/vsftpd_234_backdoor", ...}}

stop_job
annotations: none low

Stop a running job. Args: job_id: The job ID to stop. Returns: Status of the operation. Example: >>> stop_job("0") {"status": "stopped"}

job_id str
get_job_info
annotations: none low

Get information about a specific job. Args: job_id: The job ID. Returns: Job information. Example: >>> get_job_info("0") {"name": "Exploit: unix/ftp/vsftpd_234_backdoor", ...}

job_id str
list_plugins
annotations: none low

List currently loaded plugins. Returns: List of loaded plugin names. Example: >>> list_plugins() ["db_connector", "socket_logger"]

load_plugin
annotations: none low

Load a Metasploit plugin. Args: plugin_name: The name of the plugin to load. Returns: Status of the operation. Example: >>> load_plugin("db_connector") {"status": "loaded"}

plugin_name str
unload_plugin
annotations: none low

Unload a Metasploit plugin. Args: plugin_name: The name of the plugin to unload. Returns: Status of the operation. Example: >>> unload_plugin("db_connector") {"status": "unloaded"}

plugin_name str
db_list_workspaces
annotations: none low

List all workspaces. Returns: List of workspace information. Example: >>> db_list_workspaces() [{"name": "default", "id": 1}, {"name": "project1", "id": 2}]

db_set_workspace
annotations: none low

Set the current workspace. Args: workspace_name: The name of the workspace to set as current. Returns: Status of the operation. Example: >>> db_set_workspace("project1") {"status": "set", "workspace": "project1"}

workspace_name str
db_list_hosts
annotations: none low

List all hosts in the current workspace. Returns: List of host information. Example: >>> db_list_hosts() [{"host": "192.168.1.100", "state": "alive", ...}]

db_list_services
annotations: none low

List all services in the current workspace. Returns: List of service information. Example: >>> db_list_services() [{"host": "192.168.1.100", "port": 22, "name": "ssh", ...}]

db_list_notes
annotations: none low

List all notes in the current workspace. Returns: List of note information. Example: >>> db_list_notes() [{"host": "192.168.1.100", "type": "smb_peer_os", ...}]

db_list_creds
annotations: none low

List all credentials in the current workspace. Returns: List of credential information. Example: >>> db_list_creds() [{"host": "192.168.1.100", "user": "admin", ...}]

db_list_vulns
annotations: none low

List all vulnerabilities in the current workspace. Returns: List of vulnerability information. Example: >>> db_list_vulns() [{"host": "192.168.1.100", "name": "vsftpd_234_backdoor", ...}]

core_save
annotations: none low

Save the current core state. Returns: Status of the operation. Example: >>> core_save() {"status": "saved"}

core_set_global
annotations: none low

Set a global variable. Args: var: The variable name. value: The variable value. Returns: Status of the operation. Example: >>> core_set_global("LHOST", "192.168.1.100") {"status": "set", "var": "LHOST", "value": "192.168.1.100"}

var str value str
core_unset_global
annotations: none low

Unset a global variable. Args: var: The variable name to unset. Returns: Status of the operation. Example: >>> core_unset_global("LHOST") {"status": "unset", "var": "LHOST"}

var str
search_modules
annotations: none low

Search for modules matching a query. Args: query: The search query string. Returns: List of matching modules with their types. Example: >>> search_modules("smb") [{"type": "exploit", "name": "windows/smb/ms17_010_psexec"}, ...]

query str
get_module_references
annotations: none low

Get CVE/OSVDB/BID references for a module. Args: module_type: The type of module. module_name: The module name. Returns: List of references (type, value pairs). Example: >>> get_module_references("exploit", "windows/smb/ms17_010_psexec") [["CVE", "2017-0143"], ["MS", "MS17-010"]]

module_name str module_type str

Permissions 0

No permissions indexed yet.

Scan Findings 100

low
Tool 'connect' has no annotations annotation_checker · 100%
low
Tool 'disconnect' has no annotations annotation_checker · 100%
low
Tool 'get_client_info' has no annotations annotation_checker · 100%
low
Tool 'list_modules' has no annotations annotation_checker · 100%
low
Tool 'use_module' has no annotations annotation_checker · 100%
low
Tool 'get_module_info' has no annotations annotation_checker · 100%
low
Tool 'get_module_options' has no annotations annotation_checker · 100%
low
Tool 'set_module_option' has no annotations annotation_checker · 100%
low
Tool 'get_missing_required' has no annotations annotation_checker · 100%
low
Tool 'execute_module' has no annotations annotation_checker · 100%
low
Tool 'get_module_targets' has no annotations annotation_checker · 100%
low
Tool 'set_module_target' has no annotations annotation_checker · 100%
low
Tool 'get_target_payloads' has no annotations annotation_checker · 100%
low
Tool 'generate_payload' has no annotations annotation_checker · 100%
low
Tool 'list_sessions' has no annotations annotation_checker · 100%
low
Tool 'get_session_info' has no annotations annotation_checker · 100%
low
Tool 'interact_session' has no annotations annotation_checker · 100%
low
Tool 'session_run_command' has no annotations annotation_checker · 100%
low
Tool 'stop_session' has no annotations annotation_checker · 100%
low
Tool 'create_console' has no annotations annotation_checker · 100%
low
Tool 'destroy_console' has no annotations annotation_checker · 100%
low
Tool 'write_console' has no annotations annotation_checker · 100%
low
Tool 'read_console' has no annotations annotation_checker · 100%
low
Tool 'console_is_busy' has no annotations annotation_checker · 100%
low
Tool 'run_module_output' has no annotations annotation_checker · 100%
low
Tool 'get_framework_version' has no annotations annotation_checker · 100%
low
Tool 'get_db_status' has no annotations annotation_checker · 100%
low
Tool 'list_jobs' has no annotations annotation_checker · 100%
low
Tool 'stop_job' has no annotations annotation_checker · 100%
low
Tool 'get_job_info' has no annotations annotation_checker · 100%
low
Tool 'list_plugins' has no annotations annotation_checker · 100%
low
Tool 'load_plugin' has no annotations annotation_checker · 100%
low
Tool 'unload_plugin' has no annotations annotation_checker · 100%
low
Tool 'db_list_workspaces' has no annotations annotation_checker · 100%
low
Tool 'db_set_workspace' has no annotations annotation_checker · 100%
low
Tool 'db_list_hosts' has no annotations annotation_checker · 100%
low
Tool 'db_list_services' has no annotations annotation_checker · 100%
low
Tool 'db_list_notes' has no annotations annotation_checker · 100%
low
Tool 'db_list_creds' has no annotations annotation_checker · 100%
low
Tool 'db_list_vulns' has no annotations annotation_checker · 100%
low
Tool 'core_save' has no annotations annotation_checker · 100%
low
Tool 'core_reload_modules' has no annotations annotation_checker · 100%
low
Tool 'core_set_global' has no annotations annotation_checker · 100%
low
Tool 'core_unset_global' has no annotations annotation_checker · 100%
low
Tool 'search_modules' has no annotations annotation_checker · 100%
low
Tool 'get_module_references' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: pymetasploit3@1.0.6 (GHSA-qpc3-8vqg-8g6w) dependency_analyzer · 95%
medium
Vulnerable dependency: pymetasploit3@1.0.6 (PYSEC-2026-500) dependency_analyzer · 95%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: connect manifest_parser · 90%
info
Tool: disconnect manifest_parser · 90%
info
Tool: get_client_info manifest_parser · 90%
info
Tool: list_modules manifest_parser · 90%
info
Tool: use_module manifest_parser · 90%
info
Tool: get_module_info manifest_parser · 90%
info
Tool: get_module_options manifest_parser · 90%
info
Tool: set_module_option manifest_parser · 90%
info
Tool: get_missing_required manifest_parser · 90%
info
Tool: list_plugins manifest_parser · 90%
info
Tool: execute_module manifest_parser · 90%
info
Tool: get_module_targets manifest_parser · 90%
info
Tool: set_module_target manifest_parser · 90%
info
Tool: get_target_payloads manifest_parser · 90%
info
Tool: generate_payload manifest_parser · 90%
info
Tool: list_sessions manifest_parser · 90%
info
Tool: get_session_info manifest_parser · 90%
info
Tool: interact_session manifest_parser · 90%
info
Tool: session_run_command manifest_parser · 90%
info
Tool: stop_session manifest_parser · 90%
info
Tool: create_console manifest_parser · 90%
info
Tool: destroy_console manifest_parser · 90%
info
Tool: write_console manifest_parser · 90%
info
Tool: read_console manifest_parser · 90%
info
Tool: console_is_busy manifest_parser · 90%
info
Tool: run_module_output manifest_parser · 90%
info
Tool: get_framework_version manifest_parser · 90%
info
Tool: get_db_status manifest_parser · 90%
info
Tool: list_jobs manifest_parser · 90%
info
Tool: stop_job manifest_parser · 90%
info
Tool: get_job_info manifest_parser · 90%
info
Tool: load_plugin manifest_parser · 90%
info
Tool: unload_plugin manifest_parser · 90%
info
Tool: db_list_workspaces manifest_parser · 90%
info
Tool: db_set_workspace manifest_parser · 90%
info
Tool: db_list_hosts manifest_parser · 90%
info
Tool: db_list_services manifest_parser · 90%
info
Tool: db_list_notes manifest_parser · 90%
info
Tool: db_list_creds manifest_parser · 90%
info
Tool: db_list_vulns manifest_parser · 90%
info
Tool: core_save manifest_parser · 90%
info
Tool: core_reload_modules manifest_parser · 90%
info
Tool: core_set_global manifest_parser · 90%
info
Tool: core_unset_global manifest_parser · 90%
info
Tool: search_modules manifest_parser · 90%
info
Tool: get_module_references manifest_parser · 90%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
info
No dependency files found for SBOM generation sbom_generator · 100%
high
Hardcoded Password found in daedalus-mcp-pymetasploit3-295f8aa/README.md secret_scanner · 65%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%