Tracecat mcp tools expert
Skill adrojis/tracecat-skills/skills/tracecat-mcp-tools-expert
Activate when users interact with Tracecat MCP tools, create workflows, manage cases, or need help with Tracecat API operationsFrom its SKILL.md
npx -y skills add adrojis/tracecat-skills --skill tracecat-mcp-tools-expertAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- fetches URLsInstructs the agent to fetch 2 URLs, including PATCH /api/workflows/{workflow_id}/graph?workspace_id={workspace_id} and 1 more.
SKILL.md
11.6 KB, ~3.0k tokens by cl100k_base, as published. Nobody here has run it
Tracecat MCP Tools Expert
You are an expert at using Tracecat MCP tools to manage workflows, cases, executions, and secrets in a Tracecat SOAR platform.
Critical Rule: Always Use Native Action Types
When creating actions with tracecat_create_action, ALWAYS use native/official action types before falling back to generic ones:
- Cases →
core.cases.create_case,core.cases.update_case,core.cases.create_comment(NEVER reshape) - Integrations →
tools.virustotal.*,tools.crowdstrike.*,tools.splunk.*,tools.okta.*,tools.microsoft_defender.*,tools.sharepoint.*(NEVER core.http_request when native exists) core.http_request→ ONLY when no native integration existscore.transform.reshape→ ONLY for data transformation, never for CRUDcore.script.run_python→ ONLY when logic can't be expressed otherwise
Available Tools (51 total)
System (1)
tracecat_health_check— Always start here to verify Tracecat is running
Workflows (8)
tracecat_list_workflows— List all workflowstracecat_create_workflow— Create a new workflow (title + description)tracecat_get_workflow— Get workflow details by IDtracecat_update_workflow— Update title, description, or statustracecat_deploy_workflow— Commit/deploy a workflow to make it activetracecat_export_workflow— Export workflow YAML definitiontracecat_delete_workflow— Delete a workflow permanentlytracecat_validate_workflow— Validate workflow without deploying (checks actions, inputs, expressions, graph connectivity)
Actions (5)
tracecat_list_actions— List all actions in a workflowtracecat_create_action— Create a new action (type + title, requires workflow_id)tracecat_get_action— Get action details by IDtracecat_update_action— Update title, description, inputs, control_flowtracecat_delete_action— Delete an action
Executions (5)
tracecat_run_workflow— Execute a workflow with optional payloadtracecat_list_executions— List executions (optionally filter by workflow)tracecat_get_execution— Get full execution details with eventstracecat_get_execution_compact— Get compact execution (action-level status, inputs, results, errors)tracecat_cancel_execution— Cancel a running execution
Cases (7)
tracecat_list_cases— List cases (optionally filter by status)tracecat_create_case— Create a case linked to a workflowtracecat_get_case— Get a specific case by IDtracecat_update_case— Update case status, priority, etc.tracecat_delete_case— Delete a case permanentlytracecat_add_comment— Add a comment to a casetracecat_list_comments— List all comments on a case
Secrets (5)
tracecat_search_secrets— Search secrets by nametracecat_create_secret— Create a new secret with key-value pairstracecat_get_secret— Get secret metadata by nametracecat_update_secret— Update secret keys or descriptiontracecat_delete_secret— Delete a secret permanently
Tables (5)
tracecat_list_tables— List all tablestracecat_create_table— Create a new tabletracecat_get_table— Get table details by ID (includes columns)tracecat_update_table— Update table name or descriptiontracecat_delete_table— Delete a table
Table Columns (2)
tracecat_create_column— Create a column (types: TEXT, INTEGER, NUMERIC, DATE, BOOLEAN, TIMESTAMP, TIMESTAMPTZ, JSONB, UUID, SELECT, MULTI_SELECT)tracecat_delete_column— Delete a column
Table Rows (6)
tracecat_list_rows— List rows with optional paginationtracecat_get_row— Get a specific row by IDtracecat_insert_row— Insert a new rowtracecat_update_row— Update an existing rowtracecat_delete_row— Delete a rowtracecat_batch_insert_rows— Insert multiple rows at once
Schedules (5)
tracecat_list_schedules— List schedules (optionally filter by workflow)tracecat_create_schedule— Create a cron or interval schedule for a workflowtracecat_get_schedule— Get schedule detailstracecat_update_schedule— Update cron, interval, status, or inputstracecat_delete_schedule— Delete a schedule
Webhooks (1)
tracecat_create_webhook_key— Generate/rotate a webhook API key
Graph (5)
tracecat_get_graph— Get workflow graph (nodes, edges, positions, version)tracecat_add_edges— Add connections between actions (source_type: 'trigger' or 'udf')tracecat_delete_edges— Remove connections between actionstracecat_move_nodes— Reposition action nodes (recommended: trigger at x=500,y=0, 160px vertical spacing)tracecat_update_trigger_position— Reposition the trigger node
Documentation (1)
tracecat_docs— Get inline documentation (topics: action_types, expressions, functions, control_flow, common_mistakes)
Recommended Operation Order
Creating a new workflow from scratch
tracecat_health_check— Verify connectivitytracecat_list_workflows— Check existing workflowstracecat_create_workflow— Create the workflowtracecat_create_action— Add actions one by onetracecat_update_action— Configure inputs and control flow for each actiontracecat_add_edges— Connect trigger → actions → actions (use source_type 'trigger' for first edge)tracecat_move_nodes— Position all nodes (trigger at 500,0; first action at 500,300; 160px spacing)tracecat_validate_workflow— Check for errors before deployingtracecat_deploy_workflow— Deploy to make it activetracecat_run_workflow— Test executiontracecat_get_execution_compact— Check results
Investigating an incident
tracecat_list_caseswith status filtertracecat_get_case— Get full case detailstracecat_update_case— Set toin_progresstracecat_add_comment— Document findingstracecat_run_workflow— Trigger remediation workflowstracecat_update_case— Set toresolved
Checking execution results
tracecat_list_executions— Find the executiontracecat_get_execution_compact— Quick triage (action status + errors)tracecat_get_execution— Deep investigation (full event history)
Setting up a scheduled workflow
- Create and deploy the workflow first
tracecat_create_schedule— Set cron or intervaltracecat_list_schedules— Verify it's active
Working with tables
tracecat_create_table— Create the tabletracecat_insert_row/tracecat_batch_insert_rows— Add datatracecat_list_rows— Query datatracecat_update_row— Modify entries
Graph API — Node Positioning
Use the Graph tools (tracecat_get_graph, tracecat_add_edges, tracecat_delete_edges, tracecat_move_nodes, tracecat_update_trigger_position) to manage node connections and positions. When creating actions, nodes default to (0, 0) and overlap. You MUST reposition nodes after creating/wiring them.
API Endpoint
PATCH /api/workflows/{workflow_id}/graph?workspace_id={workspace_id}
Requires cookie-based auth (login via POST /auth/login first), NOT service key.
move_nodes Operation (validated format)
{
"base_version": <current_graph_version>,
"operations": [
{
"type": "move_nodes",
"payload": {
"positions": [
{"action_id": "<uuid>", "x": 250, "y": 200},
{"action_id": "<uuid>", "x": 250, "y": 400}
]
}
}
]
}
CRITICAL format rules:
- Field is
action_id(NOTnode_id, NOTid) - Coordinates
xandyare flat at root level (NOT nested inposition: {x, y}) positionsis a list (NOT a dict)base_versionmust match the current graph version (get it with GET on the graph endpoint)
Other Graph Operations
| Operation | Payload fields |
|---|---|
add_edge | source_id, source_type ("trigger" or "udf"), target_id |
delete_edge | source_id, source_type, target_id |
update_node | action_id, plus fields to update |
move_nodes | positions: list of {action_id, x, y} |
update_trigger_position | x, y |
update_viewport | x, y, zoom |
Node Layout Best Practices
Spacing rules (validated in Tracecat UI):
- Vertical spacing between levels: 200px minimum — Nodes are ~100px tall. Less than 200px causes overlap.
- Horizontal spacing between siblings: 350px minimum — Nodes are ~250px wide. Less than 350px causes overlap for case/action nodes with long titles.
- Branch offset: 250-300px from center axis — When a node branches (e.g. if/else), offset children left and right from parent's x.
Layout algorithm for common patterns:
-
Linear chain (A → B → C): Same x, increment y by 200
A (250, 0) → B (250, 200) → C (250, 400) -
Binary branch (A → B | C): Parent centered, children offset ±300
A (250, 600) B (0, 850) C (600, 850) -
Triple fan-out (A → B | C | D): Parent centered, children at -350, 0, +350
A (0, 1000) B (-350, 1250) C (0, 1250) D (350, 1250) -
Full workflow example (trigger → chain → branch → fan-out):
Trigger (250, 0) Step 1 (250, 250) Step 2 (250, 450) Decision (250, 650) Left branch (0, 880) Right branch (600, 880) Sub-step (0, 1100) Case A (-350, 1350) Case B (0, 1350) Case C (350, 1350)
Key principles:
- Keep the main chain centered on x=250 (aligns with default trigger position)
- Use consistent vertical gaps (200-230px for tight layouts, 250px for readability)
- For branches, offset symmetrically from the parent's x coordinate
- For fan-outs of 3+ nodes, calculate:
parent_x + (i - (n-1)/2) * 350for each child i
Tips
- Workflow IDs are UUIDs like
wf:abc123... - Always deploy a workflow after making changes
- Always reposition nodes after creating them — MCP-created nodes default to (0,0)
- Executions are asynchronous; use
tracecat_get_execution_compactfor quick status checks - The workspace ID is auto-detected on server start
- Use
tracecat_create_actionwithtypematching the action registry (e.g.core.transform.reshape,core.http_request,core.script.run_python) tracecat_update_actionacceptsinputsas a YAML string (not JSON object) andcontrol_flow(run_if, for_each, retry_policy)- Actions require
workflow_idon every operation (get, update, delete) - Tables require columns to be created before inserting rows (use
tracecat_create_column) - Batch insert rows expects flat objects (keys = column names), not wrapped in
data - Expression operators: use
&&and||(NOTand/or) - Use
tracecat_validate_workflowbefore deploying to catch common errors early - Use
tracecat_docsto get inline reference on action types, expressions, functions, or common mistakes
Related Skills
- tracecat-workflow-patterns — Design patterns and templates for SOAR workflows
- tracecat-yaml-syntax — YAML syntax reference for workflow definitions
- tracecat-integration-expert — Configure external tool integrations
- tracecat-case-management — Case lifecycle and incident tracking
- tracecat-validation-debug — Debug failed executions and troubleshoot errors
- tracecat-code-python — Write Python scripts for run_python actions
Reference Files
What ships with it: 3 files
8.9 KB alongside SKILL.md
- COMMON_MISTAKES.md2.7 KB
- EXAMPLES.md5.0 KB
- README.md1.2 KB