Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
UV_CACHE_DIRNoUV cache directory path
BLOODHOUND_PORTNoPort for the BloodHound instance (default: 443)443
BLOODHOUND_DOMAINYesYour BloodHound Enterprise instance domain
BLOODHOUND_SCHEMENoScheme for the BloodHound instance (default: https)https
BLOODHOUND_ENV_FILENoPath to a custom .env file for multi-tenant setups
BLOODHOUND_TOKEN_IDYesYour BloodHound API token ID
BLOODHOUND_TOKEN_KEYYesYour BloodHound API token key

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
domain_infoA

Query domain level data from BloodHound info_type options: list - list all domains (no domain_id needed) info - domain entity info (needs domain_id) search - search objects by name/ID (needs query param, domain_id not needed) users - users in the domain groups - groups in the domain computers - computers in the domain controllers - security prinicpals with control relationships gpos - Group Policy Objects ous - Organizational unites dc_syncers - Principals with DCSync rights foreign_admins - admins from other domains foreign_gpo_controllers - GPO controllers from other domains foreign_groups - groups with cross domain members foreign_users - users referenced across domains inbound_trusts - domains that trust this domain outbound_trusts - domains this domain trusts linked_gpos - linked GPOs in this domain adcs_escalations - ADCS escalation findings in this domain Args: info_type: what to retrieve (default: list) domain_id: Domain object ID (required for most info_types) query: Search text (for info_type=search only) object_type: Filter by type - User, computer, Group, GPO, OU, Domain, AZUer, etc. (search only) limit: Max Results (default 100, useful in large environments) skip: Pagination offset (default 0)

entity_infoA

Query generic BHE entity endpoints not covered by a specific composite tool.

info_type options:
    base_info - AD base entity info (needs: object_id)
    base_controllables - controllable objects for a base entity (needs: object_id)
    base_controllers - controllers of a base entity (needs: object_id)
    container_info - container entity info (needs: object_id)
    container_controllers - controllers of a container entity (needs: object_id)
    azure_entity - generic Azure entity lookup by entity type (needs: entity_type)

args:
    info_type: what to retrieve
    object_id: AD object ID for base/container endpoints
    entity_type: Azure entity type path segment
    limit: max results for list endpoints
    skip: pagination offset for list endpoints
user_infoA

Query user data from BloodHound info_type options: info - General user properties and attributes admin_rights - machine/objects this user has admin rights on constrained_delegation - services this use can delegate to via kerberos controllables - objects this use can control (WriteOwner, GenericAll, etc.) controllers - principals that have control over this user dcom_rights - machines this user can execute DCOM on memberships - groups this user belongs to ps_remote_rights - machines this user can PSRemote to rdp_rights - machines this user can RDP to sessions - machines this user has active sessions sql_admin_rights - SQL servers this user is admin on

Args:
    user_id: BloodHound object ID of the user (required)
    info_type: what to retrieve (default: info)
    limit: Max Results (default 100, useful in large environments)
    skip: Pagination offset (default 0)
group_infoA

Query group data from BloodHound. info_type options: info - general group properties and attributes admin_rights - machine/objects this group has admin rights on controllables - objects this group can control controllers - principals that have control over this group dcom_rights - machines this group can execute DCOM on members - users and groups that are members of this group memberships - groups this group belongs to (nested membership) ps_remote_rights - machines this group can PSRemote to rdp_rights - machines this group can RDP to sessions - machines this group has active sessions on args: group_id: BloodHound object ID of the group (required) info_type: what to retrieve (default: info) limit: Max Results (default 100, useful in large environments) skip: Pagination offset (default 0)

computer_infoA

Query computer data from BloodHound. info_type options: info - general computer properties and attributes admin_rights - objects this computer has admin rights on admin_users - users/groups that have admin rights on this computer constrained_delegation - services this computer can delegate to via kerberos constrained_users - users with contained delegation TO this computer controllables - objects this computer can control controllers - principals that have control over this computer dcom_rights - machines this computer can execute DCOM on dcom_users - users/groups with DCOM rights ON this computer group_membership - groups this computer belongs to ps_remote_rights - machines this computer can PSRemote to ps_remote_users - users/groups with PSRemote rights ON this computer rdp_rights - machines this computer can RDP to rdp_users - users/groups with RDP rights ON this computer sessions - users with active sessions on this computer sql_admins - SQL servers this computer is admin on

