MCP server that exposes AttackMate to LLMs. Allows an LLM to execute commands and playbooks against a running AttackMate instance via its REST API.
- Python ≥ 3.13
uv- A running AttackMate instance with its API reachable
uv sync
cp env-example .env
# edit .env with your AttackMate API credentials| Variable | Required | Default | Description |
|---|---|---|---|
API_BASE_URL |
https://localhost:8445 |
AttackMate API base URL | |
API_USERNAME |
yes | - | API username |
API_PASSWORD |
yes | - | API password |
SSL_VERIFY |
false |
true, false, or path to CA bundle |
|
ATTACKMATE_DOCS_PATH |
- | Path to attackmate/docs/source to enable documentation resources |
|
MCP_TRANSPORT |
stdio |
stdio or sse |
|
MCP_HOST |
0.0.0.0 |
Bind host (SSE only) | |
MCP_PORT |
8000 |
Bind port (SSE only) |
uv run attackmate-mcpFor SSE, set MCP_TRANSPORT=sse (and optionally MCP_HOST/MCP_PORT) in .env before running.
| Tool | Description |
|---|---|
execute_command |
Execute a single typed command on the persistent AttackMate instance |
run_playbook |
Run a YAML playbook on a transient instance |
get_variable_store |
Read the variable store of the persistent instance |
list_command_types |
Return the full JSON schema for all command types |
Documentation resources (attackmate://docs/commands/{type}, attackmate://docs/playbook/{topic}, attackmate://schema/{type}) are available when ATTACKMATE_DOCS_PATH is set.