MCP

Aion inside your assistant

Aion Vibes exposes an MCP server: you connect Claude — or any other client that speaks the same protocol — and from there you search for events, sign up, follow a community. With a connected account, you create and publish your own nights. Without opening the site.

Half the tools don't need an account.

Searching for events, reading their details, signing up and following a community all work as soon as you add the server: signing up sends the QR by email and the wallet links, without anyone having to register first. The account is for creating and publishing — that is, for acting on someone's behalf.

Connect it in four steps

  1. 1

    Add the server

    Point your MCP client at the address. No key needed: the client registers itself.

    claude mcp add --transport http aion https://api.aionvibes.com/mcp/
  2. 2

    Authorise in the browser

    The client opens a page on Aion that says which client is asking for access and what it'll be able to do. Sign in with Google or your email, and press Authorize.

  3. 3

    Reopen the terminalCommon snag

    Close the window you launched the command from and open a new one. The session you had open loaded the tool list when it started — before the token existed — and will keep not seeing Aion: it's not an error to retry. From a fresh terminal, claude mcp list answers ✔ Connected.

  4. 4

    Ask

    "Publish an event on 15 October in Brescia about Local AI vs Cloud AI, with a night-time cover" becomes a draft, a cover, and a live event.

What happens to your credentials

No password in the client. The connection goes through OAuth 2.1: you sign in on aionvibes.com, and the client receives a token that's valid for it alone.

PKCE required. The authorization code that comes back to the client isn't enough on its own to get a token: it needs a secret the client kept, one that never passed through the browser.

One use only. Codes and refresh tokens are spent on first use. The access token lasts an hour and renews itself; if you stop using it, the connection expires after thirty days.

Your permissions, nothing more. The client acts as you: it sees the communities you run, and nothing else. Platform analytics only answer to the admin account.

The tools

Find

No account needed

What's on, and where. Works even for someone who's never seen Aion.

find_events

Search by city, date range, category or free text.

Also includes listings scraped from other platforms, marked as such: they open at the source link, you don't book them here.

get_event

An event's detail: time, place, price, capacity.

Also says whether sign-up is instant or the organizer has to approve it.

list_event_categories

The categories, with slug and colour.

list_cities

Where Aion has events, and how many.

list_featured_communities

Who organizes regularly.

whats_on_digest

A summary of what's on in a city, already condensed and ordered.

Meant to be rewritten into a message to paste into a group chat, not to be browsed.

Join in

No account needed

The point where a conversation becomes a person signed up for a night out. Always without an account.

rsvp_to_event

Signs someone up: name, email, and the QR goes out by email.

No app to download first, no account to create first. The response already carries the wallet links, and the sign-up stays marked as having come from an assistant.

get_wallet_pass

The links to add a ticket to Apple or Google Wallet.

For someone who's signed up and doesn't want to dig up the email.

follow_community

The link to get a community's events into your own calendar.

An iCalendar subscription: new events arrive by themselves, forever, without installing anything.

Claim

Mixed

Is your event already listed here? Searching for it is free; claiming it needs an account.

find_my_listingNo account needed

Searches for your night among the listings, with the interest it's already gathered.

Reactions and followers that people on Aion have already left on that event — an audience you're not seeing today.

claim_listingAccount required

Turns a listing into your own Aion event, already filled in.

Name, place, date, description and cover come from the listing. It starts as a draft: price and capacity are still yours to set. Requires an account.

Organize

Account required

From here on you need a connected account.

list_my_communities

The communities you run, with their id.

It's the first step: an event without a calendar doesn't show up on any community's page. Each row says whether you created it or you run it for someone else.

create_public_event

Creates an event — title, when, where, price, capacity.

It starts as a draft: nobody sees it until you publish it.

update_public_event

Corrects an event, before or after publishing.

Only touches the fields you pass: the rest stay as they are.

design_event_cover

Composes the cover in the event's topic colour. Free.

No model behind it: no credits, instant response, and the same event always gives the same image.

generate_event_cover

Generates the cover from a description and applies it.

Needs a real scene — a venue, a stage, a dish. Describe the image, not the event. Uses credits.

publish_public_event

Publishes the draft.

From here the address is reachable and the event shows up on Discover.

set_event_coupons

The event's discount codes.

Re-reads the settings before writing, so it doesn't wipe out registration questions and templates.

get_event_template

A ready-made structure to fill in: quick RSVP, per-person booking, page blocks.

The questions have keys that interact — prices, conditions, pages — and getting one wrong produces a form that looks fine and behaves badly.

set_registration_questions

The questions whoever signs up fills in: types, prices, conditions, pages.

On a per-person event the price lives here, not on the ticket: the total only counts the base once.

set_page_sections

Day-by-day schedule, gallery, video, FAQ, links.

It's what separates an event page from a form.

set_community_sections

The same blocks, but hung off the community instead.

The FAQ describes the community and would be identical on every one of its events: it shouldn't be duplicated here.

schedule_event_series

A recurring night: all the dates in one go.

"Every Thursday until December." The rule expands right away into real events, each with its own page.

list_my_public_events

What you have coming up, or what's already happened.

Planning and running the night

Account required

When to hold it, whether it's ready, and how to get people through the door.

suggest_event_slot

Which night to pick, based on what's already on in the city that night.

The count comes from other platforms' public listings: it's the real competition for that night, not how full our own calendar is.

event_health_check

What's missing from an event before you publish it.

Tells apart what will bounce the publish attempt from what will just make a reader scroll past.

create_tracked_invite

A different invite link for each channel.

The code travels in the ref parameter and stays on the sign-up. Results show up in Admin › Growth, under "Event sign-ups".

check_in_guest

Marks a person as checked in, without opening the scanner.

Accepts the QR or the short code a guest reads out loud. Scanning the same person again doesn't count them twice.

Measure

Account required

How it's going.

event_registrations

How many sign-ups, in what state, with the questionnaire answers.

platform_analytics

Users, organizers, events, sign-ups — compared against the previous period.

Reserved for the admin account.

For integrators

Streamable HTTP transport at https://api.aionvibes.com/mcp/. Without an Authorization header the connection succeeds and the open tools respond: the gated ones return an error that explains how to connect, instead of a transport error.

An Authorization header that's present but invalid gets a 401 with the WWW-Authenticate header pointing at the resource metadata: that's how a client discovers the authorization server on its own.

GET  /.well-known/oauth-protected-resource
GET  /.well-known/oauth-authorization-server
POST /oauth/register    dynamic registration (RFC 7591)
GET  /oauth/authorize   PKCE S256 required
POST /oauth/token       authorization_code | refresh_token

Clients are public: no client_secret to keep safe. PKCE is what holds the flow together.

Something not adding up? Write to us at akaion@akaion.com.