Manual CSV Exports in Chat
TL;DR
- The CSV Ingest MCP server on MCPBundles is for spreadsheets you pull from portals that never shipped a live connection. Upload on the bundle page, then ask your agent to list files, inspect columns, and run grouped math in chat.
- Each upload becomes its own report with row counts and a query-ready copy built at upload time, so multi-thousand-row files stay usable instead of being pasted back into the model as one giant table.
- Built for marketing ops, revenue analysts, and finance teams who already live in export-and-pivot workflows. Not a warehouse replacement. A way to skip the open Excel, filter, pivot, screenshot loop on every weekly pull.
Harborline Media runs paid campaigns across a handful of partner portals. Every Monday someone downloads a performance file, drops it in the drive, and standup turns into "which column is spend this week?" Nobody wants another BI seat. They want the file they already have to be legible in chat.
The whole product is: upload once, read from chat
There is no vendor lock-in. The pattern works for travel ads, finance closes, supplier inventories, or one-off ops dumps.
- Open CSV Ingest in your MCPBundles workspace and save a connection. Give it a short label ("West region hotels", "Q3 partner export") and optional notes about weird columns.
- Upload the CSV (or a zip wrapping a CSV) from Export files on that connection. The agent does not upload. You do, so nothing enters the workspace without a human click.
- Ask in Claude, Cursor, or MCPBundles Studio.
Each upload is one report with an id, capture time, filename, and row count when you list history. Keep the report id when you want to compare two Mondays instead of always saying "latest."
Start with structure, not math
I've seen market and spend flip spelling between exports from the same vendor. One portal we tested used MM/DD/YY dates in March and YYYY-MM-DD in April under the same header.
Most good prompts open with describe, not grouped totals.
List my uploads for the West region source and describe the newest file's columns.
Show a few sample rows and tell me which fields look like dates versus amounts.
From there the agent reads column names, inferred types, samples, and line count. Profile one column when categories matter. Totals across the full file go through read-only SQL on the analytics copy we build at upload — boring in a good way, and nowhere near reading thousands of lines aloud in chat.
Grouped questions after you trust the schema
Once columns make sense, the questions get boring in a good way.
For the latest upload, show total amount by market, highest first.
Compare row counts and total spend between my two most recent reports for this source.
Have the agent quote tool output. If nothing is uploaded yet, it should say so instead of hallucinating campaign numbers.
Large files stay out of chat when analytics is ready
When a report is big and analytics finished at upload time, latest returns a pointer instead of inlining the whole CSV. That keeps parallel tool calls stable in clients that choke on megabyte payloads. You still page raw rows in chunks if you need literal cell text.
Try it on a real export
Connect CSV Ingest on MCPBundles, upload something you already download on a schedule, and ask one of the prompts above. Example prompts on the skill page stay aligned with what we ship in the catalog.