BugBounty MCP Server
Offers dedicated Drupal CMS security scanning capabilities, including module analysis, vulnerability detection, and configuration security assessment
Provides reconnaissance capabilities for code repository analysis, including searching for repositories that mention target domains and analyzing source code for sensitive information during security assessments
Enables automated Google dorking for security reconnaissance, allowing systematic search engine queries to discover exposed information, files, and potential vulnerabilities on target domains
Provides specialized security testing tools for GraphQL APIs, including query analysis, schema introspection, and GraphQL-specific vulnerability detection
Enables comprehensive Joomla CMS security testing with specialized tools for component analysis, vulnerability scanning, and security configuration review
Integrates threat intelligence capabilities for analyzing domains, URLs, and files during security assessments, providing malware detection and reputation scoring for discovered assets
Provides specialized CMS scanning tools for WordPress security analysis, including vulnerability detection, plugin enumeration, and configuration assessment
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@BugBounty MCP Serverscan example.com for open ports and services"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
BugBounty MCP Server
A production-oriented Model Context Protocol server for authorized bug bounty reconnaissance, bounded security checks, and finding management.
Version 2.2 exposes 53 implemented tools. Every tool has closed input and typed output schemas, server-side bounds, honest MCP annotations, and protocol-level tests. Network operations are scope checked; local analyzers do not open the network. The server uses the current MCP Python SDK v2 API and supports stdio and Streamable HTTP transports.
Use this server only on systems you own or have explicit permission to test. The server enforces configured scope, but authorization remains the operator's responsibility.
What is included
Area | Tools |
Safety and orchestration |
|
Local analysis |
|
DNS and asset discovery |
|
HTTP discovery |
|
Web and API posture |
|
Network and TLS |
|
Optional integrations |
|
Findings and reports |
|
The server also exposes MCP-native knowledge and state:
Nine bundled guidance resources plus live tool-schema, configuration-schema, assessment-state, finding, and integrity-checked evidence resources.
Resource templates for findings and evidence.
Five reusable prompts for planning, passive reconnaissance, triage, disclosure, and remediation validation.
Argument completion for configured targets, finding IDs, and report audiences.
The server deliberately does not expose simulated scanners, credential dumping, persistence, anti-forensics, social-engineering templates, destructive exploit automation, or payload generators. Tool count never overrides authorization, bounded execution, or truthful results.
Related MCP server: Bug Bounty MCP Server
Requirements
Python 3.10 or newer; Python 3.11+ is recommended.
An MCP-compatible client.
Nuclei and the four passive bug-bounty CLI adapters are optional and disabled unless explicitly enabled.
Install
git clone https://github.com/gokulapap/bugbounty-mcp-server.git
cd bugbounty-mcp-server
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
cp env.example .envSet at least one authorized target before using a network tool:
SAFE_MODE=true
ALLOWED_TARGETS=example.com,*.example.comSafe mode is fail-closed. If ALLOWED_TARGETS is empty, network tools reject every target.
Validate the installation:
bugbounty-mcp validate-config
bugbounty-mcp list-tools
bugbounty-mcp list-resources
bugbounty-mcp list-promptsFor development:
python -m pip install -e '.[dev]'
ruff check .
mypy bugbounty_mcp_server
pytest --cov=bugbounty_mcp_serverMCP client configuration
Use the virtual environment's absolute executable path. A generic MCP client configuration looks like this:
{
"mcpServers": {
"bugbounty": {
"command": "/absolute/path/bugbounty-mcp-server/.venv/bin/bugbounty-mcp",
"args": ["serve"],
"env": {
"SAFE_MODE": "true",
"ALLOWED_TARGETS": "example.com,*.example.com"
}
}
}
}The default transport is stdio. Nothing except MCP protocol messages is written to stdout; logs go to stderr.
Target scope
Scope entries are comma-separated and matched after canonicalization:
# The apex only
ALLOWED_TARGETS=example.com
# Subdomains only; does not include the apex
ALLOWED_TARGETS=*.example.com
# Both apex and subdomains
ALLOWED_TARGETS=example.com,*.example.com
# An internal lab requires both the CIDR and explicit private-target opt-in
ALLOWED_TARGETS=10.20.0.0/16
ALLOW_PRIVATE_TARGETS=true
# Block rules win over allow rules
BLOCKED_TARGETS=admin.example.comSafety behavior:
Exact domains do not match lookalikes or subdomains.
*.example.commatches child labels but notexample.comitself.CIDR rules match IP targets.
Block rules take precedence.
Credentials embedded in URLs and non-HTTP URL schemes are rejected.
Redirect destinations are re-authorized before they are followed.
Public domain names resolving to private, loopback, link-local, reserved, or multicast addresses are rejected unless private targets are explicitly enabled.
Port count, concurrency, body size, redirect count, crawl depth, pages, paths, runtime, and MCP output all have server-side limits.
Configuration
Configuration priority is: defaults, optional JSON/YAML file, then environment variables.
bugbounty-mcp --config config.yaml serve
bugbounty-mcp export-config --format yaml --output config.yamlImportant settings:
Variable | Default | Purpose |
|
| Require allow-list matching |
| empty | Authorized exact domains, wildcards, IPs, or CIDRs |
| empty | Explicitly denied targets |
|
| Permit non-public IP space for a controlled lab |
|
| Shared outbound pacing |
|
| HTTP operation timeout in seconds |
|
| TCP connect timeout in seconds |
|
| Whole MCP tool-call timeout |
|
| Concurrency cap |
|
| TCP port cap per call |
|
| Crawler depth cap |
|
| Crawler page cap |
|
| Per-page crawler link inventory cap |
|
| Per-page crawler form inventory cap |
|
| Per-artifact evidence limit |
|
| Finding store directory |
|
| Report directory |
| empty | Optional Streamable HTTP bearer token, minimum 24 characters |
|
| Enable the optional Nuclei adapter |
|
| Nuclei executable name or path |
| empty | Comma-separated opt-in: |
|
| Subfinder executable name or path |
|
| Amass executable name or path |
|
| Assetfinder executable name or path |
|
| gau executable name or path |
See env.example for the full environment template.
Tool behavior
All tools have closed JSON Schemas (additionalProperties: false). Invalid input, unknown tools,
scope violations, disabled dependencies, timeouts, output limits, and internal incidents return
MCP CallToolResult objects with isError: true and a structured error:
{
"error": {
"code": "target_not_allowed",
"message": "target is outside ALLOWED_TARGETS"
}
}Successful tools return both human-readable JSON text and structuredContent.
Nuclei
Nuclei execution must be enabled by the operator:
ENABLE_NUCLEI=true
NUCLEI_PATH=nucleiThe adapter passes an argv list without a shell, validates severities and tags, restricts the target to scope, enforces a timeout and output bound, and returns a normalized finding subset. You are still responsible for reviewing installed templates and their request behavior.
Passive bug-bounty CLI adapters
Subfinder, Amass passive mode, Assetfinder, and gau are separately installed operator tools. Enable only the binaries you have reviewed:
ENABLED_EXTERNAL_TOOLS=subfinder,amass,assetfinder,gau
SUBFINDER_PATH=subfinder
AMASS_PATH=amass
ASSETFINDER_PATH=assetfinder
GAU_PATH=gauThe adapters use argv-only subprocess execution, time and output limits, and discard results that
do not revalidate against ALLOWED_TARGETS. No external binary is downloaded by this project or
enabled by default. Passive providers can still receive the queried domain, so review their terms
and the applicable bounty program rules.
Findings and reports
Findings are stored atomically in DATA_DIR/findings.json. Structured fields include confidence,
impact, reproduction steps, CWE, CVSS score, tags, and source-tool attribution. Evidence artifacts
are private, size-bounded, content-addressed with SHA-256, and checked for tampering when read.
Reports are generated in JSON, Markdown, escaped standalone HTML, or SARIF 2.1.0 under OUTPUT_DIR.
Report filenames are generated by the server; tool callers cannot choose arbitrary destinations.
Streamable HTTP
Local HTTP mode:
bugbounty-mcp serve --transport streamable-http --host 127.0.0.1 --port 8000The CLI refuses a non-loopback bind unless --allow-remote is present. Set a random token of at
least 24 characters to require constant-time bearer authentication:
HTTP_BEARER_TOKEN=replace-with-a-long-random-secretSend it as Authorization: Bearer <token>. Bearer tokens do not provide encryption, so remote use
still requires TLS, network policy, and request logging that does not record credentials. For
multi-user or internet-facing deployments, prefer an OAuth-capable authenticating reverse proxy.
Docker
The image intentionally contains the Python server only. It does not download unpinned offensive tools during the build.
docker compose up --buildCompose binds the Streamable HTTP endpoint to host loopback at http://127.0.0.1:3001/mcp and mounts
data/ and output/. Configure ALLOWED_TARGETS in your local .env first.
For stdio from a container:
docker run --rm -i \
-e SAFE_MODE=true \
-e ALLOWED_TARGETS=example.com,*.example.com \
bugbounty-mcp:2.2.0 serveDesign notes
MCP SDK v2 low-level handlers preserve exact schemas and structured error/result control.
Capabilities are derived from registered handlers instead of being manually over-advertised.
Configuration construction has no directory or logging side effects; server startup owns them.
Secrets are never included in health output or tool-call logs.
Subprocesses use argv execution, a closed stdin, bounded captured output, and process-group cleanup on timeout.
Validated DNS answers are pinned into HTTP, TCP, and TLS connections to prevent rebinding between authorization and connection establishment.
The local finding store is suitable for a single server process. Use an external transactional store if multiple replicas must write concurrently.
Further resources:
License
MIT. See LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI pentesting: run scans, triage vulnerabilities, review PRs, manage schedules and assets.
Hunt zero-days by talking to binaries. 40+ tools. Hosted, OAuth + SSO, invite: hi@byteray.ai
Offline methodology engine for authorized penetration testing, CTF, and security research.
Pay-per-call cybersecurity for AI agents: vuln scans, threat intel, compliance, code security.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAI-powered cybersecurity automation platform with 150+ security tools and 12+ autonomous AI agents for penetration testing, vulnerability assessment, and bug bounty hunting. Enables comprehensive security testing through intelligent tool selection and automated workflows.2
- AlicenseCqualityDmaintenanceEnables AI agents to generate and manage specialized bug bounty hunting workflows including reconnaissance, vulnerability testing, OSINT gathering, and file upload testing. Provides REST API endpoints for comprehensive security assessments with intelligence-driven vulnerability prioritization.402MIT
- AlicenseCqualityDmaintenanceAn automated penetration testing framework that enables intelligent security assessments through reconnaissance, vulnerability scanning, and controlled exploitation. Features AI-driven workflow management with comprehensive reporting for authorized security testing.252797BSD 3-Clause
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to perform authorized security testing and penetration testing operations including SSL/TLS analysis, port scanning, vulnerability scanning, and HTTP security header audits through natural language interactions.1MIT
Appeared in Searches
- A tool for assisting with bug bounty hunting
- Obfuscated string with gethostbyname and bxss.me domain
- A search for a string containing SQL injection and XSS payload characters
- A server for finding bug bounty programs and cybersecurity vulnerability rewards
- A server for penetration testing resources and information
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gokulapap/bugbounty-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server