caldera-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CALDERA_URL | No | Caldera server base URL | http://localhost:8888 |
| CALDERA_API_KEY | Yes | Caldera red team API key |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| caldera_health_checkA | Verify that the Caldera server is reachable and return version information. Returns: JSON string with server health status and version details. |
| caldera_list_agentsA | List all agents connected to Caldera. Args: platform: Optional platform filter — 'windows', 'linux', or 'darwin'. Leave empty to return all platforms. alive_only: If True, only return agents that have checked in recently (within 3x their sleep_max interval). Default False. Returns: JSON string with a list of agents and their status. |
| caldera_get_agentA | Get full details for a specific agent by its PAW identifier. Args: paw: The agent's PAW (unique identifier assigned by Caldera). Returns: JSON string with full agent details including alive status. |
| caldera_list_abilitiesA | List available abilities in Caldera, with optional filters. Useful for finding what abilities already exist before creating new ones, or for mapping ATT&CK technique IDs to Caldera ability IDs when building an adversary from a STIX bundle. Args: technique_id: Filter by ATT&CK technique ID (e.g. 'T1059.001'). Leave empty to return all techniques. tactic: Filter by ATT&CK tactic (e.g. 'execution', 'discovery'). Leave empty to return all tactics. platform: Filter by executor platform — 'windows', 'linux', or 'darwin'. Leave empty to return all platforms. Returns: JSON string with a compact list of matching abilities (id, name, tactic, technique_id, platforms). |
| caldera_get_abilityA | Get full details for a single ability including all executors and commands. Args: ability_id: The Caldera ability UUID. Returns: JSON string with the full ability object. |
| caldera_create_abilityB | Create a new ability in Caldera. Args: name: Human-readable ability name (e.g. 'Dump LSASS memory'). tactic: ATT&CK tactic (e.g. 'credential-access', 'discovery'). technique_id: ATT&CK technique ID (e.g. 'T1003.001'). technique_name: ATT&CK technique name (e.g. 'OS Credential Dumping: LSASS Memory'). platform: Target platform — 'windows', 'linux', or 'darwin'. executor: Executor name — 'psh' (PowerShell), 'cmd', 'sh', or 'python'. command: The command to execute. Use #{variable} for Caldera facts. description: Optional description of what the ability does. timeout: Execution timeout in seconds (default 60). Returns: JSON string with the created ability including its generated ability_id. |
| caldera_delete_abilityA | Delete an ability from Caldera by its ID. Args: ability_id: The Caldera ability UUID to delete. Returns: Confirmation string. |
| caldera_list_adversariesA | List all adversary profiles in Caldera. Returns: JSON string with a compact list of adversaries (id, name, description, ability count). |
| caldera_get_adversaryA | Get full details for a single adversary profile including ability ordering. Args: adversary_id: The Caldera adversary UUID. Returns: JSON string with the full adversary object. |
| caldera_create_adversaryA | Create a new adversary profile from an ordered list of ability IDs. Args: name: Human-readable adversary name (e.g. 'APT29 Credential Access'). ability_ids: Ordered list of Caldera ability UUIDs. description: Optional description of the adversary's TTPs or scenario context. Returns: JSON string with the created adversary including its generated adversary_id. |
| caldera_update_adversaryA | Update an existing adversary profile. Args: adversary_id: The Caldera adversary UUID to update. name: New name (leave empty to keep existing). ability_ids: New ordered ability list (leave empty to keep existing). description: New description (leave empty to keep existing). Returns: JSON string with the updated adversary. |
| caldera_delete_adversaryA | Delete an adversary profile from Caldera. Args: adversary_id: The Caldera adversary UUID to delete. Returns: Confirmation string. |
| caldera_list_operationsA | List all operations in Caldera with their current state and progress. Returns: JSON string with a compact list of operations (id, name, state, adversary, progress). |
| caldera_get_operationA | Get full details for an operation including its execution chain. Args: operation_id: The Caldera operation ID. Returns: JSON string with the full operation object including chain results. |
| caldera_create_operationA | Create a new operation in Caldera. Operations are created in 'paused' state by default — always perform scope review and get explicit user confirmation before resuming execution. Args: name: Human-readable operation name. adversary_id: UUID of the adversary profile to run. group: Agent group to target (leave empty for all connected agents). state: Initial state — 'paused' (default) or 'running'. Returns: JSON string with the created operation including its operation ID. |
| caldera_set_operation_stateA | Change the state of an existing operation. Valid transitions: paused → running (resume execution) running → paused (pause execution) running → stop (terminate cleanly) Args: operation_id: The Caldera operation ID. state: Target state — 'running', 'paused', or 'stop'. Returns: JSON string with the updated operation state. |
| caldera_get_operation_resultsA | Get a structured summary of operation execution results. Args: operation_id: The Caldera operation ID. Returns: JSON string with execution summary and per-ability results. |
| caldera_delete_operationA | Delete an operation from Caldera. Args: operation_id: The Caldera operation ID to delete. Returns: Confirmation string. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/cowboy-samurai/caldera-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server