Analyzes data coverage and creates monitors for warehouse tables and AI agents. Identifies coverage gaps, supports use-case analysis, and enables agent observability.
How this skill is triggered — by the user, by Claude, or both
Slash command
/agentic-awesome-skills:monte-carlo-monitoring-advisorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill handles all monitoring requests -- coverage analysis, data monitor creation, and AI agent monitoring. It routes to the right reference file based on the user's intent.
This skill handles all monitoring requests -- coverage analysis, data monitor creation, and AI agent monitoring. It routes to the right reference file based on the user's intent.
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/data-monitor-creation.md (relative to this file)references/agent-monitor-creation.md (relative to this file)references/data-*.md and references/agent-*.md (relative to this file)Activate when the user:
Do not activate when the user is:
get_monitors directly)monte-carlo-mcp) must be configured and authenticatedAll tools are available via the monte-carlo-mcp MCP server.
| Tool | Purpose |
|---|---|
get_warehouses | List accessible warehouses (needed first -- get_use_cases requires warehouse_id) |
get_use_cases | List use cases with criticality, descriptions, table counts, precomputed tag names |
get_use_case_table_summary | Criticality distribution (HIGH/MEDIUM/LOW table counts) for a use case |
get_use_case_tables | Paginated tables with criticality, golden-table status, MCONs |
get_monitors | Check monitoring status on specific tables via mcons filter |
get_asset_lineage | Upstream/downstream dependencies for tables (takes MCONs + direction) |
get_audiences | List notification audiences |
get_unmonitored_tables_with_anomalies | Tables with muted OOTB anomalies but no monitors (takes ISO 8601 time range) |
search | Find tables by name; supports is_monitored filter |
get_table | Table details, fields, stats, domain membership |
get_queries_for_table | Query logs for a table (source/destination) |
get_field_metric_definitions | Available metrics per field type for a warehouse |
get_domains | List Monte Carlo domains |
get_validation_predicates | Available validation rule types |
All five tools follow a two-call preview-then-confirm pattern: the first call (with the default dry_run=True) returns rendered MaC YAML for review; the second call (dry_run=False) deploys the monitor live and returns a deep link to it. Pass monitor_uuid on either call to update an existing monitor in place instead of creating a new one. See references/data-monitor-creation.md for the full flow.
| Tool | Purpose |
|---|---|
create_or_update_table_monitor | Create or update a table monitor (preview YAML on dry_run=True, deploy on dry_run=False) |
create_or_update_metric_monitor | Create or update a metric monitor (preview YAML on dry_run=True, deploy on dry_run=False) |
create_or_update_validation_monitor | Create or update a validation monitor (preview YAML on dry_run=True, deploy on dry_run=False) |
create_or_update_sql_monitor | Create or update a custom SQL monitor (preview YAML on dry_run=True, deploy on dry_run=False) |
create_or_update_comparison_monitor | Create or update a comparison monitor (preview YAML on dry_run=True, deploy on dry_run=False) |
| Tool | Purpose |
|---|---|
get_agent_metadata | List AI agents -- returns agent names, agentReference values (the agent arg for monitor creation), trace table MCONs, source types |
get_agent_conversation | Retrieve recent LLM interactions/conversations for an agent |
get_agent_trace | Inspect execution traces and span trees |
create_or_update_agent_metric_monitor | Create or update monitors for quantitative span-level metrics (preview YAML on dry_run=True, deploy on dry_run=False) |
create_or_update_agent_evaluation_monitor | Create or update monitors for LLM-evaluated quality metrics (preview YAML on dry_run=True, deploy on dry_run=False) |
create_or_update_agent_trajectory_monitor | Create or update trajectory monitors for execution pattern alerts (preview YAML on dry_run=True, deploy on dry_run=False) |
create_or_update_agent_validation_monitor | Create or update validation monitors for logical assertions (preview YAML on dry_run=True, deploy on dry_run=False) |
When the user's request comes in, determine which workflow to follow:
| User intent | Workflow |
|---|---|
| Coverage analysis, use-case exploration, "what should I monitor?" | Coverage workflow (below) |
| Create a specific data monitor for a known table | Read references/data-monitor-creation.md and follow its procedure |
| Monitor AI agents, agent latency, agent quality, agent traces | Read references/agent-monitor-creation.md and follow its procedure |
| Coverage analysis leads to monitor creation | Complete coverage workflow, then read references/data-monitor-creation.md for creation |
When reading reference files, always use the Read tool with the path relative to this skill file.
This is the primary flow when the user asks about monitoring coverage, coverage gaps, or what to monitor.
Call get_warehouses to list all accessible warehouses.
Call get_use_cases(warehouse_id=<selected>) to discover use cases for the chosen warehouse.
Check if the user has a database MCP server available by looking for tools containing snowflake, bigquery, redshift, or databricks in the tool list. If found, note it for the SQL profiling step later. If not found, skip SQL profiling gracefully.
This is the primary flow when use cases are defined.
get_use_case_tables with golden_tables_only=true and mention specific golden-table names as concrete examples. Golden tables are the last layer in the warehouse -- they feed ML models, dashboards, and reports. Explain this when relevant.get_asset_lineage to explain how tables in a use case are connected and why certain tables are important (e.g. a golden table with many upstream dependencies).You cannot create use cases -- they are generated automatically by Monte Carlo (along with their criticality), and there is no tool to author one. When the user asks to "create", "set up", or "define" a use case: briefly say so, and do NOT silently substitute monitor deployment. Then offer what you can do for the table(s) they named -- look up the existing use case / criticality, recommend field monitors, generate monitor previews, or analyze coverage gaps -- and act on the do-able part without expanding to sibling tables.
get_use_case_table_summary to show how many tables exist at each criticality level (HIGH / MEDIUM / LOW) for the use case.get_use_case_tables to obtain table MCONs, then call get_monitors(mcons=[...]) to report how many are already monitored vs. not.Use get_unmonitored_tables_with_anomalies to discover tables that are not monitored but already have muted out-of-the-box anomalies. This reveals real coverage gaps -- places where Monte Carlo detected data issues but no monitor was configured to alert anyone.
When no use cases are defined, fall back to importance-based table discovery.
search(query="", is_monitored=false) to find unmonitored tables sorted by importance.get_unmonitored_tables_with_anomalies with a recent time window (last 14-30 days) to find tables with recent anomalies but no monitors.get_table to check table details, fields, and stats for the most important unmonitored tables.get_asset_lineage with direction="DOWNSTREAM" to understand which tables are most connected -- a table with many downstream dependents is a stronger candidate for monitoring.If a database MCP server was detected in Step 3 of the coverage workflow:
get_queries_for_table to see recent query patterns on candidate tables.snowflake_query, bigquery_query) to profile table usage -- identify which tables are queried most frequently, which columns are used in JOINs and WHERE clauses.If no database MCP is available, skip this step entirely. Do not ask the user to configure one.
When coverage analysis leads to monitor creation, gather this context before reading the creation reference file:
get_monitors with the same tag pair (and monitor_types=["TABLE"]) you'd put in the monitor's asset_selection.filters. If a monitor already covers that (tag, domain) scope, surface it (description, uuid) and ask whether to update it (pass its monitor_uuid), add one with a distinct scope, or skip -- do NOT silently re-create. The backend upserts a table monitor on its (description, domain), so a same-description definition silently overwrites the prior monitor's settings.get_audiences to list notification audiences. Suggest one or more relevant audiences (match by team or use-case context) and ask the user which they want -- they can pick one or several. This is the one question to ask before generating; do NOT also ask about draft/active or schedule. Default to draft (is_draft=True); the user can flip to active after seeing the preview.audiences or failure_audiences, use the audience name/label (not UUID), as a list -- one entry per selected audience.estimated_credits.credits_per_day), report that; otherwise decline and offer to preview a specific monitor or use case to get the real estimate.The most common output of coverage analysis is a table monitor scoped by use-case tags via create_or_update_table_monitor. The asset_selection parameter uses this structure:
{
"databases": ["<database_name>"],
"schemas": ["<schema_name>"],
"filters": [
{
"type": "TABLE_TAG",
"tableTags": ["<tag_key>:<criticality>"],
"tableTagsOperator": "HAS_ANY"
}
]
}
Rules:
type is always TABLE_TAG for use-case monitors.tableTagsOperator should be HAS_ANY.tableTags is "<tag_key>:<value>" where the tag key is the precomputed tag name from get_use_cases output and the value is the criticality level in lowercase (high, medium, low).["tag_name:high"]["tag_name:high", "tag_name:medium"]["tag_name:high", "tag_name:medium", "tag_name:low"]description) and reasoning (notes)Keep these distinct -- both are accepted by the creation tools. The backend auto-generates the monitor name slug; description is the title users see.
description -- the title. Short and scannable (≤ ~80 chars), plain English, naming the asset/use case and criticality scope. Do NOT cram reasoning here.notes -- the reasoning. 1-3 sentences answering "why this monitor?", grounded in criticality, scope, and downstream impact.Example for a use-case tag monitor:
"Monitor HIGH criticality tables in the Revenue Reporting use case to catch issues before they affect dashboards and financial reports.""Revenue Reporting coverage -- HIGH + MEDIUM criticality tables""Covers HIGH/MEDIUM-criticality tables in the Revenue Reporting use case. Catches freshness, volume, and schema issues before they reach dashboards and financial reports."Some tables show 0 rows when queried directly but have recent write activity in Monte Carlo metadata. These are transient tables -- fully replaced on each pipeline run (truncate-and-reload pattern). Recognize this pattern early to avoid wasting time querying empty tables.
Signs of a transient table:
get_table shows recent last_write timestamp and high read/write activityHandle missing or unavailable tools gracefully:
| Scenario | Behavior |
|---|---|
| No use cases defined | Fall back to importance-based discovery |
| No database MCP available | Skip SQL profiling, rely on MC tools only |
get_unmonitored_tables_with_anomalies returns empty | Note that no recent anomalies were found; proceed with use-case or importance-based prioritization |
get_use_case_tables returns no tables | Note the use case has no tables; suggest exploring other use cases |
get_audiences returns empty | Inform user no audiences are configured; monitors can still be created without notification routing |
| User has no warehouses | Inform user that no warehouses are accessible; they may need to check their Monte Carlo permissions |
Never error out or stop the conversation because one tool returned empty results. Explain what happened and offer the next best path.
get_asset_lineage to fetch upstream/downstream connections and explain the data flow.audiences or failure_audiences to monitor creation tools, use the audience name/label (not UUID). The API accepts audience names.npx claudepluginhub sickn33/agentic-awesome-skills --plugin agentic-bundle-aas-privacy-compliance-engineering32plugins reuse this skill
First indexed Jul 2, 2026
Showing the 6 earliest of 32 plugins
Analyzes data coverage and creates monitors for warehouse tables and AI agents. Identifies coverage gaps, supports use-case analysis, and enables agent observability.
Analyzes Monte Carlo monitor reports and recommends configuration changes to reduce alert noise. Supports metric, custom SQL, validation, and table monitors.
Manage data quality in DataHub: create and run assertions, check outcomes, raise/resolve incidents, and diagnose health problems across your data estate.