About Bbot MCP
Bbot MCP is an MCP server published by marlinkcyber in the Developer Tools category: mCP server for BBOT.
The repository has 2 stars and 1 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/marlinkcyber/bbot-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (10)
flagsOptional comma-separated list of flags
Parameters not published.
include_progressWhether to include progress updates in the response (default: True)
Parameters not published.
limitMaximum number of results to return (default: 100)
Parameters not published.
modulesOptional comma-separated list of modules to use
Parameters not published.
no_depsDisable dependency installation to prevent sudo prompts (default: True)
Parameters not published.
poll_intervalHow often to check scan status in seconds (default: 5)
Parameters not published.
presetsOptional comma-separated list of presets to apply
Parameters not published.
scan_idThe ID of the scan to wait for
Parameters not published.
targetsComma-separated list of targets (domains, IPs, URLs)
Parameters not published.
timeoutMaximum time to wait in seconds (default: 300 = 5 minutes)
Parameters not published.
Ask AI
Ask AI about Bbot MCP
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- ✓Tests presentA test suite exists in the repository.
- !Dependencies pinnedNo lockfile. Installs can pull different code over time.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
Releases
README
BBOT MCP Server
A Model Context Protocol (MCP) server for running BBOT security scans. This server provides tools to manage and execute bbot scans through the MCP interface.
Features
- Module Management: List and explore available bbot modules
- Preset Management: List and use predefined scan configurations
- Scan Execution: Start and manage long-running bbot scans
- Real-time Monitoring: Check scan status and retrieve results
- Wait & Progress Tracking: Wait for scan completion with timeout and progress reporting
- Concurrent Scans: Support for multiple simultaneous scans
- Dependency Management: Comprehensive sudo prevention and no-deps functionality
Installation
From PyPI (Recommended)
pip install bbot-mcp
From Source
git clone https://github.com/marlinkcyber/bbot-mcp.git
cd bbot-mcp
pip install -e .
Using uvx (Run without installing)
uvx bbot-mcp
Install dependencies
It is recommended to install all BBOT dependencies before invoking BBOT MCP server:
bbot --install-all-deps
Usage
Running the MCP Server
After installation, the server can be started using the bbot-mcp command:
bbot-mcp
Or directly with Python:
python -m bbot_mcp.server
Available Tools
The MCP server provides 8 tools for comprehensive bbot scan management:
1. list_bbot_modules()
Lists all available bbot modules categorized by type (scan, output, internal).
2. list_bbot_presets()
Lists all available bbot presets for quick scan configuration.
3. start_bbot_scan(targets, modules="", presets="", flags="", no_deps=True)
Starts a new bbot scan with the specified parameters.
Parameters:
targets: Comma-separated list of targets (domains, IPs, URLs)modules: Optional comma-separated list of modules to usepresets: Optional comma-separated list of presets to applyflags: Optional comma-separated list of flagsno_deps: Disable dependency installation to prevent sudo prompts (default: True)
Example:
start_bbot_scan("example.com,google.com", "httpx,nmap", "web-basic", "safe", True)
Important: The no_deps=True parameter prevents bbot from attempting to install missing dependencies, which would cause sudo password prompts that hang the MCP server.
4. get_scan_status(scan_id)
Retrieves the current status of a specific scan.
5. get_scan_results(scan_id, limit=100)
Retrieves results from a completed or running scan.
Parameters:
scan_id: The unique identifier of the scanlimit: Maximum number of results to return (default: 100)
6. list_active_scans()
Lists all currently active scans with their basic information.
7. wait_for_scan_completion(scan_id, timeout=300, poll_interval=5, include_progress=True)
Waits for a scan to complete with timeout and progress reporting.
Parameters:
scan_id: The ID of the scan to wait fortimeout: Maximum time to wait in seconds (default: 300 = 5 minutes)poll_interval: How often to check scan status in seconds (default: 5)include_progress: Whether to include progress updates in the response (default: True)
Returns:
- Success response with completion details, elapsed time, and progress updates
- Timeout response if scan doesn't complete within the specified time
- Error response for invalid scan IDs or other issues
Example:
# Wait for scan to complete with custom timeout
result = wait_for_scan_completion("scan-123", timeout=600, poll_interval=10)
8. get_dependency_info()
Provides information about bbot's dependency management system and how the MCP server handles dependencies.
MCP config example:
{
"mcpServers": {
"bbot": {
"command": "uvx",
"args": ["--refresh","bbot-mcp"]
}
}
}
Scan Management
Scan Lifecycle
- Starting: Scan is being initialized
- Running: Scan is actively executing
- Completed: Scan finished successfully
- Error: Scan encountered an error
Long-running Scans
Scans run in separate threads to avoid blocking the MCP server. You can:
- Start multiple scans concurrently
- Check status while scans are running
- Retrieve partial results from ongoing scans
Development
Testing
Run the test suite to verify functionality:
# Run all tests
pytest
# Run specific test categories
python tests/test_server.py
python tests/simple_test.py
python tests/test_imports.py
# Test the binary command
bbot-mcp --help
Project Structure
bbot-mcp/
├── bbot_mcp/ # Main package
│ ├── __init__.py # Package initialization
│ └── server.py # MCP server implementation
├── tests/ # Test suite
├── pyproject.toml # Package configuration
├── README.md # This file
└── requirements.txt # Development dependencies
Example MCP Client Usage
# Connect to the MCP server and use the tools
client = MCPClient("bbot-scanner")
# List available modules
modules = client.call_tool("list_bbot_modules")
# Start a scan
scan_result = client.call_tool("start_bbot_scan", {
"targets": "example.com",
"presets": "web-basic"
})
# Check scan status
status = client.call_tool("get_scan_status", {
"scan_id": scan_result["scan_id"]
})
# Wait for scan to complete
completion = client.call_tool("wait_for_scan_completion", {
"scan_id": scan_result["scan_id"],
"timeout": 300
})
# Get results when complete
results = client.call_tool("get_scan_results", {
"scan_id": scan_result["scan_id"],
"limit": 50
})
Security Considerations
- This tool is designed for authorized security testing only
- Always ensure you have permission to scan target systems
- Be aware that bbot scans can be resource-intensive and may take significant time
- Some modules may be considered intrusive - use the
--allow-deadlyequivalent flags carefully
Dependency Management
The MCP server includes comprehensive dependency management to prevent sudo password prompts:
Automatic Protection Measures
- Default Behavior:
no_deps=True- Dependencies are disabled by default - Environment Variables: Multiple layers of sudo prevention (SUDO_ASKPASS, DEBIAN_FRONTEND, etc.)
- Stdin Redirection: Blocks all interactive input to prevent hanging
- Module Exclusions: Problematic modules (sslcert, trufflehog) are automatically excluded
- Force Configuration: Modules run even if dependencies fail
Key Features
- Comprehensive Sudo Prevention: Multiple environment variables and configurations prevent any sudo prompts
- Graceful Degradation: Scans continue even when some modules can't load dependencies
- Pre-installation Support: Install dependencies manually if needed:
pip install <module-deps> - macOS Compatibility: Special handling for Homebrew vs APT package manager conflicts
Excluded Modules
You can exclude problematic modules by setting following environment variable:
export BBOT_EXCLUDE_MODULES="trufflehog,sslcert"
Example exclude mentioned modules if you have any dependency issues (i.e. on Mac OS X):
sslcert: APT dependency incompatible with macOS Homebrewtrufflehog: Dependency installation conflicts
Override Option: Set no_deps=False only if you're certain no sudo prompts will occur
For more information about bbot itself, visit: https://github.com/blacklanternsecurity/bbot
README fetched from the repository 7 days ago. The original is authoritative.