Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT and other tools is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AI Fire in da houseCheck it out free

bloodhound_mcp

MCP.Pizza Chef: mwnickerson

bloodhound_mcp is an MCP server designed to integrate Bloodhound Community Edition data with conversational AI clients like Claude Desktop. It allows users to query and interact with Bloodhound domain data through natural language conversations, facilitating easier exploration and analysis of complex network information. This server requires a running Bloodhound CE instance and is ideal for security analysts and researchers wanting to leverage LLMs for domain data insights.

Use This MCP server To

Query Bloodhound domain data via natural language Integrate Bloodhound data with Claude Desktop conversations Explore network relationships using conversational AI Load and interact with Bloodhound dump files Enable real-time domain data lookup in AI workflows

README

BloodHound Model Context Protocol Server

License: GPL v3

A Model Context Protocol (MCP) server that enables Large Language Models to interact with BloodHound Community Edition data through Claude Desktop. This tool allows security professionals to query and analyze Active Directory attack paths using natural language.

Architecture

This MCP server provides a comprehensive interface to BloodHound Community Edition's REST API, not just a wrapper around Cypher queries. The implementation includes:

API Coverage

  • Complete REST API Integration: Utilizes BloodHound CE's full REST API endpoints (/api/v2/domains, /api/v2/users, /api/v2/groups, etc.)
  • Structured Data Access: Leverages purpose-built API endpoints for users, computers, groups, OUs, and GPOs
  • Advanced Functionality: Includes ADCS analysis, graph search, shortest path algorithms, and edge composition analysis
  • Authentication: Implements BloodHound's signature-based authentication system

Why Not Just Cypher Queries?

While Cypher queries are powerful, this MCP goes beyond simple query execution:

  • Structured API Responses: Returns properly formatted, paginated data with counts and metadata
  • Built-in Relationships: Utilizes BloodHound's pre-computed relationship mappings
  • Error Handling: Proper HTTP status code handling and meaningful error messages
  • Performance: Leverages BloodHound's optimized endpoints rather than raw graph traversal
  • Completeness: Access to administrative rights, sessions, group memberships, and other complex relationships through dedicated endpoints

MCP Benefits

As a proper Model Context Protocol implementation:

  • Tool Discoverability: LLM automatically discovers available analysis capabilities
  • Type Safety: Strongly typed parameters and responses
  • Contextual Help: Built-in documentation and examples for the LLM
  • Resource Access: Provides Cypher query examples and patterns as MCP resources

Demo

Watch the demonstration video

Features

Core Capabilities

  • Domain Analysis: Query domain information, users, groups, computers, and organizational structure
  • User Intelligence: Analyze user privileges, group memberships, sessions, and administrative rights
  • Group Analysis: Examine group memberships, controllers, and privilege relationships
  • Computer Assessment: Investigate computer privileges, sessions, and administrative access
  • Organizational Units: Explore OU structure and contained objects
  • Group Policy Objects: Analyze GPO assignments and controllers
  • Certificate Services: Investigate ADCS infrastructure and certificate templates
  • Custom Cypher Queries: Execute advanced Neo4j queries for complex analysis
  • Graph Search: Find shortest paths between security principals

Advanced Features

  • Natural language querying of BloodHound data
  • Attack path visualization and analysis
  • Privilege escalation identification
  • Cross-domain relationship analysis
  • Kerberoasting target identification
  • Administrative relationship mapping

Prerequisites

  • Python 3.11+
  • uv (Python package manager)
  • Claude Desktop
  • BloodHound Community Edition instance (accessible via network)
  • BloodHound data loaded (from SharpHound, BloodHound.py, etc.)
  • BloodHound API credentials (Token ID and Token Key)

Installation

  1. Clone the repository

    git clone <repository-url>
    cd bloodhound-mcp
  2. Install dependencies

    uv sync
  3. Configure environment variables

    Create a .env file in the project root:

    BLOODHOUND_DOMAIN=your-bloodhound-instance.domain.com
    BLOODHOUND_TOKEN_ID=your-token-id
    BLOODHOUND_TOKEN_KEY=your-token-key

Configuration

