Give them a menu of analytics you already trust instead.
SparteraConnect turns the analytics your team has already written and tested into a managed MCP server your own AI agents can call. They pick from a described catalog and pass parameters. No schema exposure, no generated SQL, no thousand-row payloads coming back.
Why Spartera Connect
Most ways of connecting an agent to data either hand it raw rows or let it invent the query. SparteraConnect does neither.
01 — Traditional REST API
API returns raw JSON. AI must figure out the rest.
Agent calls GET /api/sales
Requests raw data from endpoint
Gets 10,000 JSON rows back
Full dataset transferred to consumer
AI tries to compute trends itself
LLMs are notoriously bad at math on raw data
Returns wrong insight confidently
Hallucinated aggregation, no verification
02 — NL2SQL MCP Server
AI writes SQL on the fly. No one verifies it.
Agent receives question in English
"What's driving revenue growth?"
LLM generates SQL on the fly
Wrong joins, bad filters, missed tables
Runs unverified query on production
Your schema is exposed, no sandbox
Returns result — maybe correct
No way to know without manually checking
03 — Spartera Connect
Data owner builds & verifies. AI picks from a curated menu.
Data owner pre-builds analytics
Stats, trends, predictions — tested & verified
AI selects the right analytic
Chooses from curated, parameterized menu
Runs against your warehouse
Only the computed result is returned — no rows, no schema
Returns verified, auditable insight
Correct every time, production-grade
| REST API | NL2SQL | Spartera | |
|---|---|---|---|
| What reaches the agent | 🔴 Full dataset | 🟡 Raw rows | 🟢 Result only |
| Results verified? | 🔴 No | 🔴 No | 🟢 By data owner |
| Schema exposed? | 🟡 Partially | 🔴 Fully | 🟢 Never |
| Accountability? | 🔴 None | 🔴 None | 🟢 Full audit trail |
| Works at scale? | 🟡 Data transfer bottleneck | 🟡 Query complexity limit | 🟢 Pre-optimized analytics |
Verified queries · No rows or schema to the agent · ~30 supported engines
The same question, two paths
Both paths answer the question. Only one of them keeps your rows, your schema and your context window out of it.
“What percentage of 4th down attempts resulted in touchdowns last season?”
Path A — NL2SQL
8,412 rows returned for the model to reason over
Inspect the schema
Reads tables and columns so the model can guess where the data lives
SELECT table_name, column_name
FROM information_schema.columns
Generate SQL from the question
The model writes a query nobody has reviewed
Run it against production
Counts every 4th down play, including ones wiped out by penalty
SELECT COUNT(*) FILTER (WHERE is_touchdown)
, COUNT(*)
FROM plays
WHERE down = 4
Return 8,412 rows
The result set travels back into the model's context window
Model does the arithmetic
A language model computing a percentage over rows it never validated
Returns
28.7% of 4th down attempts resulted in touchdowns.
Wrong, and it won't say so. The generated query counted plays negated by penalty and scored two-point conversions as touchdowns. Plausible, confident, and 3.7 points off.
Path B — SparteraConnect
4 bytes returned — the measured median for a calculation
search_metrics
Reads the described catalog and matches the question to one analytic
search_metrics(query: "4th down touchdown rate")
→ 4th-down-td-pct
query_metric
The verified query runs against your warehouse; the value comes back
query_metric(
asset_id: "4th-down-td-pct"
)
Returns
25.02% of 4th down attempts resulted in touchdowns.
Correct and reproducible. The query was written and tested by the person who knows the schema — including that penalty-negated plays and two-point conversions don't count.
Payload returned
8,412 rows → 4 bytes
Median calculation response, measured across production calls.
What the agent sees
Schema → nothing
No tables, no columns, no credentials cross the boundary.
The answer
Right vs. plausible
Both sound confident. Only one traces to a query someone tested.
The 4-byte figure is real: it's the median response size for CALCULATION analytics measured across production calls. The NL2SQL side is an illustrative 8,400-row result set, and the accuracy point comes from published text-to-SQL research where accuracy tops out around 60–80% on clean schemas. Step timings are illustrative and not a performance claim — real query time depends on your warehouse and how complex the analytic is.
Flip the switch in the header to change how the agent gets its answer. Same question, same data — different path, different result.
Analytics assistant
Try an example:
Scripted demo using real analytics from the Spartera catalog. Token counts are illustrative. Deploy your own →
Three exchanges from the demo above, written out.
NL2SQL
28.7%
The model wrote a query at runtime, pulled 8,412 rows back into its context window and did the arithmetic itself. The query counted plays negated by penalty and scored two-point conversions as touchdowns. The answer is wrong and nothing in the response says so.
Verified analytics
25.02%
The agent called search_metrics, matched
the described analytic 4th-down-td-pct, and ran it with
query_metric. The query was written and tested by the person who
knows the schema. The answer comes back as a 4-byte value — the measured median for a calculation, with no rows to reason over.
NL2SQL
Picks one interpretation and answers
The question doesn't say passing, rushing or receiving. The model resolves the ambiguity silently, writes a query for whichever it assumed, and returns a confident single name. You have no way to know a choice was made on your behalf.
Verified analytics
Asks which one you meant
Three analytics in the catalog match “touchdowns” — passing, rushing and receiving. Because each is described, the agent can see the ambiguity and ask rather than guess. You pick, then it runs that one.
NL2SQL
Answers it
No one anticipated this question, and NL2SQL doesn't need them to have. It writes a query against whatever tables exist and returns a number. This is the real advantage of generating SQL at runtime: reach. Whether the number is right is a separate question, and one you'd have to check yourself.
Verified analytics
Says it doesn't have one
Nothing in the catalog covers penalty yards, so the agent says so and offers to queue it for the data team rather than improvising. A known gap beats a confident guess — but this is the trade, and it's why the two approaches belong together: explore with NL2SQL, promote what matters into verified analytics.
Self-serve from signup to a running server
Point Spartera at the warehouse or database the analytics should run against. Credentials stay on your side; we never copy your data.
Author the queries you want agents to be able to call, and describe what each one answers. This is the part that makes the difference — the description is how an agent knows which analytic to pick.
One button. We provision an isolated Cloud Run service, wire up authentication and rate limiting, and hand you a connection string.
The server exposes four tools. Your agent lists what's available, reads the definitions, and runs the one it needs.
30 analytics calls a month, no card required
They're complementary—RAG for documents, SparteraConnect for analytics
You've probably heard of RAG (Retrieval Augmented Generation)—it's great for searching through documents, PDFs, and knowledge bases. SparteraConnect does something completely different: it pulls analytics and insights from structured databases. Think of them as partners, not competitors.
The best AI assistants use both. RAG answers questions from your documentation. SparteraConnect answers questions from your data. Together, your AI can handle policies AND metrics, documentation AND analytics.
One AI that answers both documentation questions AND analytics questions
Every approach that lets an agent reach your data has a failure mode. Most of them are quiet.
An agent that writes SQL at runtime will answer anything, including the questions it gets wrong. Published text-to-SQL accuracy tops out around 60–80% on clean schemas and falls further on real ones.
Generating SQL means introspecting tables and columns first. Your data model ends up inside a model prompt, and so do the rows it reads back.
Thousands of rows come back so the model can do arithmetic on them. It burns context, costs tokens on every call, and asks a language model to do a database's job.
A production MCP server with auth, rate limiting and audit logging is a real engineering project — and then you maintain it.
The queries are written once, tested, and then called by name.
Your team writes and tests the query. The agent binds parameters to it.
The query runs against your warehouse; only the computed result returns.
A calculation comes back as a value, not a result set to reason over.
One server over BigQuery, Snowflake, Databricks, Redshift and more.
Start free, or talk to us first
One subscription per server, plus what your agents actually call
Start free with 30 analytics calls a month. Deploying an MCP server adds a subscription.
A dedicated, managed MCP server for your agents
$0.50 per analytics call at list price
Volume brings that down substantially — talk to us if you're planning high call counts.
💡 Scales with your usage automatically
30 analytics calls a month, so you can build and test analytics as APIs before committing. Deploying an MCP server starts the $100/month subscription.
$0.50 per call at list. Volume discounts are significant — if you're planning hundreds of thousands of calls, the effective rate is a fraction of that.
Claude Desktop connects over stdio today, and any agent you configure yourself can connect over HTTP. Remote connector directories require OAuth 2.1, which is on the roadmap.
Yes. No contracts and no penalties — cancel the server subscription whenever.
Start free
Sign up, connect a source, build a few analytics, and deploy a server when you're ready. No call required.
30 analytics calls a month are free. Deploying an MCP server starts a $100/month subscription per server, plus metered calls.