Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add monte-carlo-data/mc-agent-toolkit --skill push-ingestiongit clone --depth 1 https://github.com/monte-carlo-data/mc-agent-toolkitWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/monte-carlo-data/mc-agent-toolkit/push-ingestion)<a href="https://agentmods.dev/skills/monte-carlo-data/mc-agent-toolkit/push-ingestion"><img src="https://agentmods.dev/badge/skills/monte-carlo-data/mc-agent-toolkit/push-ingestion.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00145 | $0.04270 |
| Opus 5 | $0.00072 | $0.02135 |
| Sonnet 5 | $0.00029 | $0.00854 |
| Haiku 4.5 | $0.00015 | $0.00427 |
Grade A, and why
push-ingestion scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
| `references/direct-http-api.md` | Customer wants to call push APIs directly via curl/HTTP without pycarlo | Copies of this mod
1 near-identical copy found in the catalogue:
- monte-carlo-push-ingestion — 95% identical, 28 lines differ
How it starts
The opening of the file, as written. The whole thing — 364 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Monte Carlo Push Ingestion
You are an agent that helps customers collect metadata, lineage, and query logs from their data warehouses and push that data to Monte Carlo via the push ingestion API. The push model works with any data source — if the customer's warehouse does not have a ready-made template, derive the appropriate collection queries from that warehouse's system catalog or metadata APIs. The push format and pycarlo SDK calls are the same regardless of source.
Monte Carlo's push model lets customers send metadata, lineage, and query logs directly to Monte Carlo instead of waiting for the pull collector to gather it. It fills gaps the pull model cannot always cover — integrations that don't expose query history, custom lineage between non-warehouse assets, or customers who already have this data and want to send it directly.
Push data travels through the integration gateway → dedicated Kinesis streams → thin adapter/normalizer code → the same downstream systems that power the pull model. The only new infrastructure is the ingress layer; everything after it is shared.
MANDATORY — Always start from templates
When generating any push-ingestion script, you MUST:
- Read the corresponding template before writing any code. Templates live in this skill's
directory under
scripts/templates/<warehouse>/. To find them, glob for**/push-ingestion/scripts/templates/<warehouse>/*.py— this works regardless of where the skill is installed. Do NOT search from the current working directory alone. - Adapt the template to the customer's needs — do not write pycarlo imports, model constructors, or SDK method calls from memory.
- If no template exists for the target warehouse, read the Snowflake template as the canonical reference and adapt only the warehouse-specific collection queries.
Template files follow this naming pattern:
collect_<flow>.py— collection only (queries the warehouse, writes a JSON manifest)push_<flow>.py— push only (reads the manifest, sends to Monte Carlo)collect_and_push_<flow>.py— combined (imports from both, runs in sequence)
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- README.md 2.6 KB
- references/anomaly-detection.md 3.8 KB
- references/custom-lineage.md 5.0 KB
- references/direct-http-api.md 5.0 KB
- references/prerequisites.md 3.6 KB
- references/push-lineage.md 5.0 KB
- references/push-metadata.md 5.4 KB
- references/push-query-logs.md 6.0 KB
- references/validation.md 4.9 KB
- scripts/sample_verify.py 14 KB runs code
- scripts/templates/bigquery-iceberg/collect_and_push_metadata.py 2.3 KB runs code
- scripts/templates/bigquery-iceberg/collect_and_push_query_logs.py 2.2 KB runs code
- scripts/templates/bigquery-iceberg/collect_metadata.py 7.9 KB runs code
- scripts/templates/bigquery-iceberg/collect_query_logs.py 4.6 KB runs code
- scripts/templates/bigquery-iceberg/push_metadata.py 5.9 KB runs code
- scripts/templates/bigquery-iceberg/push_query_logs.py 6.8 KB runs code
- scripts/templates/bigquery/collect_and_push_lineage.py 2.5 KB runs code
- scripts/templates/bigquery/collect_and_push_metadata.py 2.2 KB runs code
- scripts/templates/bigquery/collect_and_push_query_logs.py 2.5 KB runs code
- scripts/templates/bigquery/collect_lineage.py 7.1 KB runs code
- scripts/templates/bigquery/collect_metadata.py 4.9 KB runs code
- scripts/templates/bigquery/collect_query_logs.py 5.5 KB runs code
- scripts/templates/bigquery/push_lineage.py 6.5 KB runs code
- scripts/templates/bigquery/push_metadata.py 6.2 KB runs code
- scripts/templates/bigquery/push_query_logs.py 7.2 KB runs code
- scripts/templates/databricks/collect_and_push_lineage.py 3.2 KB runs code
- scripts/templates/databricks/collect_and_push_metadata.py 3.0 KB runs code
- scripts/templates/databricks/collect_and_push_query_logs.py 3.4 KB runs code
- scripts/templates/databricks/collect_lineage.py 8.5 KB runs code
- scripts/templates/databricks/collect_metadata.py 7.5 KB runs code
- scripts/templates/databricks/collect_query_logs.py 6.9 KB runs code
- scripts/templates/databricks/push_lineage.py 6.5 KB runs code
- scripts/templates/databricks/push_metadata.py 6.0 KB runs code
- scripts/templates/databricks/push_query_logs.py 7.2 KB runs code
- scripts/templates/hive/collect_and_push_lineage.py 3.8 KB runs code
- scripts/templates/hive/collect_and_push_metadata.py 3.8 KB runs code
- scripts/templates/hive/collect_and_push_query_logs.py 3.9 KB runs code
- scripts/templates/hive/collect_lineage.py 9.5 KB runs code
- scripts/templates/hive/collect_metadata.py 10 KB runs code
- scripts/templates/hive/collect_query_logs.py 9.0 KB runs code
- scripts/templates/hive/push_lineage.py 10 KB runs code
- scripts/templates/hive/push_metadata.py 8.1 KB runs code
- scripts/templates/hive/push_query_logs.py 8.5 KB runs code
- scripts/templates/redshift/collect_and_push_lineage.py 3.0 KB runs code
- scripts/templates/redshift/collect_and_push_metadata.py 3.1 KB runs code
- scripts/templates/redshift/collect_and_push_query_logs.py 3.7 KB runs code
- scripts/templates/redshift/collect_lineage.py 7.8 KB runs code
- scripts/templates/redshift/collect_metadata.py 7.1 KB runs code
- scripts/templates/redshift/collect_query_logs.py 8.4 KB runs code
- scripts/templates/redshift/push_lineage.py 6.1 KB runs code
- scripts/templates/redshift/push_metadata.py 5.9 KB runs code
- scripts/templates/redshift/push_query_logs.py 7.0 KB runs code
- scripts/templates/snowflake/collect_and_push_lineage.py 4.8 KB runs code
- scripts/templates/snowflake/collect_and_push_metadata.py 4.3 KB runs code
- scripts/templates/snowflake/collect_and_push_query_logs.py 4.3 KB runs code
- scripts/templates/snowflake/collect_lineage.py 12 KB runs code
- scripts/templates/snowflake/collect_metadata.py 11 KB runs code
- scripts/templates/snowflake/collect_query_logs.py 8.1 KB runs code
- scripts/templates/snowflake/push_lineage.py 10 KB runs code
- scripts/templates/snowflake/push_metadata.py 7.1 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 364 lines · 145 tokens per session scan A af3228e9182f
push-ingestion is a skill published in the GitHub repository monte-carlo-data/mc-agent-toolkit (91 stars, last pushed 13d ago), licensed Apache-2.0. It adds 145 tokens to every session and 4,270 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
data-charts-tako
Search and visualize the world's data - get charts, insights, and embeddable knowledge cards for finance, economics, demographics, sports, and more.
apollo-lead-finder
Two-phase Apollo.io prospecting: free People Search to discover ICP-matching leads, then selective enrichment to reveal emails/phones (credits per contact). Creates Apollo lists. Deduplicates against existing contacts by LinkedIn URL.
monorepo-management
Master monorepo management with Turborepo, Nx, and pnpm workspaces to build efficient, scalable multi-package repositories with optimized builds and dependency management. Use when setting up monorepos, optimizing builds, or managing shared dependencies.
browse-and-evaluate
Use when exploring the ai-agent-skills catalog to find, compare, and evaluate skills before installing. Always use --fields to limit output size and --dry-run before committing to an install.
render-3d-product-showcase
Assemble a premium 3D product-showcase ad from a config — four beat clips (an orbiting hero rotation, a macro push-in, a physics reveal, a typographic close) normalized to the brand-color canvas, hard-concatenated in order, closed on a deterministic Playwright brand end card, and mixed under one instrumental bed at…
render-airdrop-carousel
Assemble a viral iOS "AirDrop" notification-carousel video ad (≈6–8s, 9:16) from a brand line plus 6–16 real product photos — a native AirDrop share-sheet card ("Brand would like to share a · Decline / Accept") springs up and its preview window CYCLES through the products, landing on a range/lineup payoff with an…