args:
    computer_id: BloodHound object ID of the computer (required)
    info_type: what to retrieve (default: info)
    limit: Max Results (default 100, useful in large environments)
    skip: Pagination offset (default 0)
ou_infoA

Query OU data from BloodHound. info_type options: info - general OU Properties and attributes computers - computers in this OU groups - groups in this OU gpos - GPOs linked to this OU users - users in this OU args: ou_id: BloodHound object ID of the OU (required) info_type: what to retrieve (default: info) limit: Max Results (default 100, useful in large environments) skip: Pagination offset (default 0)

gpo_infoA

Query GPO data from BloodHound. info_type options: info - general GPO properties and attributes computers - computers this GPO is applied to controllers - principals that can modify this GPO ous - OUs this GPO is linked to tier_zeros - tier-zero principals associated with this GPO users - users this GPO is applied to args: gpo_id: BloodHound object ID of the GPO (required) info_type: what to retrieve (default: info) limit: Max Results (default 100, useful in large environments) skip: Pagination offset (default 0)

graph_analysisA

Perform graph analysis operations in BloodHound

info_type options:
    kinds - list graph node and edge kinds
    search - search for nodes by name (needs: query; optional: search_type)
    shortest_path - find shortest attack path between two nodes (needs: start_node, end_node; optional relationship_kinds)
    edge_composition - decompose a complex edge into underlying relationships (needs: source_node, target_node, edge_type)
    relay_targets - find valid NTLM relay targets for a given node (needs: source_node, target_node, edge_type)
    pathfinding - get pathfinding result (optional: start_node, end_node, relationship_kinds)
    acl_inheritance - get ACL inheritance path (needs: source_node, target_node)

args:
    info_type: what type of graph operation to perform (required)
    query: search text (for search)
    search_type: type of search - fuzzy (default) or exact (for search)
    start_node: Object ID of source node (for shortest_path)
    end_node: Object ID of target node (for shortest_path)
    source_node: Object ID of source node (for edge_composition and relay_targets)
    target_node: Object ID of target node (for edge_composition and relay_targets)
    edge_type: Realtionship type like "MemberOf", "AdminTo", (for edge_composition and relay_targets)
    relationship_kinds: Comma-separated relationship filter (for shortest_path, optional)
adcs_infoA

QUery AD Certificate Services data from BloodHound object_id is the template_id or the ca_id depending on the info_type info_type options: cert_template_info - certificate template properties (object_id = template ID) cert_template_controllers - who can modify this template - key for ESC1/ESC2 (object_id = template ID) cert_template_published_to_cas - Enterprise CAs publishing this template root_ca_info - root ca properties (object_id = CA ID) root_ca_controllers - who controls the root ca - key for ESC4/ESC5 (object_id = CA ID) root_ca_pki_hierarchy - PKI hierarchy for a root CA enterprise_ca_info - enterprise CA properties (object_id = CA ID) enterprise_ca_controllers - who controls the enterprise CA - key for ESC3/ESC6 (object_id = CA ID) enterprise_ca_pki_hierarchy - PKI hierarchy for an enterprise CA enterprise_ca_published_templates - templates published to this enterprise CA aia_ca_info - AIA CA properties aia_ca_controllers - who controls the AIA CA (object_id = CA ID) aia_ca_pki_hierarchy - PKI hierarchy for an AIA CA nt_auth_store_info - NT Auth Store properties nt_auth_store_controllers - controllers of an NT Auth Store nt_auth_store_trusted_cas - trusted Enterprise CAs for an NT Auth Store

args:
    object_id: Template ID or CA ID depending on info_type (required)
    info_type: what to retrieve (required)
    limit: Max Results (default 100, useful in large environments)
    skip: Pagination offset (default 0)
