Huntress SAT MCP Server
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Huntress SAT MCP Server
A Model Context Protocol (MCP) server for the Huntress SAT (formerly Curricula) Security Awareness Training API.
Features
Full API Coverage: Tools for managing organizations, learners, phishing campaigns, training courses, assignments, and reports
OAuth2 Authentication: Secure client credentials flow for API access
RBAC Support: Role-based access control (disabled by default, easily enabled)
Multiple Transports: Supports both stdio and streamable-http transports
Docker Ready: Production-ready Docker container with multi-transport support
Installation
From Source
# Clone the repository
git clone https://github.com/example/huntress-sat-mcp.git
cd huntress-sat-mcp
# Install with pip
pip install -e .
# Or with uv (recommended)
uv pip install -e .Using Docker
# Build the image
docker build -t huntress-sat-mcp .
# Or use docker-compose
docker-compose buildConfiguration
The server is configured via environment variables. All variables are prefixed with HUNTRESS_SAT_.
Required Variables
Variable | Description |
| OAuth2 Client ID from Huntress SAT |
| OAuth2 Client Secret from Huntress SAT |
Optional Variables
Variable | Default | Description |
|
| API base URL |
|
| OAuth2 token endpoint |
|
| Transport mode: |
|
| Host for HTTP transport |
|
| Port for HTTP transport |
|
| Enable role-based access control |
|
| Default RBAC role |
|
| Request timeout in seconds |
|
| Max retry attempts |
Environment File
Create a .env file in the project root:
HUNTRESS_SAT_CLIENT_ID=your_client_id
HUNTRESS_SAT_CLIENT_SECRET=your_client_secret
HUNTRESS_SAT_RBAC_ENABLED=falseUsage
Running with stdio Transport
# Direct execution
huntress-sat-mcp
# Or with Python
python -m huntress_sat_mcp.server
# With environment variables
HUNTRESS_SAT_CLIENT_ID=xxx HUNTRESS_SAT_CLIENT_SECRET=yyy huntress-sat-mcpRunning with Streamable HTTP Transport
# Set transport mode
export HUNTRESS_SAT_TRANSPORT=streamable-http
export HUNTRESS_SAT_HOST=0.0.0.0
export HUNTRESS_SAT_PORT=8000
huntress-sat-mcpUsing Docker
# HTTP Transport (default in docker-compose)
docker-compose up huntress-sat-mcp-http
# Stdio Transport
docker-compose --profile stdio up huntress-sat-mcp-stdio
# Development mode with RBAC enabled
docker-compose --profile dev up huntress-sat-mcp-devMCP Client Configuration
Add to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"huntress-sat": {
"command": "huntress-sat-mcp",
"env": {
"HUNTRESS_SAT_CLIENT_ID": "your_client_id",
"HUNTRESS_SAT_CLIENT_SECRET": "your_client_secret"
}
}
}
}For HTTP transport:
{
"mcpServers": {
"huntress-sat": {
"url": "http://localhost:8000/mcp"
}
}
}For Docker Compose (stdio transport):
{
"mcpServers": {
"huntress-sat": {
"command": "docker",
"args": [
"compose",
"-f", "/path/to/docker-compose.yml",
"run", "--rm", "-i",
"huntress-sat-mcp-stdio"
]
}
}
}Note: Replace
/path/to/docker-compose.ymlwith the absolute path to your docker-compose.yml file. The-iflag is required for interactive stdin communication with the MCP server. Credentials are loaded from the.envfile in the project directory.
Available Tools
Organization Management
Tool | Description |
| List all organizations with pagination and search |
| Get details of a specific organization |
Learner Management
Tool | Description |
| List learners with filters (org, department, tag, status) |
| Get learner details |
| Create a new learner |
| Update learner information |
| Delete a learner |
Phishing Campaigns
Tool | Description |
| List campaigns with filters and sorting |
| Get campaign details and metrics |
| Get individual learner results for a campaign |
| List available phishing templates |
Training
Tool | Description |
| List available training courses |
| Get course details |
| List training assignments |
| Get assignment details |
| Create a new training assignment |
Reports
Tool | Description |
| Get training progress for learners |
| Get summary statistics and metrics |
Organization Structure
Tool | Description |
| List departments with learner counts |
| List tags with learner counts |
RBAC
Tool | Description |
| Get current RBAC configuration and permissions |
Role-Based Access Control (RBAC)
RBAC is disabled by default. When enabled, access to tools is restricted based on user roles.
Available Roles
Role | Description |
| Full access to all tools |
| Can read and write, but cannot delete learners |
| Can read all data and generate reports |
| Read-only access to all data |
Permissions
org:read,org:write- Organization managementlearner:read,learner:write,learner:delete- Learner managementphishing:read,phishing:write- Phishing campaign accesstraining:read,training:write- Training course accessassignment:read,assignment:write- Assignment managementreport:read,report:generate- Report access
Enabling RBAC
export HUNTRESS_SAT_RBAC_ENABLED=true
export HUNTRESS_SAT_RBAC_DEFAULT_ROLE=viewerDevelopment
Setup
# Install development dependencies
pip install -e ".[dev]"
# Run linting
ruff check src/
# Run type checking
mypy src/
# Run tests
pytestProject Structure
huntress-sat-mcp/
├── src/
│ └── huntress_sat_mcp/
│ ├── __init__.py # Package initialization
│ ├── config.py # Configuration management
│ ├── models.py # Pydantic models
│ ├── client.py # API client with OAuth2
│ ├── rbac.py # Role-based access control
│ └── server.py # MCP server with tools
├── Dockerfile # Multi-stage Docker build
├── docker-compose.yml # Docker Compose configurations
├── pyproject.toml # Project configuration
└── README.mdAPI Reference
This MCP server wraps the Huntress SAT (Curricula) API. For detailed API documentation, visit:
License
MIT License
Related MCP Connectors
Scopable MSP API: clients, quotes, assessments, compliance, QBRs. OAuth 2.1, read-only or read-write
Read and author Inbox Academy courses, lessons, and quizzes for your organizations.
Read Axis LMS users, courses, learning paths, certifications and reports; manage enrollments.
Read and author HiveLearn courses, events, quizzes, certificates, resources, leaderboards, tracks.