← Back to all posts

Your studio data now talks to Claude

June 21, 2026 · 6 min read · by James, half-owner of a dance studio

A few months ago my wife asked me, in the middle of dinner, "how many of the Tuesday families have a balance over a hundred bucks?" The right answer to that question takes me about four clicks in Presently. The wrong answer to it is the one I gave her, which was "let me get my laptop after we eat."

That's the small annoyance I had in mind when we shipped MCP this month. Presently is now, as far as I can tell, the first dance studio software with a built-in Model Context Protocol server. Translation: you can connect Claude, Claude Code, or any other MCP-compatible AI client directly to your studio data and ask it questions in plain English. The AI doesn't get a copy of your data; it gets a live connection that respects every permission boundary we already have.

So now, in theory, my wife at dinner asks Claude on her phone "which Tuesday families owe more than a hundred dollars?" and gets the answer in about eight seconds.

What it actually does today

Read-only, on purpose. Today's tools are deliberately scoped:

Search families by name or email. You ask "who's the family with email sarah@example.com?" and Claude gets the family back with their student count and basic profile info.

Pull a family's full profile. Students, current enrollments, account balance. "What does the Smith family owe right now and which classes are their kids in?" comes back as one answer.

Browse the class schedule. Filter by season, day of week, instructor, or class type. "What's on Wednesdays this fall taught by Miss Sarah?" returns each class with its meeting times, location, and how many students are enrolled.

List upcoming events. "What recitals do we have in the next three months?" Walks the events table and returns dates, times, and locations.

That's the V1 surface. We chose read-only on purpose, because the difference between "Claude tells you 14 families haven't paid" and "Claude drops 14 families from a class" is the entire difference between a useful assistant and a hand grenade. We're going to add safe writes (tags, notes, attendance) before we add anything that moves money or sends to families. More on that below.

How to actually connect it

Two paths into the AI Assistant, both from Settings → AI Assistant:

Claude.ai web (OAuth). Inside Claude.ai, click "Add custom connector." Paste your studio's MCP URL (it's on the Settings page, looks like https://{your-studio}.usepresently.com/mcp). Leave the client ID and client secret fields blank. Hit Connect. Claude.ai bounces you to Presently to sign in, you approve the connector with one click, and you're back inside Claude.ai with the new tools available. There's no token to copy, no expiry to manage. If you ever want to revoke access, sign out from Settings.

Claude Code or any CLI client (token). If you're using Claude Code or Cursor or anything else that wants a bearer token instead of an OAuth flow, generate one from the same Settings page. Give it a label so you remember which client you handed it to ("Claude on my laptop"), copy the token once, and paste it into your client's MCP config with an Authorization: Bearer … header. You can revoke any token from the same page; the next request from that client will start failing within seconds.

The connection is studio-specific by URL. Sunshine Dance's URL hits Sunshine Dance's data. Claudia Dean Academy's URL hits Claudia Dean Academy's data. There is literally no way to cross the streams; every request is scoped to the studio whose subdomain the AI connected to.

What this is useful for at a real studio

The honest answer is: we're still figuring it out, and a lot of the value is going to be in questions you didn't know you wanted to ask until the friction was gone. But the early patterns from our own use:

Front-desk questions that don't require login. "Is the Smith family paid up?" "What time does Miss Sarah's Tuesday class start?" The kind of question you'd normally hit with three clicks, except you're in the car on the way home and your laptop is at the studio.

Cross-cutting questions the UI doesn't have a screen for. "Show me every family whose only student is over 12 and who hasn't enrolled in a fall class yet." Building that as a dedicated report inside Presently is overkill; getting Claude to walk the data and answer it is exactly the right scale of effort.

Talking to your data in Claude Code while you're using it for other things. If you already use Claude Code for writing, planning, drafting parent emails, this is a way to pull in real context. "Draft an email to the families currently enrolled in Tuesday's intermediate ballet about next month's recital costume" stops requiring you to copy-paste names out of a roster.

