How to connect Claude to Baila (MCP)
Let an assistant answer questions about your events, sales and check-in, with an API key as the only credential.
Once it is connected, you can simply ask — "how many tickets did I sell this month?", "how is check-in going at Saturday's party?" — and the assistant fetches the answer from your organization on Baila, instead of you opening the dashboard and adding it up by hand.
The link is made over MCP (Model Context Protocol), the format Claude and other assistants use to talk to outside tools. On your side, the only thing that changes hands is an API key: you paste a configuration snippet into your client and that is it.
The most important consequence follows from that: the assistant never has more access than the key. Create a read-only key and it can read your events and reports, and it cannot publish, refund or create anything. This is not a matter of asking nicely — every request the assistant makes goes through the same permission check as any other access to your organization, and whatever the key does not carry is refused.
What you need
- An API key for your organization. If you have not created one yet, start with How to create and manage API keys — that is where each access level is explained, and why the secret is shown only once.
- A client that speaks MCP (Claude, for instance) and somewhere you can edit its configuration.
Step by step
Create a read-only key. In the dashboard, go to API keys, click New key, give it a name you will recognise later ("Claude integration" is the very example the field suggests) and leave the Read-only card selected — "Sees everything, changes nothing.". Click Create key and copy the secret while it is on screen; it is never shown again.
Open the Connect to Claude / MCP section. It sits at the bottom of that same keys page. Inside it you will find the Server address and the Configuration field, with the note "Paste this snippet into your MCP client configuration and replace <chave> with the key you just created."
Copy the configuration snippet. This is the shape the page shows:
{
"mcpServers": {
"baila": {
"url": "http://localhost:3100/mcp",
"headers": {
"Authorization": "Bearer <chave>"
}
}
}
}Always use the address shown under Server address on your own screen rather than one copied from here: the page is what knows which server is up for you.
Paste it into your client and swap the key in. In Claude that means the MCP configuration file — in Claude Code, for example, the .mcp.json at the root of the project (which also accepts a "type": "http" line next to the url). Replace <chave> with the whole key, shaped like baila_live_xxxxxxxx_....
Restart the client and ask it something. "How many tickets did I sell this month?", "which events are published?", "how many people are already inside Saturday's party?". If the connection works, the assistant answers with data from your organization; if the key is wrong, expired or revoked, it comes back with an authentication error.
As the page itself says, "the MCP server goes live soon; the address above is the development one." Until then, the address that counts is always the one written under Server address on your keys page — the shape of the configuration, though, is already the final one.
What the assistant can do
With a Read-only key, it can look up:
- Events — the list of your organization's events, and one event in full, including its lots (ticket tiers) and settings.
- Orders — the orders of an event, with buyer, status, amounts and tickets. This is how it answers questions about the sales of a specific event.
- Check-in — live door statistics: tickets issued, how many are already in, and how many are left.
- Metrics — the sales and revenue overview across all your events, and the metrics of a single event (revenue, tickets sold per lot, sales over time).
- Finance — the per-event payout summary: gross amount, platform fee, and what is split to you.
- Partner program — profile, referrals and commission, for those with a partner account.
If — and only if — the key carries the permission, it can also create a draft event, edit an event, publish an event, create a discount coupon and refund an order.
The refund is the only one with an extra lock: because it is irreversible (it returns the money and invalidates the tickets), the assistant has to confirm the action explicitly, and without that confirmation the call is refused before it goes anywhere at all. Even so, a key without the refund permission simply cannot refund — the extra lock is there for the keys that can.
What it cannot do
- Step outside the list. The assistant sees a closed set of operations — the ones you just read. No other part of Baila is exposed merely because it exists: joining that list is a deliberate code change, not a side effect.
- Touch your team or your keys. Inviting people, changing roles, creating or revoking keys are actions no API key can perform, however broad its access. If a key could mint another key, revoking one would mean nothing.
- Outrank the key. Whatever the key does not allow comes back as a refusal. The assistant may well try; what decides is the permission, not the conversation.
Security
The key is the credential: whoever holds that text has exactly the access you granted it, from any computer. Keep it like a password — in your team's password manager or in the client's secret store, never in a chat group. In Claude Code, remember that .mcp.json is usually committed: put the real key in ~/.claude.json or in a gitignored file instead.
To disconnect, you do not have to touch anything in the assistant: go back to API keys and click Revoke on that key's row. "Anything using it loses access immediately." — Claude included.