cypher_queryA

Execute and manage Cypher queries in BloodHound.

info_type options:
    run - execute a cypher query (needs: query; optional: include_properties)
    interpret - interpret a natural language query into cypher (needs: query, result_json)
    list_saved - list saved queries (optional: name, skip, limit)
    create_saved - save a new query (needs: name, query)
    get_saved - get details of a saved query (needs: query_id)
    update_saved - update an existing saved query (needs: query_id; optional: name, query, description)
    delete_saved - delete a saved query (needs: query_id)
    share_saved - share a saved query with other users (needs: query_id; optional: user_ids, public)
    saved_permissions - get saved query permissions (needs: query_id)
    export_saved - export a saved query (needs: query_id)
    import_saved - import saved queries (needs: payload_json)
    export_saved_many - export saved queries (optional: query_ids)
    validate - validate a cypher query for syntax and semantics (needs: query)

args:
    info_type: Operation to perform
    query: Cypher query string (for run, create_saved, update_saved, validate)
    include_properties: Include node/edge properties in results (for run, default: True)
    name: Query name (for create_saved, update_saved, list_saved filter)
    query_id: Saved query ID (for get_saved, update_saved, delete_saved, share_saved)
    result_json: JSON result string from a previous run (for interpret)
    description: Query description (for update_saved)
    user_ids: Comma-separated user IDs to share with (for share_saved)
    query_ids: Comma-separated saved query IDs to export
    payload_json: JSON string/object for saved query import
    public: Make query public (for share_saved, default: False)
    limit: Max results (default 100)
    skip: Pagination offset (default 0)
attack_pathsA

Query BloodHound Enterprise attack path data.

info_type options:
    domain_findings - export attack path findings for a domain (needs: domain_id)
    finding_trends - list attack path finding trends
    types - list all attack path types
    start_analysis - start attack path analysis
    details - get all attack path findings with details
    domain_available_types - list attack path types available in a domain (needs: domain_id)
    domain_details - list attack path details for a domain (needs: domain_id)
    domain_sparkline - list attack path sparkline values for a domain (needs: domain_id)
    acceptance - update attack path risk acceptance (needs: attack_path_id, acceptance_json)

args:
    info_type: what to retrieve or update (default: details)
    domain_id: Domain object ID for domain-scoped attack path endpoints
    attack_path_id: Attack path finding ID for risk acceptance
    acceptance_json: JSON string or object accepted by the BHE risk acceptance API
    finding_name: Case-insensitive filter for finding/type/name fields
    source_name: Case-insensitive filter for source fields
    target_name: Case-insensitive filter for target fields
    environment_id: Case-insensitive filter for environment/domain fields
    accepted: Filter findings by accepted/risk acceptance state
risk_postureA

Query BloodHound Enterprise risk posture data.

info_type options:
    stats - get current posture statistics
    history - get posture history for a data type (needs: data_type)

args:
    info_type: what to retrieve (default: stats)
    data_type: posture history data type for history queries
enterprise_infoA

Query read-only BloodHound Enterprise service information.

info_type options:
    version - get API version metadata
    spec - get the OpenAPI specification
    audit - list audit logs
    config - list application configuration parameters
    features - list feature flags

args:
    info_type: what to retrieve (default: version)
    skip: audit pagination offset
    limit: audit pagination limit
    sort_by: optional audit sort field
    status: optional audit status filter
enterprise_adminA

Query read-only BloodHound Enterprise administrative metadata.

info_type options:
    self - get authenticated requester info
    permissions - list permissions
    permission - get a permission (needs: permission_id)
    roles - list roles
    role - get a role (needs: role_id)
    users - list BloodHound users
    users_minimal - list minimal user records
    user - get a user (needs: user_id)
    saml - list SAML providers
    saml_sso - list SAML sign-on endpoints
    saml_provider - get SAML provider (needs: saml_provider_id)
    sso_providers - list SSO providers
    sso_signing_certificate - get SSO signing certificate (needs: sso_provider_id)
data_qualityA

