MCP for analysts: connecting Chartcastr to Claude Code, Cursor, and ChatGPT

8 min readBy Chartcastr Engineering

A practical guide to using the Model Context Protocol for ad-hoc analytics — what MCP is, how the Chartcastr MCP server works, three setup walkthroughs, and five example prompts that actually work.

TL;DR

MCP (Model Context Protocol) is the open standard for connecting AI clients like Claude Code, Cursor, and ChatGPT to external tools and data. The Chartcastr MCP server exposes your pulses, sources, and ad-hoc queries so you can do real analytics from inside the AI client you already use — no context switch to a BI tool. Setup takes ~15 minutes.

The Model Context Protocol (MCP) is the most consequential analytics-tooling shift since the BI dashboard. It moves the question from "open the dashboard, find the chart, interpret it" to "ask the AI client you already use, get an answer that's grounded in your real data." This post is the practical guide for analysts and engineers connecting Chartcastr to their AI client of choice.

For the canonical definition of the protocol itself, see the Model Context Protocol specification. For Chartcastr's MCP-specific docs, see the /features/mcp page.

What MCP changes

Before MCP, "AI for analytics" meant one of two things:

  1. A chat UI inside a BI tool, where the AI's context was whatever data lived in that tool.
  2. A general AI client (ChatGPT, Claude) that had no access to your data at all and could only answer hypotheticals.

MCP collapses both. You add an MCP server entry to your AI client's config, and now the AI has tools — discrete, named, typed actions it can take on your behalf. For Chartcastr, those tools let it read your pulses, list your sources, run a query, or stand up a new pulse.

The user experience: you're writing code in Claude Code or Cursor, you have a question — "what was our revenue yesterday and how did it compare to last Tuesday?" — and you just ask. The AI picks the right tool, fetches the data, and answers. The dashboard never opens.

The Chartcastr MCP server, briefly

The server lives at https://chartcastr.com/mcp. It speaks the MCP protocol over HTTPS with bearer-token auth. The exposed tools are:

ToolWhat it does
list_pulsesReturns every pulse in the workspace (id, name, source, cadence, last delivery).
get_pulseReturns the latest data for a specific pulse, including the chart spec and AI summary.
list_sourcesReturns every connected source (Google Sheets, HubSpot, Shopify, BigQuery, etc.).
run_queryRuns an ad-hoc query against a connected source. Source-specific (SQL for warehouse, structured query for SaaS sources).
create_pulseCreates a new pulse with the same configuration shape as the web UI.

There's deliberately no delete_pulse or modify_pulse. Destructive operations remain in the web UI where the audit trail is clearer.

Setup walkthrough: Claude Code

The fastest setup, because Claude Code's MCP support is first-class.

  1. In Claude Code, open ~/.claude/settings.json (or run claude mcp add interactively).
  2. Add the Chartcastr entry to the mcpServers block:
{
    "mcpServers": {
        "chartcastr": {
            "type": "http",
            "url": "https://chartcastr.com/mcp",
            "headers": {
                "Authorization": "Bearer YOUR_CHARTCASTR_MCP_TOKEN"
            }
        }
    }
}
  1. Restart Claude Code.
  2. In a new conversation, type /mcp to see Chartcastr listed under available servers, then ask: "What pulses do I have in Chartcastr?"

If the response lists your pulses, you're connected. If not, the most common issue is a typo in the token — regenerate from Chartcastr settings.

Setup walkthrough: Cursor

Cursor's MCP support is similar but configured via Cursor settings rather than a JSON file.

  1. In Cursor, open Settings → Features → MCP.
  2. Click "Add MCP server".
  3. Set name = chartcastr, type = HTTP, URL = https://chartcastr.com/mcp, header Authorization: Bearer YOUR_TOKEN.
  4. Save. Cursor reloads automatically.
  5. Open the chat panel, switch to the chat composer's "Agent" mode, and ask: "List my Chartcastr sources."

Setup walkthrough: ChatGPT (desktop, with MCP support)

