Claude MCP server to perform analysis on ROADrecon data
This MCP (Model Context Protocol) server provides AI assistants like Claude with access to your ROADRecon Azure AD data for security analysis.
The amazing ROADtools suite by dirkjanm can be found here: ROADRecon
pip install -r requirements.txt
Make sure your ROADRecon GUI is running (default: http://localhost:5000)
Run the MCP server:
python roadrecon_mcp_server.py
To specify a different ROADRecon URL:
ROADRECON_URL=http://localhost:8080 python roadrecon_mcp_server.py
More details on this step can be found here: https://modelcontextprotocol.io/quickstart/server
Once connected, Claude can:
roadrecon://users
)find_privileged_users
)https://github.com/user-attachments/assets/806e9ccd-d80e-4058-be4f-9d37095f1fd6
roadrecon://stats
- Summary statisticsroadrecon://users
- All usersroadrecon://users/{id}
- User detailsroadrecon://groups
- All groupsroadrecon://groups/{id}
- Group detailsroadrecon://applications
- All applicationsroadrecon://applications/{id}
- Application detailsroadrecon://serviceprincipals
- All service principalsroadrecon://serviceprincipals/{id}
- Service principal detailsroadrecon://devices
- All devicesroadrecon://mfa
- MFA status for all usersroadrecon://directoryroles
- All directory rolesroadrecon://roledefinitions
- All role definitionsroadrecon://approles
- All app role assignmentsroadrecon://oauth2permissions
- All OAuth2 permission grantsroadrecon://tenantdetails
- Tenant detailsfind_privileged_users()
- Find users with high-privilege rolesanalyze_mfa_status()
- Analyze MFA deployment across usersfind_applications_with_secrets()
- Find applications with secrets/certificatesanalyze_groups()
- Analyze group types and membershipidentify_stale_accounts()
- Find accounts that haven't logged in or changed password within a specified periodanalyze_pim_implementation()
- Assess Privileged Identity Management implementationanalyze_service_principal_credentials()
- Find over-permissioned service principals with long-lived credentialsanalyze_legacy_authentication()
- Identify risks from legacy authentication protocols that bypass MFAanalyze_conditional_access_policies(file_path: str = "")
- Analyze conditional access policies from an HTML file. Looks for the file at "C:\Temp\caps.html" by default, or prompts the user to specify a file path if not found.analyze_security_posture
- Comprehensive security analysisanalyze_privileged_access
- Analysis of privileged access modelinvestigate_application_risks
- Application security risk assessmentanalyze_identity_security
- Identity security configuration analysisanalyze_stale_accounts
- Analysis of inactive user accountsanalyze_privileged_access_management
- PIM implementation assessmentanalyze_service_principal_security
- Service principal credential risk analysisanalyze_legacy_authentication_risks
- Legacy authentication protocol risk assessmentanalyze_conditional_access
- Analysis of conditional access policies and recommendationscomprehensive_security_review
- Complete security review of the entire environmentMIT