Claude Desktop Setup

  1. Open Claude Desktop and navigate to SettingsDeveloper Tools
  2. Add the following configuration to your claude_desktop_config.json:
{
  "mcpServers": {
    "bloodhound_mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/your/bloodhound-mcp",
        "run",
        "main.py"
      ]
    }
  }
}
  1. Replace /path/to/your/bloodhound-mcp with the actual path to your installation
  2. Restart Claude Desktop

BloodHound API Token Setup

  1. Log into your BloodHound CE instance
  2. Navigate to AdministrationAPI Tokens
  3. Create a new token with appropriate permissions
  4. Note the Token ID and Token Key for your .env file

Usage

Getting Started

  1. Start a new conversation in Claude Desktop
  2. Look for the hammer icon (🔨) indicating MCP tools are available
  3. Begin by asking about your domains:
What domains are available in BloodHound?

Example Queries

Domain Reconnaissance:

Show me all users in the DOMAIN.LOCAL domain
What computers are in the domain?
Find all Domain Admins

User Analysis:

What administrative rights does john.doe@domain.local have?
Show me all sessions for the user administrator
What groups is this user a member of?

Privilege Escalation:

Find all kerberoastable users
Show me users with DCSync privileges
What computers can I RDP to from this user?

Advanced Analysis:

Run a cypher query to find all paths to Domain Admin
Show me the shortest path from user A to user B
Find all users with SPN set

Security Considerations

Data Sensitivity Warning

This tool processes BloodHound data through Claude Desktop, which means Active Directory information is transmitted to Anthropic's servers. Do not use this tool with production or sensitive BloodHound data.

Recommended Use Cases

  • Training environments (GOAD, DetectionLab, etc.)
  • Demonstration purposes
  • Learning and research
  • Non-production domain analysis

Best Practices

  • Use isolated lab environments
  • Sanitize data before analysis
  • Consider local LLM alternatives for sensitive environments
  • Regular token rotation for BloodHound API access

Testing

Run the test suite to verify functionality:

# Basic functionality tests
uv run pytest tests/test_basics.py -v

# HTTP request testing
uv run pytest tests/test_bloodhound_http.py -v

# MCP tools testing
uv run pytest tests/test_mcp_tools.py -v

# Integration tests (requires running BloodHound instance)
BLOODHOUND_INTEGRATION_TESTS=1 uv run pytest tests/test_integration.py -v

Contributing

Contributions are welcome! This project is designed for learning and experimentation with MCPs and BloodHound APIs.

Development Setup

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Run the test suite
  6. Submit a pull request

Roadmap

  • Enhanced attack path analysis
  • Azure Active Directory support
  • Advanced graph visualizations
  • Asset management integration
  • Local LLM compatibility
  • Additional ADCS attack scenarios

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

Acknowledgments

  • Orange Cyberdefense for GOAD (used for testing)
  • SpecterOps for BloodHound Community Edition
  • @jlowin for FastMCP
  • @xpn for MCP inspiration through the Mythic MCP project

bloodhound_mcp FAQ

How do I set up bloodhound_mcp with Claude Desktop?
Install Python3 and uv, run a Bloodhound CE instance with loaded dump files, then configure Claude Desktop with the bloodhound_mcp path in claude.json and restart.
What are the prerequisites for running bloodhound_mcp?
You need Python3, uv, a running Bloodhound Community Edition instance, and Claude Desktop configured to connect to the MCP server.
Can bloodhound_mcp work with other LLM clients besides Claude Desktop?
Currently, it is designed for Claude Desktop but can potentially be adapted for other clients supporting MCP.
Is bloodhound_mcp production-ready?
No, it is an early-stage project with basic implementation, intended for learning and experimentation.
How does bloodhound_mcp handle Bloodhound data?
It loads Bloodhound dump files into the MCP server, enabling conversational queries over the domain data.
Where can I find usage examples for bloodhound_mcp?
A demonstration video is available at https://youtu.be/eZBT0Iw9CMA showing its usage with Claude Desktop.
Can I extend bloodhound_mcp functionality?
Yes, the project is open for further development to enhance features and integration capabilities.