BBOT MCP Server

BBOT MCP Server

Enables users to run and manage BBOT security scans through the MCP interface. Provides comprehensive tools for executing reconnaissance scans, monitoring progress, and retrieving results with support for concurrent scanning operations.

Category
访问服务器

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

  1. Install dependencies:
pip install -r requirements.txt
  1. Install bbot (if not already installed):
pip install bbot

Usage

Running the MCP Server

python bbot_mcp_server.py

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 use
  • presets: Optional comma-separated list of presets to apply
  • flags: Optional comma-separated list of flags
  • no_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 scan
  • limit: 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 for
  • timeout: 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.

Scan Management

Scan Lifecycle

  1. Starting: Scan is being initialized
  2. Running: Scan is actively executing
  3. Completed: Scan finished successfully
  4. 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

Testing

Run the test suite to verify functionality:

python test_server.py

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-deadly equivalent 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

The following modules are automatically excluded due to dependency issues:

  • sslcert: APT dependency incompatible with macOS Homebrew
  • trufflehog: Dependency installation conflicts

Override Option: Set no_deps=False only if you're certain no sudo prompts will occur

Troubleshooting

Common Issues

  1. Import Errors: Ensure bbot is properly installed: pip install bbot mcp
  2. Sudo Password Prompts: The server includes comprehensive protection, but if you encounter prompts:
    • Ensure no_deps=True (default)
    • Check environment variables are set correctly
    • Manually install dependencies: pip install <module-deps>
  3. Scan Timeouts: Use wait_for_scan_completion with appropriate timeout values
  4. 0 Results: Check preset/flag configuration and module exclusions
  5. Long Scan Times: Bbot scans can take hours depending on scope and modules
  6. Memory Usage: Large scans may consume significant memory

macOS Specific Issues

  • sslcert Module: Automatically excluded due to APT/Homebrew incompatibility
  • Package Manager: Use Homebrew instead of APT for manual dependency installation
  • OpenSSL: Ensure OpenSSL 3.x is installed via Homebrew

Development Notes

  • Testing: Run python test_wait_completion.py to verify functionality
  • Logs: Check console output for detailed scan progress and error information
  • MCP Integration: Server runs on standard MCP protocol with JSON-formatted responses

For more information about bbot itself, visit: https://github.com/blacklanternsecurity/bbot

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选