ChatGPT's MCP support landed in early 2026 for the desktop client. Setup is via the app's connector settings.

  1. Open the ChatGPT desktop app → Settings → Connectors → Add.
  2. Choose "Custom MCP server."
  3. URL: https://chartcastr.com/mcp. Auth: bearer token.
  4. ChatGPT will prompt for tool-use approval the first time it calls a Chartcastr tool — approve once or set "always allow" for this connector.

Five prompts that actually work

The biggest mistake new MCP users make is asking the AI questions that aren't grounded in tools. "Tell me about my revenue trend" without an MCP connection produces hallucination; with the connection, it produces real analysis. These five prompts are the canonical examples — they exercise the tool surface end to end.

Prompt 1: the morning brief

"Pull the latest delivery for every pulse in my Chartcastr workspace and give me a one-paragraph morning brief — what's normal, what's interesting, what needs my attention."

The AI calls list_pulses, then get_pulse for each, then synthesizes. The output looks like a junior analyst's email digest.

Prompt 2: cross-source comparison

"I have a Shopify revenue pulse and a Meta Ads spend pulse. Compute the rough revenue-per-ad-dollar trend over the last 30 days. Are the trends consistent?"

The AI calls get_pulse twice and joins the data in its head. For a real engineering use case, you'd then ask it to write a SQL or pandas snippet that does the join deterministically and re-run.

Prompt 3: new pulse from a question

"Create a daily Chartcastr pulse for our HubSpot pipeline coverage metric, sent to the #revenue channel at 8am local. Title it 'Daily pipeline coverage'."

The AI calls create_pulse with the right parameters. This is the closest thing to "natural-language pulse creation" that actually works reliably, because the destination format is constrained.

Prompt 4: ad-hoc query

"Run a query against our BigQuery source: total signups by week, last 12 weeks, grouped by acquisition source. Format as a table."

The AI calls run_query and returns the result inline. For warehouse sources, the AI can also draft the SQL first and let you review before running.

Prompt 5: anomaly investigation

"Our daily revenue pulse showed an anomaly yesterday — flag a +47% spike. Help me figure out what caused it. You have access to my Shopify, Meta Ads, and Google Ads sources."

The AI calls get_pulse on the revenue pulse, then run_query against the ad sources for the same window, then writes a hypothesis. This is the highest-value prompt category — it's what an analyst would do, compressed into thirty seconds.

What you can and can't do

Can: Read any data the user has permission to view. Create new pulses. Run queries that the source itself supports. Compose multi-source answers (cross-tool correlation, exactly the pattern in why most AI insights are useless).

Can't: Delete pulses. Modify existing pulses. Access data outside the user's permission scope. Bypass source rate limits.

The intentional ceiling: MCP is read + create. Anything destructive remains in the web UI, where it has an audit trail and a confirmation step. Most analytics workflows never need destructive operations from inside the AI client; the asymmetry is deliberate.

Why MCP matters more than chat-in-BI

Chat interfaces inside BI tools are a step in the right direction, but they share a structural problem: they make you switch tools to ask the question. The default behavior for any analytics question is still "open the dashboard."

MCP inverts the default. The AI client is where you already are — writing code, drafting a doc, debugging. Analytics becomes a side conversation in your existing workflow, not a separate destination.

This is the deeper shift behind push analytics generally: push is for routine reporting, MCP is for ad-hoc exploration. Together they replace 90% of what dashboards are used for.

The day I wired up the Chartcastr MCP server to Claude Code is the day I stopped opening dashboards. Three months in, our BI tool subscription is up for renewal and I genuinely can't think of a reason to keep it.

Anonymized customerFounding engineer, Series A SaaS

Further reading

Frequently Asked Questions

Was this post helpful?

Google SheetsSlackAI Summaries

Turn your data into automated team updates.

Connect a data source, create charts, and deliver AI-powered insights to Slack or email — in minutes.

No card required. Setup in 3 minutes.

Chartcastr