Murali Gour

DataGrout Frame - Columnar data ops for AI agents — filter, pivot, join

by
Frame is DataGrout's columnar data operations tool for AI agents. It filters, sorts, groups, pivots, joins, and slices tabular records directly as MCP tools. Agents today bloat context windows or need Python sidecars just to reshape data, Frame eliminates that entirely. Pure deterministic operations, no AI generation, no extra runtime, zero credit cost. Composes natively in DataGrout intelligence layer with cache ref support for large datasets.

Add a comment

Replies

Best
Murali Gour
Hunter
📌
Hey Product Hunt, I'm Murali 👋 I'm part of the DataGrout team on the marketing side and incredibly excited to bring Frame to you today! Working closely with our engineering team, I've seen firsthand how much friction tabular data creates in real agent workflows. Agents pulling records from Salesforce, SAP, or HubSpot end up either bloating context windows or needing extra infrastructure just to reshape that data. Frame eliminates that, bringing columnar data operations directly into the agent as MCP tools. No Python, no sidecars, no extra cost. Here's what Frame can do for your agents: filter — declarative row filtering with 10+ operators sort — multi-column sorting with per-field direction group — aggregate by key, compute counts, sums, averages pivot — reshape rows into columns for cross-tab analysis join — merge two datasets on a key field slice — page or window over large records select — keep, drop, or rename columns in one pass We've been testing this internally and the workflows it unlocks are genuinely exciting. Drop your questions below, our team is standing by to answer everything! 🙌
Nicholas Wright

Hello Product Hunt, I'm Nick  👋

I built Frame, and I just wanted to share some cool details that I'm quite proud of.

Your dataset never has to re-enter the model's context to get transformed. Every tool result, from any mcp tool in the system, is cached server-side and handed back as a tiny reference (a 19-char rc_... string).

Frame tools take that reference in place of the actual rows -- so a pipeline like fetch 10k invoices -> group by customer -> sort by total -> take top 10 passes a reference between steps, and only the final 10 rows ever come back to the agent. A table that'd be hundreds of thousands of tokens as JSON costs you ~20 characters. Token cost stops scaling with row count.

And because every op is pure and deterministic, no LLM touches the data itself -- the model decides what to do, Frame executes it exactly. No reshaping hallucinations, and it's all zero-credit and zero-token.

Under the hood the cache is an ETS layer with a 10-minute sliding TTL, AES-256-GCM at rest, per-user isolation, and content-addressable dedup (an identical fetch reuses the same ref instead of re-storing). The tools also compose natively via our flow.into workflows, so one tool's output feeds the next with no glue code.

I'll be in the thread all day -- genuinely happy to go deep on the cache design, the MCP surface, or how this fits into a larger agent loop. What are you building?