Query data quality and collection statistics from BloodHound info_type options: completeness - overall database completeness stats (no params needed) ad_domain - collection quality over time for an AD domain (needs: domain_id) azure_tenant - collection quality over time for an azure tenant (needs: tenant_id) platform - aggregate quality stats for a platform (needs: platform_id - "ad" or "azure")

args:
info_type: what to retrieve (default: completeness)
domain_id: AD domain ID
platform_id: "ad" or "azure"
start: Start datetime in RFC-3339 format
end: end datetime in RFC-3339 format
sort_by: Sort field - "created_at" or "updated_at" (optional)
skip: Pagination offset (default 0)
limit: max results (default 100)
custom_nodesA

Manage OpenGraph custom node display configs and v9 extension schemas. info_type options: list - list all custom node configs get - get details for a specific node kind (needs: kind_name) create - create new node kind with display metadata (needs: custom_types_json) update - update a node kind's display config (needs: kind_name, config_json) delete - delete a node kind (needs: kind_name) validate_icon - validate icon config before creating/updating (needs: icon_config_json) extension_list - list OpenGraph extensions (BloodHound v9+) extension_upsert - create/update extension schema (needs: extension_json or extension_file_path) extension_delete - delete extension schema by ID (needs: extension_id) extension_edges - list extension edge kinds (optional: schemas, is_traversable)

args:
    info_type: what to retrieve (default: list)
    kind_name: Custom node kind name (for get,update, delete)
    custom_types_json: JSON string or object for creating a new node kind (for create)
    config_json: JSON string or object for updating a node kind's display config (for update)
    icon_config_json: JSON string or object for validating icon config (for validate_icon)
    extension_json: JSON string or object for BloodHound v9 OpenGraph extension upsert
    extension_file_path: local JSON file path for BloodHound v9 OpenGraph extension upsert
    extension_id: OpenGraph extension ID for delete
    schemas: schema name or list of schema names for extension edge filtering
    is_traversable: bool or BloodHound filter string (for example: eq:true)
asset_groupsA

Manage Asset isolation groups and tages in BloodHound

info_type options:
    list - list all asset groups (optional filters: name, tag, sort_by, system_group)
    get - get a specific asset group (requires: asset_group_id)
    create - create a new asset group (requires: name, tag)
    update - update an existing asset group (requires: asset_group_id)
    delete - delete an asset group (requires: asset_group_id)
    collections - list historical membership snapshots (requires: asset_group_id)
    custom_selectors - get custom selector/member count (requires: asset_group_id)
    members - list asset group members (requires: asset_group_id)
    member_counts - get member counts by object type (requires: asset_group_id)
    combo_node - get the combo tree for an asset group (requires: asset_group_id)
    create_selectors - add auto membership selectors (requires: asset_group_id, selectors_json)
    update_selectors - set auto membership selectors (requires: asset_group_id, selectors_json)
    delete_selector - delete an asset group selector (requires: asset_group_id, asset_group_selector_id)
    list_tags - list asset group tags (optional: name, tag, sort_by)
    create_tag - create a new asset group tag (requires: name, tag)
    tag_members - list members of a tag (requires: asset_group_tag_id)
    tag_member_selectors - get selectors for a tag member (requires: asset_group_tag_id, asset_group_member_id)
    tag_member_counts - get tag member counts (requires: asset_group_tag_id)
    tag_selectors - list tag selectors (requires: asset_group_tag_id)
    tag_selector_members - list members for a tag selector (requires: asset_group_tag_id, asset_group_tag_selector_id)
    tag_selector_member_counts - count members for a tag selector (requires: asset_group_tag_id, asset_group_tag_selector_id)
    preview_tag_selectors - preview selectors (requires: request_json)
    search_tags - search asset group tags (requires: request_json)
    tag_history - list tag history records
    search_tag_history - search tag history records (requires: request_json)
    certifications - get certifications for privilege zones
    update_certifications - certify or revoke objects (requires: request_json)

