Skip to main content
Glama
SlanyCukr

Bug Bounty MCP Server

by SlanyCukr

bugbounty_business_logic_workflow

Generate business logic testing workflows for bug bounty programs to identify security vulnerabilities in web applications, APIs, mobile apps, or IoT systems.

Instructions

Create business logic testing workflow for bug bounty hunting.

Args: domain: Target domain program_type: Type of program (web, api, mobile, iot)

Returns: Business logic testing workflow

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
domainYes
program_typeNoweb

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Primary MCP tool handler for 'bugbounty_business_logic_workflow'. Proxies the input parameters to the backend REST API endpoint and returns the result.
    def bugbounty_business_logic_workflow(
        domain: str, program_type: str = "web"
    ) -> dict[str, Any]:
        """Create business logic testing workflow for bug bounty hunting.
    
        Args:
            domain: Target domain
            program_type: Type of program (web, api, mobile, iot)
    
        Returns:
            Business logic testing workflow
        """
        data = {"domain": domain, "program_type": program_type}
    
        logger.info(f"🎯 Creating business logic testing workflow for {domain}")
        result = api_client.safe_post("api/bugbounty/business-logic-workflow", data)
    
        if result.get("success"):
            logger.info(f"✅ Business logic testing workflow created for {domain}")
        else:
            logger.error(
                f"❌ Failed to create business logic testing workflow for {domain}"
            )
    
        return result
  • REST API endpoint handler for '/api/bugbounty/business-logic-workflow'. Creates a BugBountyTarget and calls the workflow manager to generate the workflow.
    @workflow()
    def create_business_logic_workflow():
        """Create business logic testing workflow."""
        # Import here to avoid circular imports
        from src.rest_api_server.managers import BugBountyTarget, bugbounty_manager
    
        data = request.get_json()
    
        domain = data["domain"]
        program_type = data.get("program_type", "web")
    
        logger.info(f"Creating business logic testing workflow for {domain}")
    
        # Create bug bounty target
        target = BugBountyTarget(domain=domain, program_type=program_type)
    
        # Generate business logic testing workflow
        workflow = bugbounty_manager.create_business_logic_testing_workflow(target)
    
        logger.info(f"Business logic testing workflow created for {domain}")
    
        return workflow
  • Core helper method in BugBountyWorkflowManager that defines and returns the detailed structure of the business logic testing workflow, including test categories and specific tests.
    def create_business_logic_testing_workflow(
        self, target: BugBountyTarget
    ) -> dict[str, Any]:
        """Create business logic testing workflow."""
        workflow = {
            "target": target.domain,
            "business_logic_tests": [
                {
                    "category": "Authentication Bypass",
                    "tests": [
                        {"name": "Password Reset Token Reuse", "method": "manual"},
                        {
                            "name": "JWT Algorithm Confusion",
                            "method": "automated",
                            "tool": "jwt_tool",
                        },
                        {"name": "Session Fixation", "method": "manual"},
                        {"name": "OAuth Flow Manipulation", "method": "manual"},
                    ],
                },
                {
                    "category": "Authorization Flaws",
                    "tests": [
                        {
                            "name": "Horizontal Privilege Escalation",
                            "method": "automated",
                            "tool": "arjun",
                        },
                        {"name": "Vertical Privilege Escalation", "method": "manual"},
                        {
                            "name": "Role-based Access Control Bypass",
                            "method": "manual",
                        },
                    ],
                },
                {
                    "category": "Business Process Manipulation",
                    "tests": [
                        {
                            "name": "Race Conditions",
                            "method": "automated",
                            "tool": "race_the_web",
                        },
                        {"name": "Price Manipulation", "method": "manual"},
                        {"name": "Quantity Limits Bypass", "method": "manual"},
                        {"name": "Workflow State Manipulation", "method": "manual"},
                    ],
                },
                {
                    "category": "Input Validation Bypass",
                    "tests": [
                        {
                            "name": "File Upload Restrictions",
                            "method": "automated",
                            "tool": "upload_scanner",
                        },
                        {"name": "Content-Type Bypass", "method": "manual"},
                        {"name": "Size Limit Bypass", "method": "manual"},
                    ],
                },
            ],
            "estimated_time": 480,  # 8 hours for thorough business logic testing
            "manual_testing_required": True,
        }
    
        return workflow
  • Dataclass defining the target structure used in workflow generation, including program_type relevant to this tool.
    @dataclass
    class BugBountyTarget:
        """Bug bounty target information."""
    
        domain: str
        scope: list[str] = field(default_factory=list)
        out_of_scope: list[str] = field(default_factory=list)
        program_type: str = "web"  # web, api, mobile, iot
        priority_vulns: list[str] = field(
            default_factory=lambda: ["rce", "sqli", "xss", "idor", "ssrf"]
        )
        bounty_range: str = "unknown"
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool 'creates' something (implying a write/generation operation) but doesn't specify what format the workflow takes, whether it's interactive or automated, what permissions might be needed, or how comprehensive the output is. For a tool that generates testing workflows, this leaves significant behavioral questions unanswered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise with a clear main statement followed by Args and Returns sections. The structure is front-loaded with the core purpose first. However, the Args and Returns sections are somewhat redundant since they mostly repeat what's already implied in the main statement without adding significant new information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there's an output schema (though not shown here), the description doesn't need to explain return values in detail. However, for a tool with 2 parameters (one required) and no annotations, the description should provide more context about what kind of workflow is generated, its typical structure, and how it integrates with other bug bounty tools. The current description is minimally adequate but leaves important contextual gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage for both parameters, the description must compensate but does so minimally. It mentions 'domain: Target domain' and 'program_type: Type of program (web, api, mobile, iot)' but provides no examples, format requirements, or constraints. For 'program_type', it lists possible values but doesn't explain what differentiates these program types or how they affect the workflow generation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool 'Create business logic testing workflow for bug bounty hunting' which provides a clear verb ('Create') and resource ('business logic testing workflow') with context ('for bug bounty hunting'). However, it doesn't distinguish itself from sibling tools like 'bugbounty_comprehensive_assessment' or 'bugbounty_reconnaissance_workflow' - all seem related to bug bounty workflows but with different focuses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools focused on different aspects of bug bounty hunting (reconnaissance, vulnerability scanning, OSINT, etc.), there's no indication whether this should be used before, after, or instead of those other tools. The minimal guidance is implied through the tool name but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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/SlanyCukr/bugbounty-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server