SparteraConnect

SparteraConnect

SparteraConnect deploys a managed MCP (Model Context Protocol) server for your
company, so your own AI agents can call the analytics you've already built and
tested in Spartera.

Agents read a described catalog of your analytics and execute them with
parameters. They never write SQL, never see your schema, and never receive raw
rows — only the computed result.

Pricing: $100/month per deployed server, plus $0.50 per analytics call at
list price. Volume discounts available.


What MCP is

Model Context Protocol is an open standard that lets AI assistants call external
tools during a conversation. SparteraConnect hosts and manages the MCP server so
your agents can reach your analytics without you building or running that
infrastructure.


What it enables

With a SparteraConnect server, an agent can:

  • List the analytics it's permitted to call
  • Search that catalog from a natural-language question
  • Read an analytic's definition — its parameters and what it returns
  • Execute one with bound parameters and receive the computed result

Example:

User: "What percentage of 4th down attempts result in touchdowns?"

The agent calls search_metrics, matches the described analytic
4th-down-td-pct, then calls query_metric with the season parameter. It
receives the value and answers. No SQL was written at runtime.

The distinction matters: the query was authored and tested by whoever knows your
schema. The agent chose which analytic to run, not how to run it.


Getting started

1. Build analytics

Connect a data source and create the analytics you want agents to be able to
call. Each one needs a clear description — that description is how an agent knows
which analytic answers a given question.

Analytics come in two types:

  • CALCULATION — returns a computed value
  • VISUALIZATION — returns a chart, rendered server-side

2. Deploy the server

Dashboard → SparteraConnect → Deploy

Deployment takes about 60 seconds. You get a dedicated Cloud Run service reachable
at your company subdomain:

https://{your-company-handle}.mcp.spartera.com

A confirmation email includes your connection config and server URL.

3. Connect an agent

The server exposes these endpoints:

EndpointMethodAuthPurpose
/mcpPOSTBearerStreamable HTTP — use this
/sseGET, POSTBearerSSE, deprecated in the MCP spec
/healthGETnoneHealth check

Authentication is a Bearer token, supplied in the Authorization header:

Authorization: Bearer {your-mcp-secret}

Custom agents

Connect over Streamable HTTP with a Bearer token:

{
  "mcpServers": {
    "spartera": {
      "url": "https://your-handle.mcp.spartera.com/mcp",
      "transport": { "type": "http" },
      "headers": {
        "Authorization": "Bearer your-mcp-secret"
      }
    }
  }
}

The server runs stateless — every request is self-contained, so it scales
horizontally and you don't need to manage session IDs.

An SSE endpoint remains at /sse for clients that haven't adopted Streamable
HTTP, but SSE is deprecated in the MCP specification. Prefer /mcp.

Claude Desktop

Claude Desktop speaks stdio natively and cannot open a remote SSE connection on
its own. Bridge it with mcp-remote:

{
  "mcpServers": {
    "spartera": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote",
        "https://your-handle.mcp.spartera.com/mcp",
        "--header", "Authorization: Bearer your-mcp-secret"
      ]
    }
  }
}

Connector directories. The server speaks Streamable HTTP, but still
authenticates with a static Bearer token. The Claude and ChatGPT connector
directories additionally require OAuth 2.1 with Dynamic Client Registration, so
a SparteraConnect server cannot be listed in them yet — connect it directly
using the config above. OAuth is the remaining piece.

4. Scope what agents can reach

Dashboard → SparteraConnect → Asset Permissions

By default the server exposes the analytics your organization owns.


Available tools

ToolDescription
list_available_metricsList every analytic the agent may call
search_metricsFind analytics matching a natural-language query
get_metric_definitionReturn an analytic's parameters and output shape
query_metricExecute an analytic with bound parameters

A typical agent chains them: search_metrics to find the right analytic,
get_metric_definition to learn its parameters, query_metric to run it.


How a request flows

Agent asks for an analytic
        │
        ▼
MCP server (Cloud Run, dedicated to your company)
        │
        ▼
Spartera API — binds parameters, dispatches, meters the call
        │
        ▼
Your warehouse or database — the verified query executes here
        │
        ▼
Computed result returns; the agent receives the value

What crosses the boundary. The query runs against your database and only the
computed result comes back. Your schema, table names and raw rows are never sent
to the agent.

The result does pass through Spartera's API layer on its way to the agent, and
response values are retained for usage telemetry and caching. If your analytics
return values you consider sensitive, that's the relevant consideration — not
whether raw rows move, because they don't.


Response sizes

Because analytics return computed results rather than rowsets, payloads are
small. Measured across production calls:

TypeMedian responseWhat it is
CALCULATION~4 bytesThe computed value
VISUALIZATION~971 bytesA signed URL to the rendered chart

This is the practical difference from letting an agent generate SQL: a query that
returns thousands of rows puts all of them into the model's context window before
it can compute anything.

Latency varies considerably with warehouse, query complexity and whether the
analytic aggregates across large tables. Calculations typically run in the low
seconds; visualizations take longer because the chart is rendered server-side.


Charts

VISUALIZATION analytics are rendered to PNG server-side, uploaded to Google Cloud
Storage, and returned as a signed URL in a markdown link — not an inline
image. Most MCP clients, including Claude Desktop, don't render inline images.

The agent receives a link. The model never sees the underlying data used to draw
the chart.


Use cases

Internal analytics assistant. Give your team a Slack bot or internal agent
that answers data questions by calling verified analytics, without granting
anyone raw database access.

Product AI features. Embed analytics in your product's assistant so customer
questions are answered from live data through queries your team validated.

Agent workflows. Chain analytics in multi-step agent pipelines, where each
step returns a trustworthy number rather than something the model computed from
rows.


Pricing

Cost
MCP server$100/month per deployed server
Analytics calls$0.50 per call (list price)
Free tier30 analytics calls per month

The free tier covers analytics as APIs, not MCP. Deploying an MCP server
starts the $100/month subscription regardless of call volume.

Volume discounts are substantial — if you're planning high call counts, the
effective rate is well below list. Contact us for pricing.

Each deployment is an isolated Cloud Run service. There is no shared-tenancy tier.


FAQ

Which AI clients work?
Any client that speaks MCP over HTTP or SSE and can send a Bearer token. Claude
Desktop works with the config above. Custom agents work by calling the endpoints
directly. Remote connector directories require OAuth, which isn't supported yet.

Can I restrict which analytics are reachable?
Yes — Asset Permissions in the SparteraConnect dashboard.

Does an agent ever see my schema?
No. Agents see analytic names, descriptions and parameters. Table and column
names are never exposed, and no agent-authored SQL is executed.

What if no analytic matches the question?
search_metrics returns no match and the agent reports that rather than
improvising. This is the deliberate trade against runtime SQL generation: narrower
coverage, but no confidently wrong answers.

What happens if an analytic fails?
The server returns a structured error the agent can handle in its response.

How is data secured?
Encrypted in transit and at rest on Google Cloud. Each deployment is isolated,
with its own Bearer token and rate limiting. See
Security & Compliance for our
current posture — note that we are not yet formally certified against SOC 2.


Getting help