args:
    info_type: operation to perform (default: list)
    asset_group_id: Asset group ID (for get, update, delete, collections, member_counts, update_selectors)
    asset_group_tag_id: Tag ID (for tag_members)
    name: Group/tag name (for create, update, create_tag, or filters)
    tag: Tag value (for create, update, create_tag, or filters)
    sort_by: Sort field (for list, list tags)
    system_group: Filter by system group (for list)
    selectors_json: JSON array of selector specs (for update_selectors)
    request_json: JSON request body for preview/search/certification actions
    skip: Pagination offset (default 0)
    limit: Max results (default 100)
file_uploadA

Upload SharpHound/AzureHound collection files to BloodHound for ingest. Accepts .zip (SharpHound ZIP archive) or .json (individual collection file).

info_type options:
    upload        - full workflow for a single file: start -> upload -> end
                    (requires: file_path)
    start_job     - start a new upload job, returns job_id for multi-file uploads
    upload_to_job - upload a file to an existing job (requires: job_id, file_path)
    end_job       - finalize an upload job and trigger ingest (requires: job_id)
    list_jobs     - list file upload jobs
    completed_tasks - get completed tasks for an upload job (requires: job_id)
    accepted_types - list accepted upload content types

Args:
    info_type: operation to perform (default: upload)
    file_path: absolute path to collection file (.zip or .json)
    job_id: upload job ID (required for upload_to_job and end_job)
    skip: pagination offset for list_jobs
    limit: pagination limit for list_jobs
operations_infoA

Query read-only BloodHound Enterprise operational status and meta data.

info_type options:
    datapipe_status - get datapipe status
    analysis - get analysis request information
    meta_nodes - get latest tier zero combo node for a domain (requires: domain_id)
    meta_tree - get the meta tree graph for a domain (requires: domain_id)
    meta_entity - get meta entity info (requires: object_id)

args:
    info_type: what to retrieve (default: datapipe_status)
    domain_id: domain ID for meta_nodes/meta_tree
    object_id: object ID for meta_entity
collection_infoA

Query BloodHound Enterprise collection infrastructure status.

info_type options:
    collector_manifest - get collector manifest (needs: collector_type)
    collector_checksum - get collector checksum (needs: collector_type, release_tag)
    kennel_manifest - get kennel manifest
    kennel_enterprise_manifest - get kennel enterprise manifest
    clients - list clients
    client - get a client (needs: client_id)
    client_completed_tasks - list completed tasks for a client (needs: client_id)
    client_completed_jobs - list completed jobs for a client (needs: client_id)
    jobs_available - list available jobs
    jobs_finished - list finished jobs
    jobs - list jobs
    job_current - get current job
    job - get a job (needs: job_id)
    job_log - get job log (needs: job_id)
    tasks_available - list available tasks
    tasks_finished - list finished tasks
    tasks - list tasks
    task_current - get current task
    task - get a task (needs: task_id)
    task_log - get task log (needs: task_id)
    events - list scheduled events
    event - get scheduled event (needs: event_id)

Prompts

Interactive templates invoked by user choice

NameDescription
bloodhound_assistant

Resources

Contextual data attached and managed by the client

NameDescription
cypher_referenceCypher query syntax, schema, property names, patterns, and examples for BloodHound
cypher_query_building_referenceQuick query-building patterns based on BloodHound supported Cypher syntax.
cypher_supported_syntaxSupported BloodHound Cypher syntax, caveats, and unsupported constructs.
ad_guideActive Directory analysis quick reference for BloodHound.
azure_guideAzure / Entra ID analysis quick reference for BloodHound.
adcs_guideADCS attack vector quick reference for BloodHound.
ad_methodologyFull Active Directory attack methodology and analysis workflow.
azure_methodologyFull Azure / Entra ID attack methodology and analysis workflow.
adcs_methodologyFull ADCS attack methodology with detailed ESC analysis.
opengraph_guideBloodHound OpenGraph schema design and custom node guide.
opengraph_examplesPractical examples of custom node implementations for OpenGraph.
offensive_query_libraryBattle-tested Cypher query templates for common offensive scenarios. Load this before writing custom Cypher for attack path analysis.

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/err0n-0x2A/bhe_mcp'

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