This skill helps diagnose data pipeline performance issues using Monte Carlo's cross-platform observability data. It works across Airflow, dbt, Databricks, and warehouse query engines to find bottlenecks, detect regressions, and identify root causes.
Monte Carlo tool routing (required): Always call Monte Carlo MCP tools through this plugin's bundled server, whose fully-qualified tool names are
mcp__plugin_mc-agent-toolkit_monte-carlo-mcp__<tool>(e.g.mcp__plugin_mc-agent-toolkit_monte-carlo-mcp__get_alerts). Bare tool names used in this skill (get_alerts,search,get_table, …) refer to that bundled server. If the session also has a separately-configuredmonte-carlo-mcpserver, do not route to it — it may point at a different endpoint or credentials.
Reference files live next to this skill file. Use the Read tool (not MCP resources) to access them:
references/investigation-tiers.md (relative to this file)references/query-analysis.md (relative to this file)Activate when the user:
Do not activate when the user is:
The following MCP tools must be available (connect to Monte Carlo's MCP server):
Discovery tools (Tier 1):
get_jobs_performance -- find slow/failing jobs across Airflow, dbt, Databricksget_top_slow_queries -- find slowest query groups by total runtimeBridge tool:
get_tables_for_job -- convert job MCONs to table MCONsDiagnosis tools (Tier 2):
get_tasks_performance -- drill into a job's individual tasksget_change_timeline -- unified timeline of query changes, volume shifts, Airflow/dbt failuresget_query_rca -- root cause analysis for failed/futile queriesget_query_latency_distribution -- latency trend over timeget_asset_lineage -- trace upstream/downstream impactSupporting tools:
get_warehouses -- list available warehousesDetermine what the user wants to investigate:
Call get_warehouses to list available warehouses. Match the user's context to a warehouse.
If you don't have specific MCONs to investigate, start with discovery:
Find slow jobs: Call get_jobs_performance with optional integration_type filter (AIRFLOW, DATABRICKS, DBT) if the user specifies a platform.
avgDuration, negative runDurationTrend7d, high failure ratesFind expensive queries: Call get_top_slow_queries with optional warehouse_id and query_type ("read" for SELECTs, "write" for INSERT/CREATE/MERGE).
Present the top findings to the user before drilling deeper. A typical investigation needs only 3-7 tool calls.
If both discovery tools return no results: Tell the user no performance issues were found in the current time window. Suggest broadening the scope (different warehouse, longer time range, or a different platform filter).
After Tier 1 identifies problematic jobs, convert to table MCONs:
Call get_tables_for_job(job_mcon=..., integration_type=...) using the integration_type from the job performance results.
This gives you the table MCONs needed for Tier 2 investigation.
Now drill into root causes using the MCONs from discovery or the bridge:
Task bottleneck: Call get_tasks_performance to find which specific task in a job is the bottleneck.
What changed? Call get_change_timeline -- this is your most powerful tool. It returns a unified timeline of:
Why are queries failing? Call get_query_rca to get root cause analysis:
Is latency degrading? Call get_query_latency_distribution to see the trend:
bucket="1h". The default downsamples to daily on windows ≥ 3 days, which hides hour-level steps.Trace impact: Call get_asset_lineage with direction="DOWNSTREAM" to see what's affected by a slow table, or direction="UPSTREAM" to find what feeds it.
Structure your response as:
runDurationTrend7d) to distinguish regressions from normal variance. Flag if trend data has less than 0.1 confidence.query_type="read". When they ask about "writes", use query_type="write". Do NOT mix them.