Enables querying and analysis of BloodHound Community Edition data through its REST API and Cypher queries, providing tools for Active Directory attack path analysis, user/group/computer assessment, privilege escalation identification, and security principal relationship mapping.
BloodHound Model Context Protocol Server
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
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
Clone the repository
git clone <repository-url> cd bloodhound-mcpInstall dependencies
uv syncConfigure environment variables
Create a
.envfile 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
Open Claude Desktop and navigate to Settings → Developer Tools
Add the following configuration to your
claude_desktop_config.json:
Replace
/path/to/your/bloodhound-mcpwith the actual path to your installationRestart Claude Desktop
BloodHound API Token Setup
Log into your BloodHound CE instance
Navigate to Administration → API Tokens
Create a new token with appropriate permissions
Note the Token ID and Token Key for your
.envfile
Usage
Getting Started
Start a new conversation in Claude Desktop
Look for the hammer icon (🔨) indicating MCP tools are available
Begin by asking about your domains:
Example Queries
Domain Reconnaissance:
User Analysis:
Privilege Escalation:
Advanced Analysis:
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:
Contributing
Contributions are welcome! This project is designed for learning and experimentation with MCPs and BloodHound APIs.
Development Setup
Fork the repository
Create a feature branch
Make your changes
Add tests for new functionality
Run the test suite
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.