Mcp Pymetasploit3

io.github.daedalus由 GitHub 账号 daedalus 发布v0.1.1更新于 Oct 24, 2026

MCP server for Metasploit Framework via pymetasploit3

已验证STDIO仅桌面开发者工具安全与监控

概览

AI 生成的概览

本地 MCP 服务器,通过 msfrpc 暴露 Metasploit Framework,让助手列出、配置、执行和管理模块、载荷、会话及框架状态。

可以做什么
连接和断开 Metasploit RPC 服务器,查看连接状态、框架版本、核心状态、全局变量、任务和插件。搜索、列出、加载和查看模块,设置选项与目标,检查缺失的必填项并执行模块。生成载荷,列出兼容的目标和载荷。列出、查看、交互、在会话中执行命令并停止会话。创建、写入、读取和销毁控制台,执行模块并获取输出。查询数据库中的工作区、主机、服务、笔记、凭据和漏洞。
适用场景
适用于获得授权的安全测试、实验环境或 CTF 场景,让助手通过 RPC 接口驱动已有的 Metasploit Framework 实例,而不必手动输入 msfconsole 命令。不适用于一般开发或非安全任务。
运行要求
以 pip 安装的 Python 包在本地运行,仅限桌面端。需要运行中的 Metasploit Framework RPC 服务器(msfrpcd 或 msfconsole 中的 msgrpc),提供主机和端口,并向 connect 工具提供 RPC 密码。未声明环境变量或请求头。
安装前请注意
这会让助手控制一个攻击性安全框架:执行模块、生成载荷、在会话中运行命令和更改框架状态都可能影响真实系统,仅限在获得授权测试的系统上使用。RPC 密码需传给 connect 工具,必须妥善保护。数据库工具可读取已存储的凭据和漏洞数据。加载插件和执行模块可能在目标上运行任意代码。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Mcp Pymetasploit3,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

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.

[PyPI] [Python]

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 -qmsf6 > 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 Metasploitconnect(password="yourpassword", host="127.0.0.1", port=55553, ssl=False)
# List exploitsexploits = list_modules("exploit")
# Use an exploituse_module("exploit", "unix/ftp/vsftpd_234_backdoor")
# Set optionsset_module_option("exploit", "unix/ftp/vsftpd_234_backdoor", "RHOSTS", "192.168.1.100")
# Executeresult = execute_module("exploit", "unix/ftp/vsftpd_234_backdoor", payload="cmd/unix/interact")
# List sessionssessions = list_sessions()
# Interact with sessionoutput = interact_session("1", "whoami")
# Disconnectdisconnect()

Development

bash
git clone https://github.com/daedalus/mcp-pymetasploit3.gitcd mcp-pymetasploit3pip install -e ".[test]"
# run testspytest
# formatruff format src/ tests/
# lintruff check src/ tests/
# type checkmypy src/

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

来源:README.md,提交 295f8aa

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分