Quick sanity checks before a meeting. "Give me a summary of how many students are currently enrolled in each season we have running." Versus: open three reports, tab between them, hope you read the right column.

The thing we deliberately did NOT do

Writes. Anything that changes data.

This was the actual hard decision of the project. We could have shipped "enroll a student" and "post a charge" on day one. The reason we didn't is the asymmetry of mistakes: an AI that surfaces information has a worst-case of "shows you a slightly wrong number." An AI that takes actions has a worst-case of "dropped the wrong student from the wrong class on the day of the recital." Those are not the same blast radius.

The MCP spec lets a client describe what each tool can do, and we wanted "read-only" to be a fact about the protocol, not a thing you have to trust the AI to honor. So in V1, the protocol literally cannot make changes. The next round (which we're already designing) will add specific low-risk writes — adding a tag to a family, leaving a note, marking attendance — each gated by its own permission so a studio that doesn't want any writes can keep it that way.

We'll never ship a "let the AI send emails to families" mode without a multi-step confirmation, because that is the way I do not want to wake up at 6 AM to a Slack message from a customer.

Privacy in plain English

This part is short because the architecture is simple:

Anthropic (the company that makes Claude) doesn't see your studio data. Your data stays on Presently's servers; the AI client just queries it like any other API consumer. If you're using claude.ai through the OAuth flow, the conversation transcripts do live on Anthropic's servers (you control retention through your Claude account), but the underlying database isn't replicated anywhere.

The tools are scoped to your studio. The token (or OAuth session) is scoped to a single user account that was already logged into Presently. Permissions inherit from there: if a Staff role can't see ledger entries in the UI, the AI can't see them through MCP either.

You can revoke access at any time. OAuth sessions live in your Settings page next to per-CLI tokens. One click, the connection is dead.

Why we shipped this on a Sunday

Mostly because that's when I had time. But also because this is the kind of feature where the technology was just barely far enough along to make it real. MCP didn't exist as a standard a year ago. Claude.ai's custom-connector UI didn't exist three months ago. The first time I tried connecting our local instance to my Claude account this morning, it returned the word "Smith" with three matching families and asked me whether I wanted their balances. That's the moment the feature stopped being theoretical.

There is a version of dance studio software where the schedule, the families, the enrollments, the events, the lineup, the costume tracker, the billing — none of it talks to anything else and you spend your week being the glue between seven tabs. That's not the version we want to ship. The version we want to ship is one where any question you can phrase, the system can answer, because everything that needs to talk to everything else does.

MCP is the first real step in that direction.

What's next

A few directions we're actively working on, in rough order of likelihood:

Safe writes. Tags, notes, attendance marking. Each gated by an explicit permission so studios that want to stay read-only can.

More tools. The four we shipped cover most of the bread-and-butter questions, but we already know we want "summarize enrollment trends," "find families with declined payment methods," "what's the recital line-up for the spring show," and a few others. If you've connected an AI to your studio and there's a question it can't yet answer, tell us — it's the fastest way to inform what we build next.

Prompt templates. The MCP spec supports server-defined prompts, so you can ship pre-baked queries with the connector. "End-of-month financial summary," "Recital-ready check," that kind of thing. Lower the activation energy on "what should I even ask."

Family-portal MCP. Speculative, but the same protocol could expose a read-only window into a single family's data — their own students, their own enrollments, their own balance. The kind of thing where a parent could ask "what time does Ava's class start tomorrow?" and get an answer without opening the portal. We're not committing to this yet, but it's on the whiteboard.


James runs a dance studio with his wife and built Presently because nothing else fit the way studios actually work. The AI Assistant is live for all studios under Settings → AI Assistant. See more features or start a free trial.

Studio software, built by a studio owner.

I'm James, half-owner of a dance studio. My wife and I built Presently because the incumbents weren't designed for how studios actually work. 30-day free trial, no credit card.